From 17ec4b078b145634d3fd5fe6782c63960648950b Mon Sep 17 00:00:00 2001 From: Alexander Popov Date: Mon, 9 Nov 2026 00:35:07 +0300 Subject: [PATCH] Fix and correct content --- html/css/new-year.css | 866 +++++++++++++++++++++++++- html/css/style.css | 1338 ++++++++++++++++++++++++++++++++++------- html/index.html | 15 +- html/portfolio.html | 32 +- 4 files changed, 1990 insertions(+), 261 deletions(-) diff --git a/html/css/new-year.css b/html/css/new-year.css index 40e997f..c064e5c 100644 --- a/html/css/new-year.css +++ b/html/css/new-year.css @@ -1,25 +1,847 @@ /* Seasonal campaign: isolated styles preserve the studio's existing pages. */ -:root{--ny-ink:#102d37;--ny-gold:#f3d398;--ny-red:#ad302e;--ny-paper:#fbf7ee} -.ny-nav{color:#9a302c;font-weight:700}.nav{gap:22px}.ny-home,.ny-page{background:var(--ny-paper)} -.ny-hero{background:var(--ny-ink);color:#fff6e5;position:relative;overflow:hidden;padding:70px 0 64px}.ny-hero-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:38px;align-items:center;position:relative;z-index:1}.ny-eyebrow{display:block;font-size:11px;letter-spacing:2px;font-weight:700;line-height:1.8}.ny-intro .ny-eyebrow{color:var(--ny-gold)}.ny-intro h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(42px,4.3vw,66px);font-weight:400;line-height:1.05;letter-spacing:-1.8px;margin:24px 0}.ny-intro h1 em{color:var(--ny-gold);font-weight:400}.ny-intro p{font-size:16px;max-width:440px;color:#e0e5df}.ny-actions{display:flex;flex-direction:column;align-items:flex-start;gap:19px;margin-top:28px}.ny-gold{background:var(--ny-gold);color:#19313a;gap:20px;border-radius:7px}.ny-gold:hover{background:#ffe8bb;transform:translateY(-2px)}.ny-text-link{font-size:13px;text-underline-offset:5px;text-decoration:underline}.ny-caption{font-size:10px;letter-spacing:.8px;color:#b3c4c7;margin-top:34px;max-width:350px}.ny-art{position:relative;margin:0}.ny-art img{border-radius:140px 140px 12px 12px;border:1px solid #d8b46d66;box-shadow:0 25px 80px #0005;width:100%;aspect-ratio:1.35;object-fit:cover}.ny-star{position:absolute;color:var(--ny-gold);animation:ny-twinkle 4s ease-in-out infinite;pointer-events:none}.star-one{left:48%;top:22px;font-size:46px}.star-two{left:42%;bottom:24px;font-size:30px;animation-delay:-2s} -.ny-selection{padding-top:72px;padding-bottom:70px;scroll-margin-top:100px}.ny-heading{text-align:center;margin-bottom:34px}.ny-heading .ny-eyebrow{color:#8c6540}.ny-heading h2,.ny-terms h2,.ny-offer h2,.ny-closing h2{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:clamp(30px,3vw,43px);line-height:1.16;color:var(--ny-ink);margin:14px 0 22px}.ny-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.ny-card{border:1px solid #ddcfb9;border-radius:12px;overflow:hidden;background:#fffdf8;display:flex;flex-direction:column}.ny-card:hover{transform:translateY(-5px);box-shadow:0 16px 35px #28373214}.ny-card-picture{position:relative;overflow:hidden}.ny-card-picture img{width:100%;aspect-ratio:16/10;object-fit:cover;transition:transform .4s}.ny-card:hover img{transform:scale(1.035)}.ny-card-picture span{position:absolute;bottom:14px;left:16px;background:#fff6e5;color:#702721;border-radius:4px;padding:5px 11px;font-size:13px;font-weight:700}.ny-card-body{padding:24px;flex:1;display:flex;flex-direction:column}.ny-card-body small{font-size:9px;letter-spacing:1.8px;color:#82684c}.ny-card h3{font-family:Georgia,serif;color:var(--ny-ink);font-size:26px;line-height:1.2;margin:12px 0}.ny-card p{font-size:13px;color:#655f56;margin-bottom:22px}.ny-card b{font-size:12px;color:#9c302e;display:flex;justify-content:space-between;margin-top:auto} -.ny-special{display:grid;grid-template-columns:.7fr 1.3fr;gap:60px;background:#efe6d6;border-radius:16px;padding:48px;margin-bottom:70px;scroll-margin-top:110px}.ny-discount{border:1px solid #b89b65;border-radius:160px 160px 12px 12px;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:330px;text-align:center;padding:25px;color:#862e2b}.ny-discount>span{font-size:10px;letter-spacing:2px;max-width:200px}.ny-discount strong{font-family:Georgia,serif;font-size:105px;font-weight:400;line-height:1.5;white-space:nowrap}.ny-discount small{font-size:60px}.ny-terms .ny-eyebrow{color:#8d342f}.ny-terms h2{margin-top:12px;font-size:36px}.ny-terms p,.ny-terms li{font-size:13px;line-height:1.8}.ny-terms ul{margin:16px 0}.ny-terms li{padding-left:24px;position:relative;margin-bottom:9px}.ny-terms li:before{content:'✦';position:absolute;left:0;color:#9c6632}.ny-exclusion{border-top:1px solid #cfbea4;padding-top:16px;color:#744832} -.ny-details{padding-bottom:20px}.ny-offer{display:grid;grid-template-columns:1fr 1fr;gap:55px;padding:50px 0 70px;border-top:1px solid #dfd4c2;scroll-margin-top:95px;align-items:start}.ny-offer:nth-child(2) .ny-offer-visual{order:2}.ny-offer-visual{position:sticky;top:115px}.ny-offer-visual img{width:100%;border-radius:12px;aspect-ratio:4/3;object-fit:cover}.ny-offer-label{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #d6c6ac;padding:16px 0;font-size:10px;letter-spacing:2px;color:#967446}.ny-offer-label span{font-size:24px}.ny-offer-copy .ny-eyebrow{color:#9c302e}.ny-offer h2{font-size:36px}.ny-offer p{font-size:14px;line-height:1.85;margin-bottom:16px;color:#554f47}.ny-offer h4{font-size:15px;color:var(--ny-ink);margin:24px 0 9px}.ny-price{border-left:3px solid #bb914e;background:#f0e8da;padding:17px 19px;font-size:14px;font-weight:600;margin:23px 0 17px}.ny-offer .ny-note{font-size:12px;color:#736557}.ny-red{background:var(--ny-red);color:white;white-space:normal;border-radius:7px;font-size:13px;gap:15px;margin-top:9px}.ny-red:hover{background:#842724;transform:translateY(-2px)}.ny-channel{display:block;font-size:10px;color:#766f65;margin-top:10px}.ny-closing{background:var(--ny-ink);color:#f8efdc;text-align:center;padding:70px 20px}.ny-closing h2{color:var(--ny-gold);font-size:48px}.ny-closing p{max-width:620px;margin:0 auto 28px}.ny-closing .ny-text-link{display:block;margin-top:20px}.ny-closing .ny-eyebrow{color:#c8b68f}.ny-page .privacy-settings{padding-top:22px}.ny-home .benefits{border-top:1px solid #ded2be}.ny-home .btn-primary{background:var(--ny-red)} -.ny-weather{position:fixed;inset:0;pointer-events:none;z-index:101;overflow:hidden}.ny-flake{position:absolute;top:-30px;left:var(--x);color:#fff;opacity:0;text-shadow:0 1px 4px #15364466;font-size:var(--size);animation:ny-fall var(--duration) linear var(--delay) infinite;will-change:transform}.ny-flake.ny-spark{color:#e7bc65}.ny-motion{position:fixed;right:16px;bottom:18px;z-index:110;background:#18343bea;border:1px solid #d4b884;color:#fff4dc;padding:9px 13px;border-radius:30px;font-size:11px;box-shadow:0 3px 16px #0002}.ny-paused .ny-flake,.ny-paused .ny-star{animation-play-state:paused}.ny-paused .ny-weather{visibility:hidden}.ny-motion:focus-visible,.ny-page a:focus-visible,.ny-home a:focus-visible{outline:3px solid #b68c40;outline-offset:4px} -@keyframes ny-fall{0%{transform:translate3d(0,-30px,0) rotate(0);opacity:0}8%{opacity:.65}92%{opacity:.65}100%{transform:translate3d(60px,105vh,0) rotate(160deg);opacity:0}} -@keyframes ny-twinkle{0%,100%{opacity:.35;transform:scale(.8)}50%{opacity:1;transform:scale(1.1)}} -@media(min-width:769px) and (max-width:1050px){.nav{gap:12px}.nav-link{font-size:12px}.header-inner{gap:12px}.ny-hero-grid{gap:20px}.ny-special{gap:30px}.ny-discount strong{font-size:80px}} -@media(max-width:768px){.ny-hero{padding:36px 0 38px}.ny-hero-grid{grid-template-columns:1fr;gap:30px}.ny-intro h1{font-size:48px}.ny-intro p{font-size:14px}.ny-art img{aspect-ratio:16/9;border-radius:35px 35px 8px 8px}.ny-caption{margin-top:22px}.ny-selection{padding-top:44px;padding-bottom:40px}.ny-heading h2{font-size:32px}.ny-cards{grid-template-columns:1fr;gap:20px}.ny-card-picture img{aspect-ratio:16/9}.ny-card-body{padding:22px}.ny-special{grid-template-columns:1fr;gap:26px;padding:25px;margin:0 20px 35px}.ny-discount{min-height:180px;border-radius:90px 90px 8px 8px}.ny-discount strong{font-size:75px;line-height:1.2}.ny-discount small{font-size:40px}.ny-terms h2{font-size:30px}.ny-offer{grid-template-columns:1fr;gap:25px;padding:32px 0 40px}.ny-offer:nth-child(2) .ny-offer-visual{order:0}.ny-offer-visual{position:static}.ny-offer-visual img{aspect-ratio:16/10}.ny-offer h2{font-size:32px}.ny-closing{padding:45px 5px}.ny-closing h2{font-size:37px}.ny-closing p{font-size:14px}.ny-red{padding:14px 17px}.ny-motion{bottom:12px;right:10px}.ny-flake:nth-child(n+19){display:none}.star-one{left:85%;top:25px}.star-two{display:none}} -@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.ny-flake,.ny-star{animation:none!important}.ny-weather{display:none}.ny-card,.ny-card img,.ny-gold,.ny-red{transition:none;transform:none!important}} +:root { + --ny-ink: #102d37; + --ny-gold: #f3d398; + --ny-red: #ad302e; + --ny-paper: #fbf7ee +} + +.ny-nav { + color: #9a302c; + font-weight: 700 +} + +.nav { + gap: 22px +} + +.ny-home, +.ny-page { + background: var(--ny-paper) +} + +.ny-hero { + background: var(--ny-ink); + color: #fff6e5; + position: relative; + overflow: hidden; + padding: 70px 0 64px +} + +.ny-hero-grid { + display: grid; + grid-template-columns: .85fr 1.15fr; + gap: 38px; + align-items: center; + position: relative; + z-index: 1 +} + +.ny-eyebrow { + display: block; + font-size: 11px; + letter-spacing: 2px; + font-weight: 700; + line-height: 1.8 +} + +.ny-intro .ny-eyebrow { + color: var(--ny-gold) +} + +.ny-intro h1 { + font-family: Georgia, 'Times New Roman', serif; + font-size: clamp(42px, 4.3vw, 66px); + font-weight: 400; + line-height: 1.05; + letter-spacing: -1.8px; + margin: 24px 0 +} + +.ny-intro h1 em { + color: var(--ny-gold); + font-weight: 400 +} + +.ny-intro p { + font-size: 16px; + max-width: 440px; + color: #e0e5df +} + +.ny-actions { + display: flex; + flex-direction: column; + align-items: flex-start; + gap: 19px; + margin-top: 28px +} + +.ny-gold { + background: var(--ny-gold); + color: #19313a; + gap: 20px; + border-radius: 7px +} + +.ny-gold:hover { + background: #ffe8bb; + transform: translateY(-2px) +} + +.ny-text-link { + font-size: 13px; + text-underline-offset: 5px; + text-decoration: underline +} + +.ny-caption { + font-size: 10px; + letter-spacing: .8px; + color: #b3c4c7; + margin-top: 34px; + max-width: 350px +} + +.ny-art { + position: relative; + margin: 0 +} + +.ny-art img { + border-radius: 140px 140px 12px 12px; + border: 1px solid #d8b46d66; + box-shadow: 0 25px 80px #0005; + width: 100%; + aspect-ratio: 1.35; + object-fit: cover +} + +.ny-star { + position: absolute; + color: var(--ny-gold); + animation: ny-twinkle 4s ease-in-out infinite; + pointer-events: none +} + +.star-one { + left: 48%; + top: 22px; + font-size: 46px +} + +.star-two { + left: 42%; + bottom: 24px; + font-size: 30px; + animation-delay: -2s +} + +.ny-selection { + padding-top: 72px; + padding-bottom: 70px; + scroll-margin-top: 100px +} + +.ny-heading { + text-align: center; + margin-bottom: 34px +} + +.ny-heading .ny-eyebrow { + color: #8c6540 +} + +.ny-heading h2, +.ny-terms h2, +.ny-offer h2, +.ny-closing h2 { + font-family: Georgia, 'Times New Roman', serif; + font-weight: 400; + font-size: clamp(30px, 3vw, 43px); + line-height: 1.16; + color: var(--ny-ink); + margin: 14px 0 22px +} + +.ny-cards { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 22px +} + +.ny-card { + border: 1px solid #ddcfb9; + border-radius: 12px; + overflow: hidden; + background: #fffdf8; + display: flex; + flex-direction: column +} + +.ny-card:hover { + transform: translateY(-5px); + box-shadow: 0 16px 35px #28373214 +} + +.ny-card-picture { + position: relative; + overflow: hidden +} + +.ny-card-picture img { + width: 100%; + aspect-ratio: 16/10; + object-fit: cover; + transition: transform .4s +} + +.ny-card:hover img { + transform: scale(1.035) +} + +.ny-card-picture span { + position: absolute; + bottom: 14px; + left: 16px; + background: #fff6e5; + color: #702721; + border-radius: 4px; + padding: 5px 11px; + font-size: 13px; + font-weight: 700 +} + +.ny-card-body { + padding: 24px; + flex: 1; + display: flex; + flex-direction: column +} + +.ny-card-body small { + font-size: 9px; + letter-spacing: 1.8px; + color: #82684c +} + +.ny-card h3 { + font-family: Georgia, serif; + color: var(--ny-ink); + font-size: 26px; + line-height: 1.2; + margin: 12px 0 +} + +.ny-card p { + font-size: 13px; + color: #655f56; + margin-bottom: 22px +} + +.ny-card b { + font-size: 12px; + color: #9c302e; + display: flex; + justify-content: space-between; + margin-top: auto +} + +.ny-special { + display: grid; + grid-template-columns: .7fr 1.3fr; + gap: 60px; + background: #efe6d6; + border-radius: 16px; + padding: 48px; + margin-bottom: 70px; + scroll-margin-top: 110px +} + +.ny-discount { + border: 1px solid #b89b65; + border-radius: 160px 160px 12px 12px; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + min-height: 330px; + text-align: center; + padding: 25px; + color: #862e2b +} + +.ny-discount>span { + font-size: 10px; + letter-spacing: 2px; + max-width: 200px +} + +.ny-discount strong { + font-family: Georgia, serif; + font-size: 105px; + font-weight: 400; + line-height: 1.5; + white-space: nowrap +} + +.ny-discount small { + font-size: 60px +} + +.ny-terms .ny-eyebrow { + color: #8d342f +} + +.ny-terms h2 { + margin-top: 12px; + font-size: 36px +} + +.ny-terms p, +.ny-terms li { + font-size: 13px; + line-height: 1.8 +} + +.ny-terms ul { + margin: 16px 0 +} + +.ny-terms li { + padding-left: 24px; + position: relative; + margin-bottom: 9px +} + +.ny-terms li:before { + content: '✦'; + position: absolute; + left: 0; + color: #9c6632 +} + +.ny-exclusion { + border-top: 1px solid #cfbea4; + padding-top: 16px; + color: #744832 +} + +.ny-details { + padding-bottom: 20px +} + +.ny-offer { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 55px; + padding: 50px 0 70px; + border-top: 1px solid #dfd4c2; + scroll-margin-top: 95px; + align-items: start +} + +.ny-offer:nth-child(2) .ny-offer-visual { + order: 2 +} + +.ny-offer-visual { + position: sticky; + top: 115px +} + +.ny-offer-visual img { + width: 100%; + border-radius: 12px; + aspect-ratio: 4/3; + object-fit: cover +} + +.ny-offer-label { + display: flex; + justify-content: space-between; + align-items: center; + border-bottom: 1px solid #d6c6ac; + padding: 16px 0; + font-size: 10px; + letter-spacing: 2px; + color: #967446 +} + +.ny-offer-label span { + font-size: 24px +} + +.ny-offer-copy .ny-eyebrow { + color: #9c302e +} + +.ny-offer h2 { + font-size: 36px +} + +.ny-offer p { + font-size: 14px; + line-height: 1.85; + margin-bottom: 16px; + color: #554f47 +} + +.ny-offer h4 { + font-size: 15px; + color: var(--ny-ink); + margin: 24px 0 9px +} + +.ny-price { + border-left: 3px solid #bb914e; + background: #f0e8da; + padding: 17px 19px; + font-size: 14px; + font-weight: 600; + margin: 23px 0 17px +} + +.ny-offer .ny-note { + font-size: 12px; + color: #736557 +} + +.ny-red { + background: var(--ny-red); + color: white; + white-space: normal; + border-radius: 7px; + font-size: 13px; + gap: 15px; + margin-top: 9px +} + +.ny-red:hover { + background: #842724; + transform: translateY(-2px) +} + +.ny-channel { + display: block; + font-size: 10px; + color: #766f65; + margin-top: 10px +} + +.ny-closing { + background: var(--ny-ink); + color: #f8efdc; + text-align: center; + padding: 70px 20px +} + +.ny-closing h2 { + color: var(--ny-gold); + font-size: 48px +} + +.ny-closing p { + max-width: 620px; + margin: 0 auto 28px +} + +.ny-closing .ny-text-link { + display: block; + margin-top: 20px +} + +.ny-closing .ny-eyebrow { + color: #c8b68f +} + +.ny-page .privacy-settings { + padding-top: 22px +} + +.ny-home .benefits { + border-top: 1px solid #ded2be +} + +.ny-home .btn-primary { + background: var(--ny-red) +} + +.ny-weather { + position: fixed; + inset: 0; + pointer-events: none; + z-index: 101; + overflow: hidden +} + +.ny-flake { + position: absolute; + top: -30px; + left: var(--x); + color: #fff; + opacity: 0; + text-shadow: 0 1px 4px #15364466; + font-size: var(--size); + animation: ny-fall var(--duration) linear var(--delay) infinite; + will-change: transform +} + +.ny-flake.ny-spark { + color: #e7bc65 +} + +.ny-motion { + position: fixed; + right: 16px; + bottom: 18px; + z-index: 110; + background: #18343bea; + border: 1px solid #d4b884; + color: #fff4dc; + padding: 9px 13px; + border-radius: 30px; + font-size: 11px; + box-shadow: 0 3px 16px #0002 +} + +.ny-paused .ny-flake, +.ny-paused .ny-star { + animation-play-state: paused +} + +.ny-paused .ny-weather { + visibility: hidden +} + +.ny-motion:focus-visible, +.ny-page a:focus-visible, +.ny-home a:focus-visible { + outline: 3px solid #b68c40; + outline-offset: 4px +} + +@keyframes ny-fall { + 0% { + transform: translate3d(0, -30px, 0) rotate(0); + opacity: 0 + } + + 8% { + opacity: .65 + } + + 92% { + opacity: .65 + } + + 100% { + transform: translate3d(60px, 105vh, 0) rotate(160deg); + opacity: 0 + } +} + +@keyframes ny-twinkle { + + 0%, + 100% { + opacity: .35; + transform: scale(.8) + } + + 50% { + opacity: 1; + transform: scale(1.1) + } +} + +@media(min-width:769px) and (max-width:1050px) { + .nav { + gap: 12px + } + + .nav-link { + font-size: 12px + } + + .header-inner { + gap: 12px + } + + .ny-hero-grid { + gap: 20px + } + + .ny-special { + gap: 30px + } + + .ny-discount strong { + font-size: 80px + } +} + +@media(max-width:768px) { + .ny-hero { + padding: 36px 0 38px + } + + .ny-hero-grid { + grid-template-columns: 1fr; + gap: 30px + } + + .ny-intro h1 { + font-size: 48px + } + + .ny-intro p { + font-size: 14px + } + + .ny-art img { + aspect-ratio: 16/9; + border-radius: 35px 35px 8px 8px + } + + .ny-caption { + margin-top: 22px + } + + .ny-selection { + padding-top: 44px; + padding-bottom: 40px + } + + .ny-heading h2 { + font-size: 32px + } + + .ny-cards { + grid-template-columns: 1fr; + gap: 20px + } + + .ny-card-picture img { + aspect-ratio: 16/9 + } + + .ny-card-body { + padding: 22px + } + + .ny-special { + grid-template-columns: 1fr; + gap: 26px; + padding: 25px; + margin: 0 20px 35px + } + + .ny-discount { + min-height: 180px; + border-radius: 90px 90px 8px 8px + } + + .ny-discount strong { + font-size: 75px; + line-height: 1.2 + } + + .ny-discount small { + font-size: 40px + } + + .ny-terms h2 { + font-size: 30px + } + + .ny-offer { + grid-template-columns: 1fr; + gap: 25px; + padding: 32px 0 40px + } + + .ny-offer:nth-child(2) .ny-offer-visual { + order: 0 + } + + .ny-offer-visual { + position: static + } + + .ny-offer-visual img { + aspect-ratio: 16/10 + } + + .ny-offer h2 { + font-size: 32px + } + + .ny-closing { + padding: 45px 5px + } + + .ny-closing h2 { + font-size: 37px + } + + .ny-closing p { + font-size: 14px + } + + .ny-red { + padding: 14px 17px + } + + .ny-motion { + bottom: 12px; + right: 10px + } + + .ny-flake:nth-child(n+19) { + display: none + } + + .star-one { + left: 85%; + top: 25px + } + + .star-two { + display: none + } +} + +@media(prefers-reduced-motion:reduce) { + html { + scroll-behavior: auto + } + + .ny-flake, + .ny-star { + animation: none !important + } + + .ny-weather { + display: none + } + + .ny-card, + .ny-card img, + .ny-gold, + .ny-red { + transition: none; + transform: none !important + } +} + /* Keep the supplied artwork's lettering fully visible at every width. */ -.ny-art img{aspect-ratio:1672/941;object-fit:contain;border-radius:55px 55px 10px 10px} -@media(max-width:768px){.ny-art img{border-radius:30px 30px 8px 8px}} +.ny-art img { + aspect-ratio: 1672/941; + object-fit: contain; + border-radius: 55px 55px 10px 10px +} + +@media(max-width:768px) { + .ny-art img { + border-radius: 30px 30px 8px 8px + } +} + /* Keep the closing order button distinct from the red CTA panel. */ -.ny-home .cta-box .btn-primary{background:#fff8e9;color:#842724;border:2px solid #fff8e9;box-shadow:0 5px 18px #65100f22} -.ny-home .cta-box .btn-primary:hover{background:#f3d398;color:#57201d;border-color:#f3d398} -.ny-home .ny-intro h1{font-size:clamp(30px,3.1vw,46px);letter-spacing:-1.2px;line-height:1.15} -.ny-hero{scroll-margin-top:90px} -@media(max-width:768px){.ny-home .ny-intro h1{font-size:clamp(27px,7.5vw,42px);letter-spacing:-.8px}} -@media(max-width:480px){.ny-home .btn{max-width:100%;white-space:normal;text-align:center}.ny-home .for-whom-card .btn{padding-left:18px;padding-right:18px}} -.ny-video-section{padding-top:10px;padding-bottom:65px;scroll-margin-top:100px}.ny-video-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ny-video-section .ny-heading p{color:#655f56;font-size:14px}.ny-work .work-video-preview{object-fit:contain;background:#10252e}.ny-work .work-info h3{font-family:Georgia,serif;font-size:26px;color:var(--ny-ink)}.ny-work .work-info p{margin-bottom:0}.ny-all-works{text-align:center;margin-top:26px}.ny-video-section .work-tag{background:#efe6d6;color:#842724}.ny-work{scroll-margin-top:110px} -@media(max-width:768px){.ny-video-grid{grid-template-columns:1fr}.ny-video-section{padding-bottom:40px}} +.ny-home .cta-box .btn-primary { + background: #fff8e9; + color: #842724; + border: 2px solid #fff8e9; + box-shadow: 0 5px 18px #65100f22 +} + +.ny-home .cta-box .btn-primary:hover { + background: #f3d398; + color: #57201d; + border-color: #f3d398 +} + +.ny-home .ny-intro h1 { + font-size: clamp(30px, 3.1vw, 46px); + letter-spacing: -1.2px; + line-height: 1.15 +} + +.ny-hero { + scroll-margin-top: 90px +} + +@media(max-width:768px) { + .ny-home .ny-intro h1 { + font-size: clamp(27px, 7.5vw, 42px); + letter-spacing: -.8px + } +} + +@media(max-width:480px) { + .ny-home .btn { + max-width: 100%; + white-space: normal; + text-align: center + } + + .ny-home .for-whom-card .btn { + padding-left: 18px; + padding-right: 18px + } +} + +.ny-video-section { + padding-top: 10px; + padding-bottom: 65px; + scroll-margin-top: 100px +} + +.ny-video-grid { + grid-template-columns: repeat(2, minmax(0, 1fr)) +} + +.ny-video-section .ny-heading p { + color: #655f56; + font-size: 14px +} + +.ny-work .work-video-preview { + object-fit: contain; + background: #10252e +} + +.ny-work .work-info h3 { + font-family: Georgia, serif; + font-size: 26px; + color: var(--ny-ink) +} + +.ny-work .work-info p { + margin-bottom: 0 +} + +.ny-all-works { + text-align: center; + margin-top: 26px +} + +.ny-video-section .work-tag { + background: #efe6d6; + color: #842724 +} + +.ny-work { + scroll-margin-top: 110px +} + +@media(max-width:768px) { + .ny-video-grid { + grid-template-columns: 1fr + } + + .ny-video-section { + padding-bottom: 40px + } +} \ No newline at end of file diff --git a/html/css/style.css b/html/css/style.css index 75cea59..129bf5f 100644 --- a/html/css/style.css +++ b/html/css/style.css @@ -1,6 +1,17 @@ /* ===== RESET & BASE ===== */ -*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } -html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; } +*, +*::before, +*::after { + box-sizing: border-box; + margin: 0; + padding: 0; +} + +html { + scroll-behavior: smooth; + -webkit-text-size-adjust: 100%; +} + body { font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, sans-serif; font-size: 16px; @@ -10,10 +21,29 @@ body { min-height: 100vh; overflow-wrap: break-word; } -img { max-width: 100%; height: auto; display: block; } -a { color: inherit; text-decoration: none; transition: all 0.2s ease; } -ul { list-style: none; } -button { font-family: inherit; cursor: pointer; border: none; background: none; } + +img { + max-width: 100%; + height: auto; + display: block; +} + +a { + color: inherit; + text-decoration: none; + transition: all 0.2s ease; +} + +ul { + list-style: none; +} + +button { + font-family: inherit; + cursor: pointer; + border: none; + background: none; +} /* ===== VARIABLES ===== */ :root { @@ -27,12 +57,19 @@ button { font-family: inherit; cursor: pointer; border: none; background: none; --font-hand: 'Caveat', cursive; --container: 1200px; --radius: 16px; - --shadow: 0 4px 24px rgba(0,0,0,0.06); - --shadow-hover: 0 8px 32px rgba(0,0,0,0.1); + --shadow: 0 4px 24px rgba(0, 0, 0, 0.06); + --shadow-hover: 0 8px 32px rgba(0, 0, 0, 0.1); } -.container { max-width: var(--container); margin: 0 auto; padding: 0 20px; } -.accent { color: var(--color-accent); } +.container { + max-width: var(--container); + margin: 0 auto; + padding: 0 20px; +} + +.accent { + color: var(--color-accent); +} /* ===== BUTTONS ===== */ .btn { @@ -48,11 +85,33 @@ button { font-family: inherit; cursor: pointer; border: none; background: none; border: 2px solid transparent; white-space: nowrap; } -.btn-primary { background: var(--color-accent); color: #fff; } -.btn-primary:hover { background: #B30000; transform: translateY(-2px); box-shadow: var(--shadow-hover); } -.btn-outline { background: transparent; color: var(--color-text); border-color: var(--color-text); } -.btn-outline:hover { background: var(--color-text); color: #fff; } -.btn-lg { padding: 18px 36px; font-size: 16px; } + +.btn-primary { + background: var(--color-accent); + color: #fff; +} + +.btn-primary:hover { + background: #B30000; + transform: translateY(-2px); + box-shadow: var(--shadow-hover); +} + +.btn-outline { + background: transparent; + color: var(--color-text); + border-color: var(--color-text); +} + +.btn-outline:hover { + background: var(--color-text); + color: #fff; +} + +.btn-lg { + padding: 18px 36px; + font-size: 16px; +} /* ===== HEADER ===== */ .header { @@ -64,6 +123,7 @@ button { font-family: inherit; cursor: pointer; border: none; background: none; z-index: 100; border-bottom: 1px solid var(--color-border); } + .header-inner { display: flex; align-items: center; @@ -71,25 +131,71 @@ button { font-family: inherit; cursor: pointer; border: none; background: none; padding: 16px 20px; gap: 24px; } -.logo { display: flex; align-items: center; gap: 8px; font-weight: 800; font-size: 20px; letter-spacing: 1px; } -.logo-bird { font-size: 28px; } -.nav { display: flex; gap: 28px; } -.nav-link { font-weight: 500; font-size: 15px; position: relative; } -.nav-link:hover, .nav-link.active { color: var(--color-accent); } + +.logo { + display: flex; + align-items: center; + gap: 8px; + font-weight: 800; + font-size: 20px; + letter-spacing: 1px; +} + +.logo-bird { + font-size: 28px; +} + +.nav { + display: flex; + gap: 28px; +} + +.nav-link { + font-weight: 500; + font-size: 15px; + position: relative; +} + +.nav-link:hover, +.nav-link.active { + color: var(--color-accent); +} + .nav-link.active::after { content: ''; position: absolute; - bottom: -6px; left: 0; right: 0; + bottom: -6px; + left: 0; + right: 0; height: 2px; background: var(--color-accent); border-radius: 2px; } -.burger { display: none; flex-direction: column; gap: 5px; padding: 8px; } -.burger span { display: block; width: 24px; height: 2px; background: var(--color-text); transition: 0.3s; } + +.burger { + display: none; + flex-direction: column; + gap: 5px; + padding: 8px; +} + +.burger span { + display: block; + width: 24px; + height: 2px; + background: var(--color-text); + transition: 0.3s; +} /* ===== HERO ===== */ -.hero { padding: 80px 0 60px; } -.hero-content { max-width: 800px; } +.hero { + padding: 80px 0 60px; +} + +.hero-content { + max-width: 800px; +} + .hero-tag { display: inline-block; padding: 6px 16px; @@ -100,6 +206,7 @@ button { font-family: inherit; cursor: pointer; border: none; background: none; font-weight: 600; margin-bottom: 24px; } + .hero-title { font-size: clamp(32px, 5vw, 56px); font-weight: 800; @@ -107,19 +214,43 @@ button { font-family: inherit; cursor: pointer; border: none; background: none; margin-bottom: 20px; letter-spacing: -0.02em; } + .hero-subtitle { font-size: clamp(16px, 2vw, 19px); color: var(--color-text-muted); margin-bottom: 32px; max-width: 640px; } -.hero-actions { display: flex; gap: 16px; flex-wrap: wrap; margin-bottom: 48px; } -.hero-stats { display: flex; gap: 40px; flex-wrap: wrap; } -.stat-num { font-size: 28px; font-weight: 800; color: var(--color-accent); } -.stat-label { font-size: 13px; color: var(--color-text-muted); } + +.hero-actions { + display: flex; + gap: 16px; + flex-wrap: wrap; + margin-bottom: 48px; +} + +.hero-stats { + display: flex; + gap: 40px; + flex-wrap: wrap; +} + +.stat-num { + font-size: 28px; + font-weight: 800; + color: var(--color-accent); +} + +.stat-label { + font-size: 13px; + color: var(--color-text-muted); +} /* ===== SECTIONS ===== */ -.section { padding: 80px 0; } +.section { + padding: 80px 0; +} + .section-title { font-size: clamp(28px, 4vw, 42px); font-weight: 800; @@ -127,30 +258,69 @@ button { font-family: inherit; cursor: pointer; border: none; background: none; text-align: center; letter-spacing: -0.02em; } -.section-subtitle { text-align: center; color: var(--color-text-muted); margin-bottom: 48px; font-size: 17px; } + +.section-subtitle { + text-align: center; + color: var(--color-text-muted); + margin-bottom: 48px; + font-size: 17px; +} /* ===== BENEFITS ===== */ -.benefits { background: var(--color-bg-alt); } -.benefits-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 24px; margin-top: 48px; } +.benefits { + background: var(--color-bg-alt); +} + +.benefits-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); + gap: 24px; + margin-top: 48px; +} + .benefit-card { padding: 32px 24px; background: var(--color-bg); border-radius: var(--radius); transition: 0.3s; } -.benefit-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); } -.benefit-icon { font-size: 36px; margin-bottom: 16px; } -.benefit-card h3 { font-size: 19px; margin-bottom: 8px; font-weight: 700; } -.benefit-card p { color: var(--color-text-muted); font-size: 15px; } + +.benefit-card:hover { + transform: translateY(-4px); + box-shadow: var(--shadow); +} + +.benefit-icon { + font-size: 36px; + margin-bottom: 16px; +} + +.benefit-card h3 { + font-size: 19px; + margin-bottom: 8px; + font-weight: 700; +} + +.benefit-card p { + color: var(--color-text-muted); + font-size: 15px; +} /* ===== FOR WHOM ===== */ -.for-whom-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 24px; margin-top: 48px; } +.for-whom-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); + gap: 24px; + margin-top: 48px; +} + .for-whom-card { padding: 40px 32px; background: var(--color-bg-alt); border-radius: var(--radius); border: 1px solid var(--color-border); } + .for-whom-tag { display: inline-block; padding: 6px 14px; @@ -160,13 +330,22 @@ button { font-family: inherit; cursor: pointer; border: none; background: none; font-weight: 600; margin-bottom: 16px; } -.for-whom-card h3 { font-size: 24px; margin-bottom: 16px; } -.for-whom-card ul { margin-bottom: 24px; } + +.for-whom-card h3 { + font-size: 24px; + margin-bottom: 16px; +} + +.for-whom-card ul { + margin-bottom: 24px; +} + .for-whom-card li { padding: 8px 0 8px 24px; position: relative; font-size: 15px; } + .for-whom-card li::before { content: '✓'; position: absolute; @@ -176,8 +355,17 @@ button { font-family: inherit; cursor: pointer; border: none; background: none; } /* ===== PRICING ===== */ -.pricing { background: var(--color-bg-alt); } -.pricing-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 24px; margin-top: 48px; } +.pricing { + background: var(--color-bg-alt); +} + +.pricing-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); + gap: 24px; + margin-top: 48px; +} + .price-card { padding: 36px 28px; background: var(--color-bg); @@ -188,11 +376,21 @@ button { font-family: inherit; cursor: pointer; border: none; background: none; flex-direction: column; transition: 0.3s; } -.price-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); } -.price-card.featured { border-color: var(--color-accent); background: #fff; } + +.price-card:hover { + transform: translateY(-4px); + box-shadow: var(--shadow); +} + +.price-card.featured { + border-color: var(--color-accent); + background: #fff; +} + .price-badge { position: absolute; - top: -12px; left: 50%; + top: -12px; + left: 50%; transform: translateX(-50%); background: var(--color-accent); color: #fff; @@ -201,10 +399,33 @@ button { font-family: inherit; cursor: pointer; border: none; background: none; font-size: 12px; font-weight: 600; } -.price-name { font-size: 24px; font-weight: 800; margin-bottom: 4px; } -.price-desc { color: var(--color-text-muted); font-size: 14px; margin-bottom: 20px; } -.price-features { font-size: 14px; margin-bottom: 24px; flex-grow: 1; color: var(--color-text-muted); } -.price-value { font-size: 32px; font-weight: 800; color: var(--color-accent); margin-bottom: 20px; } + +.price-name { + font-size: 24px; + font-weight: 800; + margin-bottom: 4px; +} + +.price-desc { + color: var(--color-text-muted); + font-size: 14px; + margin-bottom: 20px; +} + +.price-features { + font-size: 14px; + margin-bottom: 24px; + flex-grow: 1; + color: var(--color-text-muted); +} + +.price-value { + font-size: 32px; + font-weight: 800; + color: var(--color-accent); + margin-bottom: 20px; +} + .pricing-note { margin-top: 40px; padding: 24px; @@ -212,16 +433,27 @@ button { font-family: inherit; cursor: pointer; border: none; background: none; border-radius: var(--radius); text-align: center; } -.pricing-note p { margin: 6px 0; font-size: 15px; } + +.pricing-note p { + margin: 6px 0; + font-size: 15px; +} /* ===== PROCESS ===== */ -.process-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 24px; margin-top: 48px; } +.process-steps { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); + gap: 24px; + margin-top: 48px; +} + .step { padding: 28px 20px; background: var(--color-bg-alt); border-radius: var(--radius); position: relative; } + .step-num { font-family: var(--font-hand); font-size: 48px; @@ -229,11 +461,22 @@ button { font-family: inherit; cursor: pointer; border: none; background: none; line-height: 1; margin-bottom: 12px; } -.step h3 { font-size: 17px; margin-bottom: 8px; } -.step p { font-size: 14px; color: var(--color-text-muted); } + +.step h3 { + font-size: 17px; + margin-bottom: 8px; +} + +.step p { + font-size: 14px; + color: var(--color-text-muted); +} /* ===== CTA ===== */ -.cta { background: var(--color-bg-alt); } +.cta { + background: var(--color-bg-alt); +} + .cta-box { background: linear-gradient(135deg, var(--color-accent) 0%, #B30000 100%); color: #fff; @@ -241,20 +484,61 @@ button { font-family: inherit; cursor: pointer; border: none; background: none; border-radius: var(--radius); text-align: center; } -.cta-box h2 { font-size: clamp(24px, 4vw, 36px); margin-bottom: 12px; } -.cta-box p { font-size: 17px; margin-bottom: 28px; opacity: 0.95; } -.cta-box .btn-primary { background: #fff; color: var(--color-accent); } -.cta-box .btn-primary:hover { background: var(--color-bg); } + +.cta-box h2 { + font-size: clamp(24px, 4vw, 36px); + margin-bottom: 12px; +} + +.cta-box p { + font-size: 17px; + margin-bottom: 28px; + opacity: 0.95; +} + +.cta-box .btn-primary { + background: #fff; + color: var(--color-accent); +} + +.cta-box .btn-primary:hover { + background: var(--color-bg); +} /* ===== PAGE HERO ===== */ -.page-hero { padding: 80px 0 40px; text-align: center; } -.page-title { font-size: clamp(32px, 5vw, 48px); font-weight: 800; margin-bottom: 16px; } -.page-subtitle { font-size: 18px; color: var(--color-text-muted); max-width: 640px; margin: 0 auto; } +.page-hero { + padding: 80px 0 40px; + text-align: center; +} + +.page-title { + font-size: clamp(32px, 5vw, 48px); + font-weight: 800; + margin-bottom: 16px; +} + +.page-subtitle { + font-size: 18px; + color: var(--color-text-muted); + max-width: 640px; + margin: 0 auto; +} /* ===== SERVICES PAGE ===== */ -.service-block { padding: 60px 0; } -.service-block.alt { background: var(--color-bg-alt); } -.service-head { text-align: center; max-width: 720px; margin: 0 auto 48px; } +.service-block { + padding: 60px 0; +} + +.service-block.alt { + background: var(--color-bg-alt); +} + +.service-head { + text-align: center; + max-width: 720px; + margin: 0 auto 48px; +} + .service-tag { display: inline-block; padding: 6px 16px; @@ -265,19 +549,49 @@ button { font-family: inherit; cursor: pointer; border: none; background: none; font-weight: 600; margin-bottom: 16px; } -.service-head h2 { font-size: clamp(26px, 4vw, 36px); margin-bottom: 12px; } -.service-lead { font-size: 17px; color: var(--color-text-muted); } -.service-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 20px; margin-bottom: 32px; } + +.service-head h2 { + font-size: clamp(26px, 4vw, 36px); + margin-bottom: 12px; +} + +.service-lead { + font-size: 17px; + color: var(--color-text-muted); +} + +.service-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); + gap: 20px; + margin-bottom: 32px; +} + .service-card { padding: 28px 24px; background: var(--color-bg); border-radius: var(--radius); border: 1px solid var(--color-border); } -.service-block.alt .service-card { background: var(--color-bg); } -.service-card h3 { font-size: 18px; margin-bottom: 10px; } -.service-card p { font-size: 14px; color: var(--color-text-muted); } -.service-cta { text-align: center; margin-top: 32px; } + +.service-block.alt .service-card { + background: var(--color-bg); +} + +.service-card h3 { + font-size: 18px; + margin-bottom: 10px; +} + +.service-card p { + font-size: 14px; + color: var(--color-text-muted); +} + +.service-cta { + text-align: center; + margin-top: 32px; +} /* ===== EXTRAS ===== */ .extras-grid { @@ -289,6 +603,7 @@ button { font-family: inherit; cursor: pointer; border: none; background: none; margin-left: auto; margin-right: auto; } + .extra-item { display: flex; justify-content: space-between; @@ -298,11 +613,24 @@ button { font-family: inherit; cursor: pointer; border: none; background: none; border-radius: 12px; border: 1px solid var(--color-border); } -.extra-name { font-size: 15px; font-weight: 500; } -.extra-price { font-weight: 700; color: var(--color-accent); } + +.extra-name { + font-size: 15px; + font-weight: 500; +} + +.extra-price { + font-weight: 700; + color: var(--color-accent); +} /* ===== PORTFOLIO ===== */ -.portfolio-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 24px; } +.portfolio-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); + gap: 24px; +} + .work-card { background: var(--color-bg-alt); border-radius: var(--radius); @@ -310,7 +638,12 @@ button { font-family: inherit; cursor: pointer; border: none; background: none; transition: 0.3s; border: 1px solid var(--color-border); } -.work-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); } + +.work-card:hover { + transform: translateY(-4px); + box-shadow: var(--shadow); +} + .work-media { aspect-ratio: 16/9; background: linear-gradient(135deg, #2C2C2C, #444); @@ -319,8 +652,16 @@ button { font-family: inherit; cursor: pointer; border: none; background: none; justify-content: center; color: #fff; } -.work-placeholder { font-size: 18px; opacity: 0.7; } -.work-info { padding: 24px; } + +.work-placeholder { + font-size: 18px; + opacity: 0.7; +} + +.work-info { + padding: 24px; +} + .work-tag { display: inline-block; padding: 4px 12px; @@ -331,12 +672,33 @@ button { font-family: inherit; cursor: pointer; border: none; background: none; font-weight: 600; margin-bottom: 12px; } -.work-info h3 { font-size: 19px; margin-bottom: 8px; } -.work-info p { font-size: 14px; color: var(--color-text-muted); margin-bottom: 16px; } -.work-meta { display: flex; gap: 16px; font-size: 13px; color: var(--color-text-muted); padding-top: 16px; border-top: 1px solid var(--color-border); } + +.work-info h3 { + font-size: 19px; + margin-bottom: 8px; +} + +.work-info p { + font-size: 14px; + color: var(--color-text-muted); + margin-bottom: 16px; +} + +.work-meta { + display: flex; + gap: 16px; + font-size: 13px; + color: var(--color-text-muted); + padding-top: 16px; + border-top: 1px solid var(--color-border); +} /* ===== PORTFOLIO VIDEO ===== */ -.work-media { position: relative; overflow: hidden; } +.work-media { + position: relative; + overflow: hidden; +} + .work-video { position: relative; display: block; @@ -349,7 +711,12 @@ button { font-family: inherit; cursor: pointer; border: none; background: none; cursor: pointer; text-align: left; } -.work-video:focus-visible { outline: 3px solid var(--color-accent); outline-offset: -3px; } + +.work-video:focus-visible { + outline: 3px solid var(--color-accent); + outline-offset: -3px; +} + .work-video-preview { display: block; width: 100%; @@ -358,37 +725,53 @@ button { font-family: inherit; cursor: pointer; border: none; background: none; background: #1f1f1f; transition: transform 0.4s ease; } -.work-card:hover .work-video-preview { transform: scale(1.04); } + +.work-card:hover .work-video-preview { + transform: scale(1.04); +} + .work-video::after { content: ''; position: absolute; inset: 0; - background: linear-gradient(to top, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0) 45%); + background: linear-gradient(to top, rgba(0, 0, 0, 0.55) 0%, rgba(0, 0, 0, 0) 45%); pointer-events: none; } + .work-play { position: absolute; - top: 50%; left: 50%; - width: 64px; height: 64px; + top: 50%; + left: 50%; + width: 64px; + height: 64px; margin: -32px 0 0 -32px; display: flex; align-items: center; justify-content: center; border-radius: 50%; - background: rgba(255,255,255,0.92); + background: rgba(255, 255, 255, 0.92); color: var(--color-accent); - box-shadow: 0 6px 24px rgba(0,0,0,0.3); + box-shadow: 0 6px 24px rgba(0, 0, 0, 0.3); transition: transform 0.25s ease, background 0.25s ease; z-index: 1; } -.work-play svg { margin-left: 3px; } -.work-video:hover .work-play { transform: scale(1.1); background: #fff; } + +.work-play svg { + margin-left: 3px; +} + +.work-video:hover .work-play { + transform: scale(1.1); + background: #fff; +} + .work-video-label { position: absolute; - left: 16px; bottom: 12px; + left: 16px; + bottom: 12px; font-size: 13px; font-weight: 600; - text-shadow: 0 1px 4px rgba(0,0,0,0.6); + text-shadow: 0 1px 4px rgba(0, 0, 0, 0.6); z-index: 1; } @@ -404,14 +787,20 @@ button { font-family: inherit; cursor: pointer; border: none; background: none; visibility: hidden; transition: opacity 0.3s ease, visibility 0.3s ease; } -.video-modal.open { opacity: 1; visibility: visible; } + +.video-modal.open { + opacity: 1; + visibility: visible; +} + .video-modal-backdrop { position: absolute; inset: 0; - background: rgba(0,0,0,0.92); + background: rgba(0, 0, 0, 0.92); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); } + .video-modal-dialog { position: relative; width: 100%; @@ -421,7 +810,11 @@ button { font-family: inherit; cursor: pointer; border: none; background: none; transform: scale(0.96); transition: transform 0.3s ease; } -.video-modal.open .video-modal-dialog { transform: scale(1); } + +.video-modal.open .video-modal-dialog { + transform: scale(1); +} + .video-modal-bar { display: flex; align-items: center; @@ -430,6 +823,7 @@ button { font-family: inherit; cursor: pointer; border: none; background: none; padding: 14px 20px; color: #fff; } + .video-modal-title { font-size: 16px; font-weight: 600; @@ -437,21 +831,37 @@ button { font-family: inherit; cursor: pointer; border: none; background: none; overflow: hidden; text-overflow: ellipsis; } -.video-modal-actions { display: flex; gap: 8px; flex-shrink: 0; } + +.video-modal-actions { + display: flex; + gap: 8px; + flex-shrink: 0; +} + .video-modal-btn { - width: 44px; height: 44px; + width: 44px; + height: 44px; display: flex; align-items: center; justify-content: center; border: 0; border-radius: 50%; - background: rgba(255,255,255,0.12); + background: rgba(255, 255, 255, 0.12); color: #fff; cursor: pointer; transition: background 0.2s ease, transform 0.2s ease; } -.video-modal-btn:hover { background: rgba(255,255,255,0.25); transform: scale(1.06); } -.video-modal-btn:focus-visible { outline: 2px solid #fff; outline-offset: 2px; } + +.video-modal-btn:hover { + background: rgba(255, 255, 255, 0.25); + transform: scale(1.06); +} + +.video-modal-btn:focus-visible { + outline: 2px solid #fff; + outline-offset: 2px; +} + .video-modal-stage { flex: 1; min-height: 0; @@ -460,6 +870,7 @@ button { font-family: inherit; cursor: pointer; border: none; background: none; justify-content: center; padding: 0 20px 20px; } + .video-modal-stage video { display: block; max-width: 100%; @@ -469,33 +880,84 @@ button { font-family: inherit; cursor: pointer; border: none; background: none; object-fit: contain; border-radius: 12px; background: #000; - box-shadow: 0 20px 60px rgba(0,0,0,0.6); + box-shadow: 0 20px 60px rgba(0, 0, 0, 0.6); outline: none; } -.video-modal-stage video:fullscreen { border-radius: 0; } -body.video-modal-open { overflow: hidden; } + +.video-modal-stage video:fullscreen { + border-radius: 0; +} + +body.video-modal-open { + overflow: hidden; +} @media (max-width: 768px) { - .work-play { width: 56px; height: 56px; margin: -28px 0 0 -28px; } - .video-modal-bar { padding: 10px 12px; } - .video-modal-title { font-size: 14px; } - .video-modal-stage { padding: 0 8px 12px; } - .video-modal-stage video { border-radius: 8px; } + .work-play { + width: 56px; + height: 56px; + margin: -28px 0 0 -28px; + } + + .video-modal-bar { + padding: 10px 12px; + } + + .video-modal-title { + font-size: 14px; + } + + .video-modal-stage { + padding: 0 8px 12px; + } + + .video-modal-stage video { + border-radius: 8px; + } } /* ===== REVIEWS ===== */ -.reviews { background: var(--color-bg-alt); } -.reviews-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 24px; margin-top: 48px; } +.reviews { + background: var(--color-bg-alt); +} + +.reviews-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); + gap: 24px; + margin-top: 48px; +} + .review-card { padding: 28px 24px; background: var(--color-bg); border-radius: var(--radius); border: 1px solid var(--color-border); } -.review-stars { color: #FFB800; font-size: 18px; margin-bottom: 12px; letter-spacing: 2px; } -.review-text { font-size: 15px; margin-bottom: 20px; font-style: italic; } -.review-name { font-weight: 700; font-size: 15px; } -.review-role { font-size: 13px; color: var(--color-text-muted); } + +.review-stars { + color: #FFB800; + font-size: 18px; + margin-bottom: 12px; + letter-spacing: 2px; +} + +.review-text { + font-size: 15px; + margin-bottom: 20px; + font-style: italic; +} + +.review-name { + font-weight: 700; + font-size: 15px; +} + +.review-role { + font-size: 13px; + color: var(--color-text-muted); +} + .cta-inline { margin-top: 48px; text-align: center; @@ -503,27 +965,59 @@ body.video-modal-open { overflow: hidden; } background: var(--color-accent-soft); border-radius: var(--radius); } -.cta-inline h3 { font-size: 24px; margin-bottom: 8px; } -.cta-inline p { margin-bottom: 20px; color: var(--color-text-muted); } + +.cta-inline h3 { + font-size: 24px; + margin-bottom: 8px; +} + +.cta-inline p { + margin-bottom: 20px; + color: var(--color-text-muted); +} /* ===== CONTACTS (TAPLINK) ===== */ -.contacts-page { background: linear-gradient(180deg, #F9F7F0 0%, #F5D5C8 100%); min-height: 100vh; } +.contacts-page { + background: linear-gradient(180deg, #F9F7F0 0%, #F5D5C8 100%); + min-height: 100vh; +} + .taplink { max-width: 480px; margin: 0 auto; padding: 40px 20px; text-align: center; } -.taplink-logo { margin-bottom: 32px; } -.logo-bird-big { font-size: 64px; display: block; margin-bottom: 12px; } + +.taplink-logo { + margin-bottom: 32px; +} + +.logo-bird-big { + font-size: 64px; + display: block; + margin-bottom: 12px; +} + .taplink-title { font-size: 36px; font-weight: 800; letter-spacing: 2px; margin-bottom: 8px; } -.taplink-subtitle { color: var(--color-text-muted); font-size: 15px; } -.taplink-links { display: flex; flex-direction: column; gap: 12px; margin-bottom: 32px; } + +.taplink-subtitle { + color: var(--color-text-muted); + font-size: 15px; +} + +.taplink-links { + display: flex; + flex-direction: column; + gap: 12px; + margin-bottom: 32px; +} + .taplink-btn { display: flex; align-items: center; @@ -535,20 +1029,67 @@ body.video-modal-open { overflow: hidden; } transition: 0.25s; text-align: left; } -.taplink-btn:hover { transform: translateY(-3px); box-shadow: var(--shadow-hover); } -.taplink-icon { font-size: 28px; flex-shrink: 0; } -.taplink-text { display: flex; flex-direction: column; } -.taplink-text strong { font-size: 16px; font-weight: 700; } -.taplink-text span { font-size: 13px; color: var(--color-text-muted); } -.taplink-telegram:hover { background: #229ED9; color: #fff; } -.taplink-telegram:hover .taplink-text span { color: rgba(255,255,255,0.8); } -.taplink-whatsapp:hover { background: #25D366; color: #fff; } -.taplink-whatsapp:hover .taplink-text span { color: rgba(255,255,255,0.8); } -.taplink-instagram:hover { background: linear-gradient(45deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888); color: #fff; } -.taplink-instagram:hover .taplink-text span { color: rgba(255,255,255,0.8); } -.taplink-vk:hover { background: #0077FF; color: #fff; } -.taplink-vk:hover .taplink-text span { color: rgba(255,255,255,0.8); } +.taplink-btn:hover { + transform: translateY(-3px); + box-shadow: var(--shadow-hover); +} + +.taplink-icon { + font-size: 28px; + flex-shrink: 0; +} + +.taplink-text { + display: flex; + flex-direction: column; +} + +.taplink-text strong { + font-size: 16px; + font-weight: 700; +} + +.taplink-text span { + font-size: 13px; + color: var(--color-text-muted); +} + +.taplink-telegram:hover { + background: #229ED9; + color: #fff; +} + +.taplink-telegram:hover .taplink-text span { + color: rgba(255, 255, 255, 0.8); +} + +.taplink-whatsapp:hover { + background: #25D366; + color: #fff; +} + +.taplink-whatsapp:hover .taplink-text span { + color: rgba(255, 255, 255, 0.8); +} + +.taplink-instagram:hover { + background: linear-gradient(45deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888); + color: #fff; +} + +.taplink-instagram:hover .taplink-text span { + color: rgba(255, 255, 255, 0.8); +} + +.taplink-vk:hover { + background: #0077FF; + color: #fff; +} + +.taplink-vk:hover .taplink-text span { + color: rgba(255, 255, 255, 0.8); +} .taplink-info { background: #fff; @@ -557,8 +1098,17 @@ body.video-modal-open { overflow: hidden; } margin-bottom: 24px; text-align: left; } -.taplink-info h3 { font-size: 18px; margin-bottom: 12px; text-align: center; } -.taplink-info li { padding: 6px 0; font-size: 14px; } + +.taplink-info h3 { + font-size: 18px; + margin-bottom: 12px; + text-align: center; +} + +.taplink-info li { + padding: 6px 0; + font-size: 14px; +} .taplink-legal { display: flex; @@ -567,29 +1117,111 @@ body.video-modal-open { overflow: hidden; } margin-bottom: 16px; font-size: 13px; } -.taplink-legal a { color: var(--color-text-muted); } -.taplink-legal a:hover { color: var(--color-accent); } -.taplink-footer { font-size: 12px; color: var(--color-text-muted); } + +.taplink-legal a { + color: var(--color-text-muted); +} + +.taplink-legal a:hover { + color: var(--color-accent); +} + +.taplink-footer { + font-size: 12px; + color: var(--color-text-muted); +} /* ===== LEGAL PAGE ===== */ -.legal-page { padding: 60px 0 80px; } -.legal-page .container { max-width: 800px; } -.legal-section { margin-bottom: 48px; } -.legal-section h2 { font-size: 28px; margin-bottom: 8px; } -.legal-section h3 { font-size: 18px; margin: 24px 0 10px; color: var(--color-accent); } -.legal-section p, .legal-section li { font-size: 15px; margin-bottom: 10px; } -.legal-section ul { padding-left: 20px; list-style: disc; } -.legal-date { color: var(--color-text-muted); font-size: 14px; font-style: italic; margin-bottom: 20px; } +.legal-page { + padding: 60px 0 80px; +} + +.legal-page .container { + max-width: 800px; +} + +.legal-section { + margin-bottom: 48px; +} + +.legal-section h2 { + font-size: 28px; + margin-bottom: 8px; +} + +.legal-section h3 { + font-size: 18px; + margin: 24px 0 10px; + color: var(--color-accent); +} + +.legal-section p, +.legal-section li { + font-size: 15px; + margin-bottom: 10px; +} + +.legal-section ul { + padding-left: 20px; + list-style: disc; +} + +.legal-date { + color: var(--color-text-muted); + font-size: 14px; + font-style: italic; + margin-bottom: 20px; +} /* ===== FOOTER ===== */ -.footer { background: #1A1A1A; color: #ccc; padding: 60px 0 0; margin-top: 40px; } -.footer-inner { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 32px; padding-bottom: 40px; } -.footer .logo { color: #fff; margin-bottom: 12px; } -.footer-about { font-size: 14px; color: #999; } -.footer h2 { color: #fff; font-size: 15px; margin-bottom: 16px; } -.footer-col a { display: block; padding: 4px 0; font-size: 14px; color: #999; } -.footer-col a:hover { color: var(--color-accent); } -.footer-bottom { border-top: 1px solid #333; padding: 20px 0; text-align: center; font-size: 13px; color: #666; } +.footer { + background: #1A1A1A; + color: #ccc; + padding: 60px 0 0; + margin-top: 40px; +} + +.footer-inner { + display: grid; + grid-template-columns: 2fr 1fr 1fr 1fr; + gap: 32px; + padding-bottom: 40px; +} + +.footer .logo { + color: #fff; + margin-bottom: 12px; +} + +.footer-about { + font-size: 14px; + color: #999; +} + +.footer h2 { + color: #fff; + font-size: 15px; + margin-bottom: 16px; +} + +.footer-col a { + display: block; + padding: 4px 0; + font-size: 14px; + color: #999; +} + +.footer-col a:hover { + color: var(--color-accent); +} + +.footer-bottom { + border-top: 1px solid #333; + padding: 20px 0; + text-align: center; + font-size: 13px; + color: #666; +} /* ===== COOKIE BANNER ===== */ .cookie-banner { @@ -601,7 +1233,7 @@ body.video-modal-open { overflow: hidden; } background: #fff; padding: 16px 20px; border-radius: 12px; - box-shadow: 0 8px 32px rgba(0,0,0,0.15); + box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15); display: flex; align-items: center; gap: 16px; @@ -609,10 +1241,25 @@ body.video-modal-open { overflow: hidden; } transform: translateY(150%); transition: transform 0.4s ease; } -.cookie-banner.show { transform: translateY(0); } -.cookie-banner.hidden { display: none; } -.cookie-text { font-size: 13px; flex-grow: 1; } -.cookie-text a { color: var(--color-accent); text-decoration: underline; } + +.cookie-banner.show { + transform: translateY(0); +} + +.cookie-banner.hidden { + display: none; +} + +.cookie-text { + font-size: 13px; + flex-grow: 1; +} + +.cookie-text a { + color: var(--color-accent); + text-decoration: underline; +} + .cookie-btn { background: var(--color-accent); color: #fff; @@ -622,90 +1269,333 @@ body.video-modal-open { overflow: hidden; } font-weight: 600; flex-shrink: 0; } -.cookie-btn:hover { background: #B30000; } + +.cookie-btn:hover { + background: #B30000; +} /* ===== RESPONSIVE ===== */ @media (max-width: 900px) { - .footer-inner { grid-template-columns: 1fr 1fr; } + .footer-inner { + grid-template-columns: 1fr 1fr; + } } @media (max-width: 768px) { - .nav { + .nav { display: none; position: absolute; top: 100%; - left: 0; right: 0; + left: 0; + right: 0; background: var(--color-bg); flex-direction: column; padding: 20px; gap: 16px; border-bottom: 1px solid var(--color-border); } - .nav.open { display: flex; } - .burger { display: flex; } - .burger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); } - .burger.open span:nth-child(2) { opacity: 0; } - .burger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); } - .header .btn { display: none; } - .hero { padding: 40px 0; } - .section { padding: 50px 0; } - .hero-stats { gap: 24px; } - .stat-num { font-size: 22px; } - .footer-inner { grid-template-columns: 1fr; gap: 24px; } - .cta-box { padding: 40px 24px; } - .cookie-banner { flex-direction: column; align-items: stretch; gap: 12px; } + + .nav.open { + display: flex; + } + + .burger { + display: flex; + } + + .burger.open span:nth-child(1) { + transform: translateY(7px) rotate(45deg); + } + + .burger.open span:nth-child(2) { + opacity: 0; + } + + .burger.open span:nth-child(3) { + transform: translateY(-7px) rotate(-45deg); + } + + .header .btn { + display: none; + } + + .hero { + padding: 40px 0; + } + + .section { + padding: 50px 0; + } + + .hero-stats { + gap: 24px; + } + + .stat-num { + font-size: 22px; + } + + .footer-inner { + grid-template-columns: 1fr; + gap: 24px; + } + + .cta-box { + padding: 40px 24px; + } + + .cookie-banner { + flex-direction: column; + align-items: stretch; + gap: 12px; + } } @media (max-width: 480px) { - .hero-actions { flex-direction: column; } - .hero-actions .btn { width: 100%; } - .btn-lg { padding: 16px 24px; font-size: 15px; } - .taplink-title { font-size: 28px; } - .taplink-btn { padding: 14px 18px; } + .hero-actions { + flex-direction: column; + } + + .hero-actions .btn { + width: 100%; + } + + .btn-lg { + padding: 16px 24px; + font-size: 15px; + } + + .taplink-title { + font-size: 28px; + } + + .taplink-btn { + padding: 14px 18px; + } } + /* Accessibility and compact-screen refinements */ -[hidden] { display: none !important; } -:focus-visible { outline: 3px solid #8d0000; outline-offset: 4px; } -[id] { scroll-margin-top: 100px; } -.skip-link { position: fixed; top: 8px; left: 8px; padding: 12px 20px; background: #fff; z-index: 2000; transform: translateY(-160%); } -.skip-link:focus { transform: none; } -.breadcrumbs { padding-top: 24px; padding-bottom: 8px; font-size: 13px; color: #555; text-align: left; } -.breadcrumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; } -.breadcrumbs li + li::before { content: '/'; margin-right: 8px; } -.breadcrumbs a, .service-summary a, .detail-link a, .faq a, .contact-navigation a { text-decoration: underline; text-underline-offset: 3px; } -.service-links { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; padding-top: 24px; padding-bottom: 24px; } -.service-links a { padding: 12px 18px; background: #fff; border: 1px solid #b8a99f; border-radius: 12px; } -.service-links a:hover { border-color: var(--color-accent); } -.service-summary { max-width: 800px; margin: auto; padding: 24px; background: #fff; border-radius: 16px; } -.service-summary h2 { font-size: 24px; margin-bottom: 12px; } -.service-summary p { margin-bottom: 20px; } -.detail-link { margin-bottom: 20px; } -.faq { max-width: 850px; } -.faq details { padding: 20px; background: #fff; border-bottom: 1px solid #ddd; } -.faq summary { font-weight: 700; cursor: pointer; min-height: 32px; } -.faq p { margin-top: 12px; } -.cookie-actions { display: flex; flex-wrap: wrap; gap: 10px; } -.cookie-btn { min-height: 44px; } -.cookie-decline { background: #eee; color: #222; } -.cookie-decline:hover { background: #ddd; } -.privacy-settings { padding-top: 24px; padding-bottom: 24px; } -.privacy-settings button { text-decoration: underline; font-size: 13px; min-height: 44px; color: #555; } -.taplink-info h2 { font-size: 18px; margin-bottom: 12px; text-align: center; } -.taplink-legal { flex-wrap: wrap; } -.taplink-whatsapp:hover { background: #137c3a; } -.taplink-telegram:hover { background: #136c99; } -.extra-item { gap: 16px; flex-wrap: wrap; } -.footer-bottom { color: #aaa; } -.contact-navigation { line-height: 2; } +[hidden] { + display: none !important; +} + +:focus-visible { + outline: 3px solid #8d0000; + outline-offset: 4px; +} + +[id] { + scroll-margin-top: 100px; +} + +.skip-link { + position: fixed; + top: 8px; + left: 8px; + padding: 12px 20px; + background: #fff; + z-index: 2000; + transform: translateY(-160%); +} + +.skip-link:focus { + transform: none; +} + +.breadcrumbs { + padding-top: 24px; + padding-bottom: 8px; + font-size: 13px; + color: #555; + text-align: left; +} + +.breadcrumbs ol { + list-style: none; + display: flex; + flex-wrap: wrap; + gap: 8px; +} + +.breadcrumbs li+li::before { + content: '/'; + margin-right: 8px; +} + +.breadcrumbs a, +.service-summary a, +.detail-link a, +.faq a, +.contact-navigation a { + text-decoration: underline; + text-underline-offset: 3px; +} + +.service-links { + display: flex; + flex-wrap: wrap; + gap: 12px; + justify-content: center; + padding-top: 24px; + padding-bottom: 24px; +} + +.service-links a { + padding: 12px 18px; + background: #fff; + border: 1px solid #b8a99f; + border-radius: 12px; +} + +.service-links a:hover { + border-color: var(--color-accent); +} + +.service-summary { + max-width: 800px; + margin: auto; + padding: 24px; + background: #fff; + border-radius: 16px; +} + +.service-summary h2 { + font-size: 24px; + margin-bottom: 12px; +} + +.service-summary p { + margin-bottom: 20px; +} + +.detail-link { + margin-bottom: 20px; +} + +.faq { + max-width: 850px; +} + +.faq details { + padding: 20px; + background: #fff; + border-bottom: 1px solid #ddd; +} + +.faq summary { + font-weight: 700; + cursor: pointer; + min-height: 32px; +} + +.faq p { + margin-top: 12px; +} + +.cookie-actions { + display: flex; + flex-wrap: wrap; + gap: 10px; +} + +.cookie-btn { + min-height: 44px; +} + +.cookie-decline { + background: #eee; + color: #222; +} + +.cookie-decline:hover { + background: #ddd; +} + +.privacy-settings { + padding-top: 24px; + padding-bottom: 24px; +} + +.privacy-settings button { + text-decoration: underline; + font-size: 13px; + min-height: 44px; + color: #555; +} + +.taplink-info h2 { + font-size: 18px; + margin-bottom: 12px; + text-align: center; +} + +.taplink-legal { + flex-wrap: wrap; +} + +.taplink-whatsapp:hover { + background: #137c3a; +} + +.taplink-telegram:hover { + background: #136c99; +} + +.extra-item { + gap: 16px; + flex-wrap: wrap; +} + +.footer-bottom { + color: #aaa; +} + +.contact-navigation { + line-height: 2; +} + @media (max-width: 768px) { - .header-inner { flex-wrap: wrap; } - html:not(.js-menu) .nav { display: flex; position: static; width: 100%; order: 3; } - html:not(.js-menu) .burger { display: none; } - .nav-link { padding: 8px 0; } - .page-hero { padding-top: 36px; } - .cookie-banner { max-height: 60vh; overflow: auto; bottom: 12px; left: 12px; right: 12px; } + .header-inner { + flex-wrap: wrap; + } + + html:not(.js-menu) .nav { + display: flex; + position: static; + width: 100%; + order: 3; + } + + html:not(.js-menu) .burger { + display: none; + } + + .nav-link { + padding: 8px 0; + } + + .page-hero { + padding-top: 36px; + } + + .cookie-banner { + max-height: 60vh; + overflow: auto; + bottom: 12px; + left: 12px; + right: 12px; + } } + @media (prefers-reduced-motion: reduce) { - html { scroll-behavior: auto; } - *, *::before, *::after { animation: none !important; transition: none !important; } -} + html { + scroll-behavior: auto; + } + + *, + *::before, + *::after { + animation: none !important; + transition: none !important; + } +} \ No newline at end of file diff --git a/html/index.html b/html/index.html index e9f486e..8195c0c 100644 --- a/html/index.html +++ b/html/index.html @@ -290,10 +290,11 @@ Волшебная снежинка · 1:18 -
Новогоднее поздравление +
🌲 Новогоднее поздравление

Новогодний экспресс

-

Готовая новогодняя история с персонализацией для ребёнка. Посмотрите пример - мультпоздравления.

+

Короткий мультфильм-поздравление для ребенка с его персонажем. Создает ощущение + уникальности и волшебства в реальной жизни: именно за ним следит Дедушка Мороз, именно + его выбрала волшебная снежинка, в его квартире спрятан настоящий подарок.

-
Базовый пакет +
🐇 Новогодняя сказка

Новогодняя сказка

-

Свежий пример ролика базового пакета «Новогодняя сказка».

+

Сюрприз для двух маленьких деток, маме которых пришлось уехать от них. Мультфильм + помогает донести детям, что мама их любит и добавляет волшебство в новогодний подарок- + зайчиков.