:root{--pink:#df176b;--ink:#58112e;--muted:#8e4c66;--paper:#fff5f8;--line:#ebbacd}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:40px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.6}a{color:inherit;text-underline-offset:6px}button{font:inherit;cursor:pointer}a:focus-visible,button:focus-visible{outline:3px solid #7c2483;outline-offset:6px}button:disabled{opacity:.4;cursor:default}[hidden]{display:none!important}.skip-link{position:fixed;top:-100px;left:20px;background:white;padding:12px;z-index:10}.skip-link:focus{top:10px}.topbar{max-width:1360px;margin:auto;padding:25px 5%;display:flex;align-items:center;gap:35px}.wordmark{font-size:20px;font-weight:700;text-decoration:none;letter-spacing:-.7px;color:var(--pink)}.topbar-note{display:flex;gap:30px;margin-left:auto;font-size:13px}.topbar-note a,.topbar-link{text-decoration:none}.topbar-link{font-size:13px}.topbar a:hover{color:var(--pink);text-decoration:underline}.hero{text-align:center;padding:90px 25px 100px;background:#fbd9e7;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.hero-greeting{font-size:17px;margin:0 0 30px}.hero h1{font-size:clamp(62px,8.5vw,122px);line-height:1.01;font-weight:700;letter-spacing:-.065em;color:var(--pink);margin:0}.hero-intro{max-width:395px;margin:35px auto 28px;line-height:1.8;font-size:15px}.story-link{font-size:14px;font-weight:600;display:inline-block}.hero-byline{font-size:13px;margin:45px 0 0;color:var(--muted)}.chapter{max-width:1180px;margin:auto;padding:90px 6% 0}.section-heading{margin-bottom:45px}.heading-row{display:flex;justify-content:space-between;align-items:end;gap:30px}h2{font-size:clamp(36px,4.7vw,60px);font-weight:600;line-height:1.1;letter-spacing:-.05em;margin:0}h3{font-weight:600}.section-aside{font-size:13px;line-height:1.7;color:var(--muted);max-width:260px;margin:0}.memory-list{display:flex;flex-direction:column;gap:70px}.memory-row{display:grid;grid-template-columns:1.3fr 1fr;gap:55px;align-items:center}.memory-row:nth-child(even){grid-template-columns:1fr 1.3fr}.memory-row:nth-child(even) .memory-photo{order:2}.memory-row:nth-child(even) .memory-copy{order:1}.memory-photo{aspect-ratio:1.3;background:#f2c8d9;display:flex;align-items:end;justify-content:center;background-size:cover;background-position:center;position:relative}.photo-blue,.photo-lilac{background-color:#e5d3e9}.photo-olive,.photo-yellow{background-color:#f3ddd5}.photo-coral{background-color:#efb4cb}.photo-caption{display:block;width:100%;background:var(--paper);padding:15px 0 0;font-size:12px;color:var(--muted);text-align:left}.memory-date{font-size:13px;color:var(--muted);margin:0 0 12px}.memory-copy h3{font-size:29px;letter-spacing:-.04em;line-height:1.2;margin:0 0 20px}.memory-text{font-size:15px;line-height:1.8;color:var(--muted);margin:0}.places{padding-top:110px}.map-layout{display:grid;grid-template-columns:1.8fr 1fr;gap:35px;align-items:center}.map-art{height:430px;position:relative;overflow:hidden;background:#fae2eb}.map-lines{position:absolute;inset:0;height:100%;width:100%}.map-lines path{fill:none}.map-river{stroke:#dbbfdf;stroke-width:35}.map-road{stroke:#fff8fb;stroke-width:18}.map-road.thin{stroke-width:10}.map-route{stroke:#d76a96;stroke-width:1.5;stroke-dasharray:4 6}.map-point{position:absolute;transform:translate(-50%,-50%);border:0;background:transparent;padding:12px;min-width:44px;min-height:44px;z-index:1;display:flex;align-items:center;justify-content:center}.map-point:before{content:'';width:13px;height:13px;background:var(--pink);border:3px solid white;border-radius:50%;box-shadow:0 0 0 1px #e6aac3}.map-point span{position:absolute;top:38px;white-space:nowrap;font-size:11px;font-weight:500;padding:0 5px;background:#fae2eb}.map-point[aria-pressed=true]:before{background:var(--ink);box-shadow:0 0 0 5px #eaa7c0}.map-point[aria-pressed=true] span{text-decoration:underline;text-underline-offset:4px}.place-card h3{font-size:28px;line-height:1.2;letter-spacing:-.04em;margin:0 0 20px}.place-card p{font-size:14px;line-height:1.8;color:var(--muted);margin:0}.game{padding-top:110px;padding-bottom:100px}.game-shell{display:grid;grid-template-columns:1fr 2fr;gap:45px;padding-top:30px;border-top:1px solid var(--line)}.word-path{display:flex;flex-direction:column;align-items:start;gap:14px}.word-stop{border:0;background:none;padding:4px 0;color:var(--muted);font-size:15px;text-align:left}.word-stop.active{color:var(--pink);text-decoration:underline;text-underline-offset:5px}.word-stop:hover{color:var(--pink)}.game-card-top{display:flex;align-items:center;justify-content:space-between;gap:30px;font-size:12px;color:var(--muted)}.game-progress{height:2px;width:100px;background:#f0d0df}.game-progress>span{display:block;height:100%;background:var(--pink);transition:width .2s}.game-card h3{font-size:46px;font-weight:600;color:var(--pink);letter-spacing:-.05em;margin:35px 0 20px;line-height:1.1}.game-description{max-width:470px;font-size:15px;line-height:1.8;color:var(--muted);min-height:85px}.game-nav{margin-top:30px}.button{border:0;border-bottom:1px solid var(--pink);border-radius:0;background:none;color:var(--ink);padding:9px 0;min-height:44px;font-size:14px}.button:hover{color:var(--pink)}.letter{max-width:none;padding:85px max(6%,calc((100vw - 1000px)/2)) 25px;background:#fbd9e7}.letter .section-heading{display:none}.letter-wrap{max-width:640px;margin:auto}.letter-paper h2{font-size:46px;margin:0 0 40px}.letter-body p{font-size:16px;line-height:1.9;margin:0 0 22px}.letter-date:empty{display:none}.letter-signoff{font-size:18px;margin:35px 0 50px}.gift{border-top:1px solid #dfa0ba;padding-top:28px}.gift-label{font-size:13px;color:var(--muted);margin:0 0 15px}.gift h3{font-size:27px;letter-spacing:-.035em;font-weight:500;line-height:1.3;margin:0 0 18px}.gift-text{font-size:14px;line-height:1.8;color:var(--muted)}.endnote{margin:70px auto 0;max-width:640px;border-top:1px solid #dfa0ba;padding:20px 0 0;font-size:12px}
@media(max-width:700px){.topbar{padding:20px 6%;justify-content:space-between;gap:15px}.wordmark{font-size:18px}.topbar-note{display:none}.hero{padding:65px 6% 60px}.hero-greeting{font-size:14px;margin-bottom:25px}.hero h1{font-size:clamp(52px,12vw,84px)}.hero-intro{font-size:14px;margin-top:28px;max-width:330px}.story-link{font-size:13px}.hero-byline{margin-top:30px}.chapter{padding:65px 6% 0}.heading-row{display:block}h2{font-size:39px}.section-aside{margin-top:20px;font-size:13px}.section-aside br{display:none}.section-heading{margin-bottom:30px}.memory-list{gap:45px}.memory-row,.memory-row:nth-child(even){display:flex;flex-direction:column;gap:20px;align-items:stretch}.memory-row:nth-child(even) .memory-photo,.memory-row:nth-child(even) .memory-copy{order:initial}.memory-photo{aspect-ratio:1.15}.memory-copy h3{font-size:26px;margin-bottom:14px}.memory-text{font-size:14px}.photo-caption{font-size:11px}.memory-date{font-size:12px}.map-layout{display:block}.map-art{height:335px}.map-point span{font-size:10px}.place-card{margin-top:25px}.place-card h3{font-size:25px;margin-bottom:14px}.game{padding-bottom:65px}.game-shell{display:flex;flex-direction:column-reverse;gap:30px}.game-card h3{font-size:40px;margin-top:30px}.game-description{font-size:14px;min-height:100px}.game-nav{margin-top:15px}.word-path{flex-direction:row;flex-wrap:wrap;gap:6px 20px;border-top:1px solid var(--line);padding-top:20px}.word-stop{font-size:13px}.letter{padding:60px 7% 25px}.letter-paper h2{font-size:38px;margin-bottom:30px}.letter-body p{font-size:15px}.letter-signoff{font-size:17px}.gift h3{font-size:25px}.endnote{margin-top:45px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
/* Оформление по предоставленным Figma-референсам. */
:root{--pink:#e91d87;--ink:#561339;--paper:#fff2f8;--line:#f0b5d3}
.topbar{max-width:none;padding:22px 6%;background:#ff5b9f;color:#fff;position:relative;z-index:2;border-bottom:1px solid #ffb8db}.wordmark{color:white;font-size:23px}.topbar a:hover{color:#fff;text-decoration:underline}.topbar-note,.topbar-link{font-size:14px}.birthday-hero{position:relative;isolation:isolate;overflow:hidden;text-align:left;min-height:780px;padding:38px 7% 50px;border:0;background:#ff5b9f;color:#fff}.birthday-scene{position:absolute;z-index:-3;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 40%;transform:scaleX(-1)}.birthday-hero:before{content:'';position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,#ff5b9f 0%,#ff5b9ff5 25%,#ff5b9fd9 40%,#ff5b9f20 66%,transparent 100%)}.birthday-content{max-width:680px;position:relative}.birthday-crown{display:block;object-fit:contain;width:110px;height:110px;margin:-10px 0 -25px 10px;transform:rotate(-9deg)}.hero h1{font-family:'Arial Rounded MT Bold','Trebuchet MS',Arial,sans-serif;color:#fff;font-size:inherit;line-height:1.1;letter-spacing:0;margin:0}.melted-name{display:block;position:relative;isolation:isolate;width:fit-content;font-family:'Arial Rounded MT Bold','Trebuchet MS',Arial,sans-serif;font-size:clamp(110px,11.8vw,175px);font-weight:900;letter-spacing:-.075em;line-height:1.15;color:#f4bd64;background:linear-gradient(166deg,#fff4ae 0%,#fff9d8 8%,#9c471d 16%,#ffe086 24%,#ff1bac 30%,#ff7bcb 35%,#b10a64 40%,#ffffdc 47%,#f6cb63 52%,#6c2b13 59%,#f9dc8b 65%,#fff1b7 71%,#f205a8 76%,#ff81d0 81%,#c3591e 90%,#fff9bc 98%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;-webkit-text-stroke:1px #8a3c29;filter:drop-shadow(1px 1px 0 #ffe5a0) drop-shadow(2px 4px 0 #ad4a33) drop-shadow(2px 5px 1px #7a2548) drop-shadow(0 12px 8px #a30a5c50);padding-right:.09em}.melted-name:before{content:attr(data-lettering);position:absolute;inset:0;z-index:-1;color:#9d2e3c;-webkit-text-fill-color:#9d2e3c;-webkit-text-stroke:3px #ffdf97;transform:translate(1px,5px)}.birthday-wish{display:block;font-size:clamp(29px,3.5vw,49px);font-weight:700;letter-spacing:-.055em;margin:0 0 16px;color:#fff9df;text-shadow:0 2px 0 #d13278}.birthday-age{display:flex;align-items:center;gap:0;height:175px;margin:15px 0 0;width:fit-content;filter:drop-shadow(2px 8px 3px #a31f6735)}.birthday-age img{height:170px;width:auto;object-fit:contain}.birthday-age>span{font-size:120px;font-weight:900;color:#ffda84;-webkit-text-stroke:2px #ab4b37;text-shadow:2px 3px 0 #ff0fa5;margin-left:9px}.birthday-hero .hero-intro{margin:23px 0 25px;max-width:360px;font-size:14px;line-height:1.75;text-shadow:0 1px 4px #ae155b44}.birthday-hero .story-link{color:#59103b;background:#fff5db;min-height:48px;padding:12px 22px;text-decoration:none;border-bottom:3px solid #e9ba66;border-radius:3px;font-size:13px}.birthday-hero .story-link:hover{background:white}.birthday-hero .hero-byline{color:#fff;margin:23px 0 0;font-size:12px}.chapter-icon{display:block;object-fit:contain;width:80px;height:80px;margin-bottom:15px}.icon-tv{width:82px;height:82px}.icon-headset{width:105px;height:95px;margin-left:-12px;margin-bottom:0}.memory-photo{background-color:#ffd0e7}.photo-blue,.photo-lilac{background-color:#e6d4ec}.letter{background:#ffcade}.game-card h3{color:#dc167d}.map-art{background-color:#ffe0ef}.map-point span{background:#ffe0ef}
@media(min-width:1600px){.birthday-hero{padding-left:max(7%,calc((100vw - 1380px)/2));min-height:900px}.birthday-scene{object-position:center 38%}}
@media(max-width:1000px) and (min-width:701px){.birthday-hero{min-height:760px;padding-left:6%}.birthday-hero:before{background:linear-gradient(90deg,#ff5b9f 0%,#ff5b9ff2 28%,#ff5b9fa0 56%,#ff5b9f10 100%)}.melted-name{font-size:125px}.birthday-wish{font-size:35px}.birthday-scene{object-position:58% center}.birthday-age{height:155px}.birthday-age img{height:150px}}
@media(max-width:700px){.topbar{padding:19px 6%}.wordmark{font-size:19px}.topbar-link{font-size:13px}.birthday-hero{padding:28px 7% 340px;min-height:1000px;text-align:left}.birthday-hero:before{background:linear-gradient(180deg,#ff5b9f 0%,#ff5b9f 42%,#ff5b9fe0 58%,#ff5b9f20 78%,transparent 100%)}.birthday-scene{object-position:67% bottom;height:530px;top:auto;bottom:0}.birthday-crown{width:90px;height:90px;margin:-12px 0 -20px 0}.melted-name{font-size:clamp(98px,25vw,150px)}.birthday-wish{font-size:clamp(25px,6.5vw,40px);margin-top:4px;white-space:nowrap}.birthday-age{height:130px;margin-top:15px}.birthday-age img{height:127px}.birthday-age>span{font-size:95px}.birthday-hero .hero-intro{font-size:13px;max-width:320px;margin:22px 0}.birthday-hero .hero-byline{margin-top:20px}.chapter-icon{width:70px;height:70px}.icon-headset{width:90px;height:85px}.chapter h2{font-size:37px}}
.melted-name:before{display:none}.birthday-crown{mix-blend-mode:lighten;filter:contrast(1.1)}.icon-tv{width:125px;height:135px;margin-left:-17px;margin-bottom:-5px}
.birthday-wish{width:fit-content;background:linear-gradient(166deg,#fff9cc 4%,#b15b27 17%,#ffe69b 28%,#ff39b9 39%,#fff3b7 49%,#e9a846 61%,#843319 69%,#ff65c5 81%,#fff1b0 96%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;-webkit-text-stroke:.5px #9b4a34;text-shadow:none;filter:drop-shadow(1px 2px 0 #962b51) drop-shadow(0 3px 2px #9b135140)}
.birthday-wish{background-image:linear-gradient(176deg,#fff7b3 5%,#ff72c9 27%,#ffe8a1 45%,#fff8cf 54%,#eeb359 66%,#fff3bd 78%,#ff55c3 95%);-webkit-text-stroke:.25px #a75445;filter:drop-shadow(1px 2px 0 #a02b58)}
@media(min-width:701px) and (max-width:1599px){.birthday-hero{min-height:700px;padding-top:24px;padding-bottom:32px}.birthday-crown{width:85px;height:85px;margin:-5px 0 -18px 10px}.melted-name{font-size:clamp(110px,10vw,155px)}.birthday-age{height:140px;margin-top:10px}.birthday-age img{height:138px}.birthday-age>span{font-size:100px}.birthday-hero .hero-intro{max-width:400px;margin:19px 0 22px}}
/* Входное поздравление с шариками */
body.entry-pending{overflow:hidden;background:#fff0f7}.entry-pending>header,.entry-pending>main,.entry-pending>.skip-link{visibility:hidden}.balloon-gate{position:fixed;inset:0;width:100%;max-width:none;height:100%;height:100dvh;max-height:none;margin:0;padding:0;border:0;background:#fff0f7;color:#671638;overflow:hidden;overscroll-behavior:contain;isolation:isolate}.balloon-gate::backdrop{background:#fff0f7}.balloon-heading{position:absolute;top:max(25px,env(safe-area-inset-top));left:6%;right:6%;text-align:center;z-index:2;pointer-events:none}.balloon-greeting{font-size:14px;color:#a74a74;margin:0 0 12px}.balloon-heading h2{font-size:clamp(32px,4.6vw,60px);color:#d51b77;margin:0 0 15px;letter-spacing:-.045em}.balloon-heading #balloon-instruction{font-size:14px;margin:0 auto;max-width:400px;line-height:1.6}.balloon-status{font-size:15px;font-weight:600;color:#a10f55;margin:16px 0 0}.balloon-field{position:absolute;inset:225px 4% 60px}.floating-balloon{--size:clamp(58px,7vw,92px);position:absolute;left:calc(10% + var(--column)*20%);top:calc(13% + var(--row)*30%);width:var(--size);height:calc(var(--size)*1.65);padding:0;border:0;background:none;transform:translate(-50%,-50%);animation:balloon-float var(--duration) ease-in-out var(--delay) infinite;touch-action:manipulation;user-select:none;outline-offset:7px;border-radius:50%;-webkit-tap-highlight-color:transparent}.balloon-body{position:relative;display:block;width:100%;height:calc(var(--size)*1.2);border-radius:49% 49% 46% 46% / 45% 45% 55% 55%;background:radial-gradient(ellipse at 30% 23%,#ffb7e0 0%,#ff72bc 21%,#f32393 56%,#c51269 90%);box-shadow:inset -5px -7px 12px #a7114f35, inset 2px 1px 4px #ffffff80,0 12px 18px #b7547c18;transition:filter .15s,scale .15s}.balloon-body:after{content:'';position:absolute;bottom:-7px;left:calc(50% - 6px);border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:9px solid #d11b77}.balloon-shine{position:absolute;width:13%;height:27%;top:14%;left:22%;background:#fff9;filter:blur(1px);border-radius:50%;transform:rotate(23deg)}.balloon-string{position:absolute;top:calc(var(--size)*1.2 + 7px);left:50%;width:12px;height:calc(var(--size)*.45);border-left:1px solid #c79aa9;border-radius:50%;transform:rotate(-9deg);pointer-events:none}.balloon-gold .balloon-body{background:radial-gradient(ellipse at 30% 23%,#fffbe0,#f6da8a 24%,#dfb458 55%,#b88b37 90%);box-shadow:inset -5px -7px 12px #79521322,inset 2px 1px 4px #ffffff80,0 12px 18px #b7547c12}.balloon-gold .balloon-body:after{border-bottom-color:#c49b4e}.balloon-blue .balloon-body{background:radial-gradient(ellipse at 30% 23%,#f1fcff,#b6e7f7 24%,#7ac6e5 55%,#489cbd 90%);box-shadow:inset -5px -7px 12px #32779522,inset 2px 1px 4px #ffffff80,0 12px 18px #b7547c12}.balloon-blue .balloon-body:after{border-bottom-color:#6eb3d0}.floating-balloon:hover .balloon-body{filter:brightness(1.06)}.floating-balloon:active .balloon-body{scale:.92}.balloon-popped{pointer-events:none;animation:none;opacity:0;transition:opacity .18s}.balloon-popped .balloon-body{scale:1.3;transition:scale .18s}.balloon-popped:disabled{opacity:0}.balloon-wrong .balloon-body{animation:balloon-nudge .35s ease}.balloon-hint{position:absolute;bottom:max(16px,env(safe-area-inset-bottom));left:6%;right:6%;text-align:center;font-size:12px;color:#a04b71;margin:0;min-height:20px}.gate-complete{opacity:0;transition:opacity .45s .2s}.gate-complete .floating-balloon{pointer-events:none}@keyframes balloon-float{0%,100%{translate:-9px 10px;rotate:-5deg}50%{translate:12px -20px;rotate:6deg}}@keyframes balloon-nudge{25%{translate:-5px 0}75%{translate:5px 0}}@media(max-width:600px){.balloon-heading{top:max(24px,env(safe-area-inset-top))}.balloon-greeting{font-size:12px;margin-bottom:11px}.balloon-heading h2{font-size:32px;margin-bottom:13px}.balloon-heading #balloon-instruction{font-size:12px;max-width:290px}.balloon-status{font-size:14px;margin-top:12px}.balloon-field{inset:205px 8% 50px}.floating-balloon{--size:clamp(43px,12.5vw,65px);left:calc(12% + var(--mobile-column)*38%);top:calc(8% + var(--mobile-row)*19%)}.balloon-hint{font-size:10px;bottom:max(12px,env(safe-area-inset-bottom))}}@media(max-height:620px) and (min-width:601px){.balloon-heading{top:15px}.balloon-greeting{margin-bottom:5px;font-size:11px}.balloon-heading h2{font-size:30px;margin-bottom:5px}.balloon-heading #balloon-instruction{font-size:12px}.balloon-status{margin-top:7px;font-size:12px}.balloon-field{top:160px}.floating-balloon{--size:48px}}@media(prefers-reduced-motion:reduce){.floating-balloon,.balloon-wrong .balloon-body{animation:none}.gate-complete,.balloon-popped,.balloon-body{transition:none}}
#balloon-title:focus{outline:none}
.free-flight .floating-balloon{animation:none;translate:0 0;will-change:left,top;touch-action:manipulation}.free-flight .floating-balloon:focus-visible{rotate:0deg!important}
/* Праздничный фон входной игры */
.balloon-gate{background:#ef78b2;background-image:radial-gradient(ellipse at 16% 28%,#ffd8ee 0%,#ffc4e288 23%,transparent 48%),radial-gradient(ellipse at 86% 68%,#a9dcf3aa 0%,#bce7f355 25%,transparent 52%),radial-gradient(ellipse at 65% 12%,#ffafd7 0%,transparent 49%),linear-gradient(135deg,#f7a5cc 0%,#ef78b2 47%,#e99ed1 100%)}.balloon-gate::backdrop{background:#ef78b2}.balloon-gate:before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:repeating-linear-gradient(118deg,transparent 0 115px,#fff3 116px 117px,transparent 118px 280px);mask-image:linear-gradient(180deg,transparent,#0008 30%,#000 75%,transparent)}.balloon-gate:after{content:'';position:absolute;width:70vw;height:70vw;min-width:500px;min-height:500px;left:-36vw;bottom:-45vw;z-index:-1;pointer-events:none;border:1px solid #fff7;border-radius:50%;box-shadow:0 0 0 55px #fff1,0 0 0 56px #fff4,0 0 0 135px #fff1,0 0 0 136px #fff3,0 0 0 235px #fff1,0 0 0 236px #fff2}.balloon-greeting{color:#76234e}.balloon-heading h2{color:#8e0c4e;text-shadow:0 1px 0 #ffd9ec}.balloon-heading #balloon-instruction{color:#641337}.balloon-status{color:#791044}.balloon-hint{color:#6c244a}.balloon-pink .balloon-body{box-shadow:inset -5px -7px 12px #a7114f35,inset 2px 1px 4px #ffffff80,0 0 0 1px #ffcee6a0,0 12px 22px #9e1b5d25}.balloon-string{border-left-color:#93486a}
/* Персональная фотография Насти на обложке */
.birthday-scene{transform:none;inset:0 0 0 auto;width:66%;height:100%;object-fit:cover;object-position:center 29%}.birthday-hero:before{background:linear-gradient(90deg,#ff5b9f 0%,#ff5b9f 30%,#ff5b9ff5 37%,#ff5b9fb0 46%,#ff5b9f25 59%,transparent 72%)}
@media(min-width:1600px){.birthday-scene{object-position:center 27%}}
@media(max-width:1000px) and (min-width:701px){.birthday-scene{width:70%;object-position:52% 24%}.birthday-hero:before{background:linear-gradient(90deg,#ff5b9f 0%,#ff5b9f 26%,#ff5b9fd9 39%,#ff5b9f60 54%,transparent 76%)}}
@media(max-width:700px){.birthday-scene{inset:auto 0 0;width:100%;height:570px;object-position:center 23%}.birthday-hero:before{background:linear-gradient(180deg,#ff5b9f 0%,#ff5b9f 43%,#ff5b9fec 51%,#ff5b9f80 61%,transparent 76%)}.birthday-hero{padding-bottom:410px;min-height:1070px}}
/* Именной билет после игры с шариками */
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ticket-gate{position:fixed;inset:0;margin:0;padding:0;width:100%;max-width:none;height:100%;height:100dvh;max-height:none;border:0;background:#fff0f7;color:#701438;overflow:auto;overscroll-behavior:contain}.ticket-gate::backdrop{background:#fff0f7}.ticket-header{padding:23px 6%;font-size:23px;font-weight:700;color:white;background:#ff5b9f;border-bottom:1px solid #ffb8db}.ticket-stage{min-height:calc(100% - 84px);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 6% 55px;background:radial-gradient(ellipse at 50% 42%,#ffd4e9 0%,#ffe6f1 45%,#fff0f7 75%)}.princess-ticket{display:block;width:min(900px,100%);aspect-ratio:1605/980;padding:0;border:0;background:none;perspective:1400px;position:relative;color:inherit;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.ticket-rotation{display:block;position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .85s cubic-bezier(.2,.65,.25,1)}.ticket-flipped .ticket-rotation{transform:rotateY(180deg)}.ticket-front,.ticket-back{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;backface-visibility:hidden;-webkit-backface-visibility:hidden}.ticket-front img{display:block;width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}.ticket-back{transform:rotateY(180deg);inset:11.3% 4.5% 12.8%;padding:5% 6%;background:#ffdaec;border:clamp(8px,2vw,22px) solid #ff57b0;box-shadow:0 18px 35px #b82c6a18}.ticket-back:before,.ticket-back:after{content:'';position:absolute;width:28px;height:28px;border-radius:50%;top:calc(50% - 14px);background:#ffe5f1}.ticket-back:before{left:-25px}.ticket-back:after{right:-25px}.ticket-message{display:block;font-size:clamp(24px,4vw,49px);font-weight:600;line-height:1.15;letter-spacing:-.04em;text-align:center;color:#a91c65}.ticket-description{display:block;font-size:clamp(14px,1.8vw,21px);line-height:1.6;text-align:center;margin-top:22px;color:#8a315b}.ticket-prompt{font-size:20px;margin:12px 0 0;color:#b51a6a}.ticket-continue{margin-top:12px;padding:13px 0;border:0;border-bottom:1px solid #ae2467;background:none;color:#8d104e;font-size:17px;min-height:48px}.ticket-continue:hover{color:#db1b80}#ticket-heading:focus{outline:none}.ticket-flipped{cursor:default}@media(max-width:600px){.ticket-header{padding:20px 6%;font-size:20px}.ticket-stage{padding:25px 3% 50px;min-height:calc(100% - 73px)}.princess-ticket{width:100%;aspect-ratio:1.35}.ticket-front{inset:-5% -3%}.ticket-front img{object-fit:contain}.ticket-back{inset:0 4%;padding:20px 12px;border-width:9px}.ticket-message{font-size:clamp(25px,6.5vw,36px)}.ticket-description{font-size:14px;margin-top:20px}.ticket-prompt{font-size:18px;margin-top:28px}.ticket-continue{font-size:16px;margin-top:28px}}@media(prefers-reduced-motion:reduce){.ticket-rotation{transition:none}}
/* Локальные шрифты с кириллицей */
@font-face{font-family:BirthdayScript;src:url('assets/fonts/Lobster-Regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:BirthdayRound;src:url('assets/fonts/Nunito.ttf') format('truetype');font-style:normal;font-weight:200 1000;font-display:swap}
body,button{font-family:BirthdayRound,'Arial Rounded MT Bold',Arial,sans-serif}h1,h2,h3,.wordmark,.ticket-header,.topbar-note,.topbar-link,.story-link,.ticket-prompt,.ticket-continue,.letter-signoff,.balloon-greeting{font-family:BirthdayScript,'Trebuchet MS',sans-serif;font-weight:400;letter-spacing:0}.hero h1,.melted-name{font-family:BirthdayScript,'Trebuchet MS',sans-serif;font-weight:400;letter-spacing:0}.melted-name{padding-right:.12em}.birthday-wish{font-family:BirthdayScript,'Trebuchet MS',sans-serif;font-weight:400;letter-spacing:0}.topbar-note,.topbar-link{font-size:19px}.wordmark,.ticket-header{font-size:30px}.chapter h2{font-family:BirthdayScript,sans-serif;font-weight:400;letter-spacing:0}.memory-copy h3,.place-card h3,.gift h3,.game-card h3{font-family:BirthdayScript,sans-serif;font-weight:400;letter-spacing:0}.ticket-message{font-family:BirthdayScript,sans-serif;font-weight:400;font-size:clamp(29px,4.5vw,56px);letter-spacing:0}.ticket-description{font-family:BirthdayRound,Arial,sans-serif}.balloon-heading h2{font-family:BirthdayScript,sans-serif;font-weight:400;letter-spacing:0}.balloon-greeting{font-size:19px}
/* Белые поля обрезаются в рамке, исходная картинка сохраняется целиком. */
.princess-ticket{width:min(900px,100%);aspect-ratio:1466/745;margin-top:0}.ticket-front{inset:0;overflow:hidden}.ticket-front img{position:absolute;width:109.48%;height:131.54%;max-width:none;left:-4.98%;top:-14.9%;object-fit:fill;mix-blend-mode:normal}.ticket-back{inset:0}.ticket-stage{gap:0;padding:40px 6% 65px}.ticket-prompt,.ticket-continue{position:relative;color:#e40080;font-family:BirthdayScript,sans-serif;font-weight:400;font-size:32px;line-height:1.2;margin:22px 0 0;padding:4px 8px;border:0;text-shadow:0 1px 0 white}.ticket-continue{min-height:44px}.ticket-continue:hover{color:#a80066;text-decoration:underline;text-underline-offset:6px}.ticket-prompt{font-size:34px}
@media(max-width:600px){.ticket-header{font-size:28px;padding:16px 6%}.ticket-stage{padding:25px 6% 60px;min-height:calc(100% - 77px)}.princess-ticket{aspect-ratio:1466/745}.ticket-front{inset:0}.ticket-back{inset:0;padding:12px 14px;border-width:6px}.ticket-message{font-size:clamp(23px,6.5vw,35px);line-height:1.15}.ticket-description{font-size:12px;line-height:1.5;margin-top:12px}.ticket-prompt,.ticket-continue{font-size:28px;margin-top:18px}.topbar-link{font-size:18px}.wordmark{font-size:26px}.birthday-wish{font-size:clamp(24px,6.5vw,40px)}.balloon-greeting{font-size:16px}.balloon-heading h2{font-size:34px}}
/* Действие находится на обороте, отдельная кнопка не вложена в кнопку переворота. */
.ticket-object{position:relative;width:min(900px,100%)}.ticket-object .princess-ticket{width:100%;margin:0}.ticket-object .ticket-continue{position:absolute;z-index:3;left:50%;bottom:6%;top:auto;transform:translateX(-50%);margin:0;padding:6px 12px;white-space:nowrap;font-size:30px}.ticket-back{padding:5% 6% 90px}
@media(max-width:600px){.ticket-back{justify-content:flex-start;padding:15px 12px 50px}.ticket-message{font-size:clamp(21px,5.7vw,31px)}.ticket-description{font-size:11px;margin-top:9px}.ticket-object .ticket-continue{font-size:23px;bottom:3%;padding:5px 8px}}
/* Путешествие с Владой */
.friend-gate{position:fixed;inset:0;width:100%;height:100%;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;overflow:auto;overscroll-behavior:contain;background:radial-gradient(ellipse at 16% 24%,#ffceeb,transparent 55%),linear-gradient(130deg,#fff0f8,#f9c5e5 65%,#e4d8f3);color:#74163f;font-family:BirthdayRound,Arial,sans-serif}.friend-gate::backdrop{background:#f9c5e5}.friend-content{max-width:1080px;margin:auto;padding:30px 6% 40px;text-align:center}.friend-content>h2{font-family:BirthdayScript,sans-serif;font-weight:400;font-size:clamp(32px,4vw,52px);letter-spacing:0;margin:0 0 15px;color:#bb166b}.friend-intro{font-size:15px;margin:0 auto;max-width:620px;line-height:1.7}.friend-feedback{font-size:13px;min-height:23px;margin:8px 0;color:#a12061}.friend-field{position:relative;height:max(410px,calc(100dvh - 300px));min-height:410px;max-height:660px}.friend-choice{position:absolute;transform:translate(-50%,-50%);width:150px;border:0;background:none;padding:0;color:#9e185c;touch-action:manipulation;will-change:left,top}.friend-portrait{display:block;position:relative;width:100%;aspect-ratio:1;border-radius:50%;overflow:hidden;background-image:url('assets/friends-animals.png');background-size:320% 213.333%;background-repeat:no-repeat;box-shadow:0 8px 19px #bf3a7925}.portrait-dog{background-position:26% 1.8%}.portrait-pigeon{background-position:73.9% 1.8%}.portrait-roach{background-position:3.8% 82.7%}.portrait-cat{background-position:49.7% 82.7%}.portrait-rooster{background-position:96.6% 82.7%}.portrait-vlada{background:none}.portrait-vlada img{display:block;width:100%;height:100%;object-fit:cover}.friend-name{display:block;font-family:BirthdayScript,sans-serif;font-size:21px;line-height:1.3;margin-top:8px;text-shadow:0 1px 0 white}.friend-choice:hover .friend-portrait{box-shadow:0 0 0 3px #f867b3,0 9px 20px #c0367a30}.friend-quiz{display:grid;grid-template-columns:150px 1fr;gap:25px 40px;max-width:850px;margin:25px auto 0;text-align:left}.animal-line{grid-column:1/-1;list-style:none;padding:0 0 22px;margin:0;display:flex;justify-content:center;gap:30px;border-bottom:1px solid #dc8fba}.animal-line li{width:85px;text-align:center;opacity:.55;transition:opacity .3s,transform .3s}.animal-line li>span:last-child{display:block;font-family:BirthdayScript,sans-serif;font-size:17px;margin-top:8px}.animal-line .animal-current{opacity:1;transform:translateY(-5px)}.animal-current .friend-portrait{box-shadow:0 0 0 3px #ea1d85,0 8px 16px #aa216f30}.animal-line .animal-passed{opacity:1}.animal-passed>span:last-child{color:#8a3572;text-decoration:underline;text-underline-offset:4px}.rescue-portrait{text-align:center;align-self:start;margin-top:20px}.rescue-portrait img{display:block;width:150px;height:150px;object-fit:contain;border-radius:50%;box-shadow:0 7px 18px #b22d7625}.rescue-portrait>span{font-size:12px;display:block;margin-top:12px;color:#9f4270}#friend-form{min-width:0}#friend-form fieldset{margin:0;padding:0;border:0}#friend-form legend{font-family:BirthdayScript,sans-serif;font-size:30px;color:#a70d60;line-height:1.3;max-width:100%;padding:0}#friend-question:focus,#friend-title:focus{outline:none}.question-progress{font-size:12px;color:#98436e;margin:0 0 13px}#question-instruction{font-size:12px;margin:12px 0 20px;color:#a1567b}.friend-answers{display:flex;flex-direction:column;gap:14px}.friend-answers label{display:flex;align-items:center;gap:13px;cursor:pointer;font-size:16px;line-height:1.5;min-height:40px}.friend-answers input{accent-color:#df1b81;width:21px;height:21px;flex-shrink:0;cursor:pointer}.friend-answers input:focus-visible{outline:3px solid #8e2585;outline-offset:4px}.friend-answers label:has(input:checked){color:#b90d67;font-weight:800}.answer-feedback{min-height:27px;font-size:13px;line-height:1.6;margin:18px 0 4px}.quest-action{font-family:BirthdayScript,sans-serif;font-size:25px;color:#db147b;background:none;border:0;border-bottom:1px solid #dc6ba1;padding:8px 4px;min-height:46px}.quest-action:hover{color:#a10056}.quest-action:disabled{opacity:.4}.friend-success{max-width:560px;margin:25px auto}.friend-success>img{display:block;width:200px;height:200px;object-fit:contain;border-radius:50%;margin:auto;box-shadow:0 10px 30px #be3e8125}.friend-success h3{font-family:BirthdayScript,sans-serif;font-weight:400;font-size:40px;margin:20px 0 10px;color:#cf1474}.friend-success>p{font-size:15px;line-height:1.8;margin:0 0 20px}.storm{position:fixed;inset:0;z-index:5;pointer-events:none;overflow:hidden}.storm-cloud{position:absolute;top:22%;width:70vw;height:55vh;background:#b7afcf;border-radius:50%;box-shadow:0 30px 80px #8c7aab50;opacity:0}.storm-cloud:before,.storm-cloud:after{content:'';position:absolute;background:inherit;border-radius:50%;width:60%;height:110%;left:5%;top:-32%}.storm-cloud:after{left:45%;top:-22%;width:50%;height:100%}.cloud-left{left:-72vw;animation:cloud-left-in 1.5s ease both}.cloud-right{right:-72vw;top:40%;background:#c7bddb;animation:cloud-right-in 1.5s ease both}@keyframes cloud-left-in{0%,100%{transform:translateX(0);opacity:0}35%,60%{transform:translateX(66vw);opacity:.92}}@keyframes cloud-right-in{0%,100%{transform:translateX(0);opacity:0}35%,60%{transform:translateX(-66vw);opacity:.92}}.vlada-companion{position:fixed;right:22px;bottom:20px;z-index:20;display:flex;flex-direction:column;align-items:flex-end;max-width:min(300px,calc(100vw - 30px))}#companion-toggle{display:flex;align-items:center;gap:10px;border:1px solid #f08cbd;background:#fff3fa;color:#b9156c;border-radius:50px;padding:5px 15px 5px 5px;box-shadow:0 6px 24px #ad2e6d25;font-family:BirthdayScript,sans-serif;font-size:19px;min-height:56px}#companion-toggle img{width:54px;height:54px;object-fit:cover;border-radius:50%}.companion-bubble{border:1px solid #eca9ca;background:#fff8fc;color:#80294e;box-shadow:0 8px 24px #ac357622;border-radius:15px 15px 3px 15px;padding:15px 18px;margin-bottom:10px}.companion-bubble p{font-family:BirthdayRound,Arial,sans-serif;font-size:13px;line-height:1.7;margin:0}
@media(max-width:600px){.friend-content{padding:23px 5% 30px}.friend-content>h2{font-size:32px;margin-bottom:12px}.friend-intro{font-size:13px;max-width:330px}.friend-feedback{font-size:11px;min-height:32px}.friend-field{height:max(450px,calc(100dvh - 300px));min-height:450px}.friend-choice{width:112px}.friend-name{font-size:19px;margin-top:5px}.friend-quiz{grid-template-columns:1fr;gap:18px;margin-top:15px}.animal-line{gap:12px;padding-bottom:15px}.animal-line li{width:51px;flex-shrink:0}.animal-line li>span:last-child{font-size:13px;margin-top:8px}.rescue-portrait{display:flex;align-items:center;gap:12px;margin:0}.rescue-portrait img{width:65px;height:65px}.rescue-portrait>span{font-size:12px;margin:0}#friend-form legend{font-size:27px}.question-progress{font-size:11px}.friend-answers label{font-size:14px;min-height:42px}.friend-answers{gap:10px}.quest-action{font-size:24px}.friend-success>img{width:170px;height:170px}.friend-success h3{font-size:36px}.friend-success>p{font-size:14px}.vlada-companion{right:12px;bottom:max(12px,env(safe-area-inset-bottom))}#companion-toggle{font-size:16px;padding-right:12px}#companion-toggle img{width:46px;height:46px}.companion-bubble{max-width:260px}}
@media(prefers-reduced-motion:reduce){.cloud-left,.cloud-right{animation:none;opacity:.55;left:0;right:auto}.cloud-right{left:auto;right:0}.animal-line li{transition:none}}
/* Слова Влады и волшебный фильм воспоминаний */
.nostalgia-gate{position:fixed;inset:0;margin:0;padding:0;width:100%;height:100%;height:100dvh;max-width:none;max-height:none;border:0;background:#ffe7f3;color:#8c2456;overflow:auto;overscroll-behavior:contain}.nostalgia-gate::backdrop{background:#ffe7f3}.nostalgia-welcome{min-height:100%;background:radial-gradient(ellipse at 70% 45%,#ffd4ec,transparent 70%),#fff0f8}.vlada-speaking{position:relative;max-width:1050px;margin:auto;min-height:calc(100dvh - 95px);display:flex;align-items:center;justify-content:center;flex-direction:column;padding:25px 5% 45px}.pink-thought{position:relative;width:min(760px,100%);min-height:340px;display:grid;place-items:center;padding:80px 90px 65px;isolation:isolate;filter:drop-shadow(0 14px 20px #ca408b15);margin-bottom:12px}.thought-outline{position:absolute;inset:0;width:100%;height:100%;z-index:-1;overflow:visible}.pink-thought p{font-family:BirthdayScript,sans-serif;font-size:clamp(24px,2.7vw,34px);font-weight:400;text-align:center;line-height:1.5;color:#b12970;margin:0}.thought-tail{position:absolute;background:#ffe0f0;border:3px solid #f39ac5;border-radius:50%;bottom:-24px;left:24%;width:32px;height:26px;transform:rotate(-15deg)}.tail-small{bottom:-49px;left:22%;width:18px;height:15px;border-width:2px}.speaking-vlada{width:185px;height:185px;object-fit:contain;border-radius:50%;align-self:flex-start;margin:12px 0 0 15%;box-shadow:0 10px 25px #d1488e20}.nostalgia-start{position:absolute;right:19%;bottom:78px;color:#de137f;border:0;background:none;padding:12px;min-width:70px;min-height:55px}.nostalgia-start svg{width:65px;height:40px;display:block;margin:0 auto 7px;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;transition:transform .25s}.nostalgia-start:hover svg{transform:translateX(8px)}.nostalgia-start span{font-family:BirthdayScript,sans-serif;font-size:25px}#nostalgia-heading:focus{outline:none}.memory-cinema{position:relative;isolation:isolate;min-height:100dvh;display:flex;flex-direction:column;align-items:center;padding:20px 5% 23px;overflow:hidden;background:#a72b75;color:white}.nostalgia-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-4;opacity:.6;filter:saturate(.8)}.cinema-tint{position:absolute;inset:0;background:linear-gradient(130deg,#a50e7280,#e567ae70 50%,#73438495);z-index:-3}.cinema-glow{position:absolute;inset:-20%;background:radial-gradient(ellipse at 20% 30%,#ffcdf288,transparent 48%),radial-gradient(ellipse at 85% 75%,#ffd69466,transparent 45%);animation:cinema-shine 8s ease-in-out infinite alternate;z-index:-2;pointer-events:none}.cinema-started .memory-cinema:after{content:'';position:absolute;inset:0;z-index:5;background:#fff0fa;opacity:0;animation:magic-arrival 2s ease-out both;pointer-events:none}.cinema-sparkles{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:.5;background-image:radial-gradient(ellipse at center,#fff 0 1px,transparent 4px),radial-gradient(ellipse at center,#fff5c3 0 1px,transparent 3px);background-size:137px 173px,211px 229px;background-position:20px 35px,73px 15px;mask-image:linear-gradient(90deg,#000,transparent 30%,transparent 70%,#000);animation:shimmer-slow 5s ease-in-out infinite alternate}.cinema-header{width:100%;display:flex;align-items:center;justify-content:space-between;gap:20px;z-index:3}.cinema-header h2{font-family:BirthdayScript,sans-serif;font-size:34px;color:#fff2f8;letter-spacing:0;margin:0;font-weight:400}.cinema-header button,.cinema-controls button{font-family:BirthdayRound,sans-serif;border:1px solid #ffd6eb90;border-radius:30px;color:#fff;background:#6c144c55;padding:9px 16px;font-size:12px;min-height:42px;backdrop-filter:blur(8px)}.cinema-header button:hover,.cinema-controls button:hover{background:#b32a7680}.memory-screen{position:relative;width:100%;height:calc(100dvh - 220px);min-height:270px;max-height:850px;margin:15px 0 0;display:grid;place-items:center}.magic-photo{position:absolute;inset:0;margin:0;display:flex;align-items:center;justify-content:center;opacity:0;transform:scale(.97) rotate(-1deg);transition:opacity 1.7s ease,transform 5.5s ease;pointer-events:none}.magic-photo img{display:block;width:auto;height:auto;max-width:95%;max-height:95%;object-fit:contain;border:10px solid #ffd4eb;outline:2px solid #f9c76b;outline-offset:3px;border-radius:6px;box-shadow:0 0 0 7px #d83d91,0 15px 45px #3e0a404d,0 0 55px #ffafd780;background:#2e1230}.magic-photo.photo-visible{opacity:1;transform:scale(1) rotate(0deg);z-index:1}.cinema-status{font-family:BirthdayRound,sans-serif;font-size:12px;margin:8px 0;color:#fff2fa;min-height:20px;z-index:3}.cinema-controls{display:flex;justify-content:center;gap:12px;z-index:3}.cinema-controls button:disabled{opacity:.35;cursor:default}.nostalgia-finish{font-family:BirthdayScript,sans-serif;font-size:23px;border:0;background:none;color:#ffe2f3;padding:8px 10px;margin-top:5px;min-height:42px;z-index:3;text-decoration:underline;text-underline-offset:5px}.video-retry{position:relative;z-index:4;border:1px solid #ffd0e8;background:#fff1fa;color:#a31b63;border-radius:6px;padding:10px 18px;font-size:13px;min-height:44px;margin-bottom:8px}@keyframes cinema-shine{from{transform:translate(-2%,-1%) scale(1);opacity:.55}to{transform:translate(4%,3%) scale(1.08);opacity:1}}@keyframes shimmer-slow{from{opacity:.2}to{opacity:.7}}@keyframes magic-arrival{0%{opacity:.85}100%{opacity:0}}
@media(max-width:600px){.vlada-speaking{padding:30px 4% 40px;min-height:calc(100dvh - 95px);justify-content:center}.pink-thought{padding:65px 40px 55px;min-height:360px;margin-bottom:23px}.pink-thought p{font-size:24px;line-height:1.5}.thought-tail{left:27%}.tail-small{left:23%}.speaking-vlada{width:145px;height:145px;margin-left:8%;margin-top:5px}.nostalgia-start{right:9%;bottom:70px}.nostalgia-start span{font-size:22px}.nostalgia-start svg{width:55px}.memory-cinema{padding:18px 4% 17px}.cinema-header h2{font-size:28px}.cinema-header button{font-size:10px;padding:8px 12px}.memory-screen{height:calc(100dvh - 220px);min-height:240px;margin-top:16px}.magic-photo img{max-width:91%;max-height:91%;border-width:6px;outline-width:1px;box-shadow:0 0 0 5px #d83d91,0 12px 30px #3e0a404d,0 0 30px #ffafd780}.cinema-controls{gap:7px;width:100%}.cinema-controls button{font-size:10px;padding:8px 10px}.nostalgia-finish{font-size:21px}.cinema-status{margin:9px 0 6px}.cinema-sparkles{background-size:93px 131px,157px 199px}}
@media(prefers-reduced-motion:reduce){.magic-photo{transform:none;transition:opacity .2s}.magic-photo.photo-visible{transform:none}.cinema-glow,.cinema-sparkles,.cinema-started .memory-cinema:after{animation:none}.cinema-started .memory-cinema:after{display:none}.nostalgia-start svg{transition:none}}
.cinema-started{overflow:hidden}.memory-cinema{height:100dvh;min-height:0}.memory-screen{height:auto;min-height:0;max-height:none;flex:1}.cinema-header,.cinema-status,.cinema-controls,.nostalgia-finish,.video-retry{flex-shrink:0}
.cinema-started,.memory-cinema{overflow:clip}
/* Две фотографии на каждом экране, гладкая единая рамка. */
.photo-pair{position:absolute;inset:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;opacity:0;transform:scale(.98);transition:opacity 1.5s ease,transform 5.5s ease;pointer-events:none}.photo-pair.pair-visible{opacity:1;transform:scale(1);z-index:1}.photo-pair .magic-photo{position:relative;inset:auto;min-width:0;min-height:0;opacity:1;transform:none;transition:none}.photo-pair .magic-photo img{max-width:calc(100% - 24px);max-height:calc(100% - 28px);border:5px solid #ffcfeb;border-radius:18px;outline:none;outline-offset:0;box-shadow:0 8px 28px #67144430,0 0 24px #ffdaef30;background:#33172e}
@media(max-width:600px){.photo-pair{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) minmax(0,1fr);gap:15px}.photo-pair .magic-photo img{max-width:calc(100% - 18px);max-height:calc(100% - 10px);border-width:4px;border-radius:15px}.cinema-controls{gap:18px}}
@media(prefers-reduced-motion:reduce){.photo-pair{transform:none;transition:opacity .2s}.photo-pair.pair-visible{transform:none}}
/* Только для владельца, при ?preview=1 */
.preview-tools{position:fixed;left:12px;bottom:12px;z-index:1000;max-width:calc(100vw - 24px);font-family:BirthdayRound,Arial,sans-serif;font-size:12px;text-align:left;color:#701441;filter:none}.preview-tools summary{background:#fff8fc;border:1px solid #dc73ab;border-radius:8px;padding:10px 14px;cursor:pointer;box-shadow:0 3px 15px #7d174525;font-weight:800;min-height:40px}.preview-panel{background:#fff8fc;border:1px solid #dc73ab;border-radius:10px;padding:14px;margin-top:6px;width:245px;max-height:65dvh;overflow:auto;box-shadow:0 5px 20px #7d174525}.preview-panel nav{display:grid;gap:3px;margin:10px 0}.preview-panel a{display:block;padding:6px 2px;color:#9d165b;font-size:12px;font-family:BirthdayRound,Arial,sans-serif}.preview-skip{border:0;border-radius:5px;background:#d91d7b;color:white;padding:11px;font-family:BirthdayRound,Arial,sans-serif;font-size:12px;min-height:42px;width:100%}.preview-normal{border-top:1px solid #efd1e1;margin-top:5px}.preview-status{margin:6px 0 0;font-size:11px}.preview-tools[open]{bottom:12px}.preview-tools:has(.preview-panel){pointer-events:auto}
/* Влада появляется после последней пары воспоминаний. */
.nostalgia-outro{position:absolute;inset:85px 5% 35px;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;animation:outro-appear 1.2s ease both}.nostalgia-outro>img{width:190px;height:190px;object-fit:contain;border-radius:50%;box-shadow:0 8px 35px #68184830,0 0 35px #ffcde955}.outro-cloud{position:relative;min-width:300px;max-width:90%;background:linear-gradient(#fff7fc,#ffd9ee);border:3px solid #f6a3cf;border-radius:42% 42% 38% 38% / 32% 32% 40% 40%;padding:30px 40px 28px;text-align:center;box-shadow:0 12px 35px #74174c25}.outro-cloud:before{content:'';position:absolute;top:-23px;left:calc(50% - 12px);width:22px;height:17px;border:2px solid #f6a3cf;background:#ffe5f3;border-radius:50%}.outro-cloud h3{font-family:BirthdayScript,sans-serif;font-weight:400;font-size:43px;color:#c01e77;margin:0 0 10px;letter-spacing:0}.outro-cloud .nostalgia-finish{color:#c01e77;font-size:27px;padding:8px 15px;margin:0}.outro-cloud .nostalgia-finish:hover{color:#8f0a54}#nostalgia-outro-message:focus{outline:none}@keyframes outro-appear{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}@media(max-width:600px){.nostalgia-outro{inset:90px 4% 35px;gap:30px}.nostalgia-outro>img{width:160px;height:160px}.outro-cloud{min-width:280px;padding:28px 28px}.outro-cloud h3{font-size:38px}}@media(prefers-reduced-motion:reduce){.nostalgia-outro{animation:none}}
/* Первое испытание: продукты, кухня и весы */
.trial-gate,.study-gate,.ruslan-gate{position:fixed;inset:0;width:100%;height:100%;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:radial-gradient(ellipse at 80% 30%,#f5d9f4,transparent 65%),linear-gradient(130deg,#fff0f8,#ffd3e8);color:#7c1c4d;overflow:auto;overscroll-behavior:contain}.trial-gate::backdrop,.study-gate::backdrop,.ruslan-gate::backdrop{background:#ffd3e8}.trial-chapter{float:right;font-size:20px;margin-top:6px}.trial-content{max-width:1000px;margin:auto;text-align:center;padding:22px 5% 45px}.trial-content>h2{font-family:BirthdayScript,sans-serif;color:#cb1973;font-size:50px;margin:0 0 17px;letter-spacing:0;font-weight:400}#trial-heading:focus{outline:none}.trial-vlada{display:flex;align-items:center;gap:14px;justify-content:center;max-width:760px;margin:0 auto 15px}.trial-vlada img{width:65px;height:65px;border-radius:50%;object-fit:contain}.trial-vlada p{font-size:14px;line-height:1.6;margin:0;text-align:left;max-width:480px}.trial-vlada button{border:0;background:none;color:#bc2472;text-decoration:underline;text-underline-offset:4px;font-family:BirthdayRound,sans-serif;font-size:12px;padding:10px}.trial-hint{padding:14px 20px;background:#fff5fc;border:1px solid #efaaca;border-radius:18px;font-size:13px;line-height:1.7;max-width:650px;margin:15px auto}.trial-instruction,.scale-caption{font-size:12px;color:#a64e78}.trial-status{font-size:14px;font-weight:700;color:#a21e61;margin:10px 0}.food-field{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:20px;min-height:250px;align-items:center;max-width:800px;margin:25px auto}.flying-food{border:0;background:none;padding:0;color:#902356;display:flex;flex-direction:column;align-items:center;animation:food-drift var(--food-time) ease-in-out var(--food-delay) infinite;cursor:grab}.flying-food svg{width:95px;height:95px;filter:drop-shadow(0 8px 6px #b1446c18)}.flying-food>span{font-family:BirthdayScript,sans-serif;font-size:20px}.flying-food:active{cursor:grabbing}.flying-food.food-selected{animation-play-state:paused}.food-selected svg{filter:drop-shadow(0 0 7px #e93f9a)}.food-selected>span{text-decoration:underline;text-underline-offset:5px}.flying-food:focus-visible{animation-play-state:paused}.food-baskets{display:flex;justify-content:center;gap:90px}.food-basket{width:180px;border:0;background:none;padding:5px 0;color:#d23b83}.food-basket svg{display:block;width:180px;height:100px;fill:#ffd9ec;stroke:#d65493;stroke-width:6;stroke-linecap:round;stroke-linejoin:round}.basket-healthy svg{fill:#ddf0d7;stroke:#6a9c7a}.food-basket>span{font-family:BirthdayScript,sans-serif;font-size:27px}.food-basket>small{display:block;font-size:11px;color:#95516f}.food-basket:hover{transform:translateY(-3px)}.trial-feedback{min-height:24px;font-size:13px;margin:14px 0 0}.breakfast-progress{font-size:12px;color:#ab5179;line-height:1.8;margin:12px 0 20px}#cooking-title{font-family:BirthdayScript,sans-serif;font-size:36px;font-weight:400;letter-spacing:0;margin:0 0 12px}#cooking-instruction{font-size:14px;line-height:1.7}.cooking-scene{position:relative;min-height:270px;display:flex;align-items:center;justify-content:center;gap:35px;margin:25px 0}.cooking-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:15px 35px}.cooking-actions .quest-action{font-size:23px}.pink-pan{width:215px;height:215px;position:relative;display:grid;place-items:center;border:13px solid #ee8fbb;border-radius:50%;background:#725261;box-shadow:inset 0 0 0 3px #a77d95,0 12px 25px #b54a7d25}.pink-pan>svg{width:155px;height:155px}.pan-handle{position:absolute;left:calc(100% + 5px);top:80px;height:32px;width:100px;border:4px solid #ca5f93;border-radius:20px;background:#f5aacb;transform:rotate(-14deg);transform-origin:left}.pan-cooking .pink-pan{box-shadow:0 0 28px #ff9b5baa,inset 0 0 0 3px #a77d95}.pan-cooking .pink-pan>svg{animation:sizzle .3s ease-in-out infinite alternate}.salad-bowl{width:250px;height:155px;background:linear-gradient(#ffd6e9,#ee81b3);border:4px solid #e373a4;border-radius:12% 12% 48% 48%;position:relative;display:flex;align-items:start;justify-content:center}.salad-bowl:after{content:'';position:absolute;inset:0 0 auto;height:22px;border:4px solid #e373a4;border-radius:50%;background:#fff0f8}.salad-bowl>div{display:flex;position:absolute;top:-60px;z-index:1}.salad-bowl svg{width:90px;height:110px;margin:-8px}.salad-mixing .salad-bowl{animation:mix-bowl .45s ease-in-out infinite alternate}.orange-prep svg{width:120px;height:120px}.juice-glass{position:relative;width:88px;height:160px;border:4px solid #dd95ba;border-top-width:2px;border-radius:4px 4px 17px 17px;background:#fff6fa99;overflow:hidden;box-shadow:0 8px 18px #a34a7620}.juice-glass>span{position:absolute;bottom:0;left:0;right:0;height:0;background:#f8c56b;transition:height .25s}.breakfast-plate{display:flex;justify-content:center;gap:20px;background:#fff7fc;border:5px solid #eea6cb;border-radius:45%;padding:30px;box-shadow:0 7px 25px #af397a18}.breakfast-plate svg{width:120px;height:120px}.pink-scales{display:block;position:relative;width:300px;max-width:80%;margin:20px auto 10px;padding:0;border:0;background:none;color:#b5256b;touch-action:manipulation;transition:transform .08s}.pink-scales>svg{display:block;width:100%;height:auto;filter:drop-shadow(0 12px 12px #b7478525)}.pink-scales:active{transform:scale(.97)}.scale-number{position:absolute;top:19.5%;left:0;right:0;font-family:BirthdayRound,sans-serif;font-size:40px;font-weight:800;line-height:1}#trial-scales>p:first-child{font-size:14px;line-height:1.7}#scale-progress{accent-color:#e33b91;width:240px;height:10px;max-width:85%;border:0;border-radius:10px}#trial-reward{padding:30px 0}.crown-reward{width:220px;height:190px;margin:auto;display:grid;place-items:center;background:radial-gradient(ellipse,#fff5c9aa,transparent 70%)}.crown-reward img{width:185px;height:auto;filter:drop-shadow(0 10px 15px #c4518e25);animation:crown-arrive 1s ease both}#trial-reward h3{font-family:BirthdayScript,sans-serif;font-size:42px;font-weight:400;color:#cc2979;margin:15px 0}#trial-reward p{font-size:15px;line-height:1.9}.first-crown-badge{position:fixed;left:15px;top:95px;z-index:15;display:flex;align-items:center;gap:7px;background:#fff4fae8;padding:7px 12px;border:1px solid #f0b2d0;border-radius:25px;font-family:BirthdayScript,sans-serif;font-size:17px;color:#b22467}.first-crown-badge img{width:36px;height:27px}@keyframes food-drift{0%,100%{transform:translate(-7px,7px) rotate(-5deg)}50%{transform:translate(9px,-10px) rotate(5deg)}}@keyframes sizzle{from{transform:translateX(-1px)}to{transform:translateX(1px)}}@keyframes mix-bowl{from{transform:rotate(-5deg)}to{transform:rotate(5deg)}}@keyframes crown-arrive{from{opacity:0;transform:translateY(20px) scale(.7)}to{opacity:1;transform:none}}@media(max-width:600px){.trial-chapter{font-size:15px;margin-top:7px}.trial-content{padding:22px 5% 35px}.trial-content>h2{font-size:43px}.trial-vlada{gap:9px}.trial-vlada img{width:52px;height:52px}.trial-vlada p{font-size:12px}.trial-vlada button{padding:8px 0;font-size:10px}.food-field{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 8px;margin:22px auto;min-height:330px}.flying-food svg{width:73px;height:73px}.flying-food>span{font-size:18px}.food-baskets{gap:30px}.food-basket,.food-basket svg{width:135px}.food-basket svg{height:75px}.food-basket>span{font-size:23px}.trial-status{font-size:12px}.trial-instruction{font-size:11px}.trial-feedback{font-size:12px}.pink-pan{width:170px;height:170px;border-width:10px}.pink-pan>svg{width:125px;height:125px}.pan-handle{width:70px;top:60px}.cooking-scene{min-height:230px;margin:25px 0}.cooking-actions{gap:10px 22px}.cooking-actions .quest-action{font-size:21px}#cooking-title{font-size:32px}#cooking-instruction{font-size:12px}.breakfast-progress{font-size:10px}.breakfast-plate{padding:20px 10px;gap:7px}.breakfast-plate svg{width:85px;height:85px}.first-crown-badge{top:84px;left:10px;font-size:14px;padding:5px 9px}.scale-number{font-size:36px}.trial-hint{font-size:12px}}@media(prefers-reduced-motion:reduce){.flying-food,.pan-cooking .pink-pan>svg,.salad-mixing .salad-bowl,.crown-reward img{animation:none}.pink-scales,.juice-glass>span{transition:none}}
/* Второе испытание: паутинки профессий */
.study-content{max-width:1200px}.study-board{position:relative;isolation:isolate;display:grid;grid-template-columns:1.3fr 1fr;gap:65px;margin:25px auto;max-width:1000px}.study-webs,.study-symbols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:center}.profession-web,.profession-symbol{position:relative;min-width:0;border:0;background:none;color:#a12468;padding:0;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:130px;cursor:pointer}.profession-web{aspect-ratio:1}.web-art{display:block;position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:#db7fb1;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.profession-web>span{position:relative;z-index:1;font-family:BirthdayScript,sans-serif;font-size:19px;line-height:1.25;padding:4px 6px;background:#ffe4f1ce;border-radius:5px;max-width:100%;overflow-wrap:anywhere}.profession-web:hover .web-art,.web-selected .web-art{stroke:#c71577;stroke-width:2.4}.web-selected>span{color:#a4005b;text-decoration:underline;text-underline-offset:4px}.profession-icon{width:77px;height:82px;fill:#fff0fa;stroke:#cb4f91;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 6px 8px #c94e8420)}.profession-symbol>span{font-size:11px;line-height:1.4;margin-top:8px}.profession-symbol:hover .profession-icon{stroke:#a30b68;fill:#ffd4e8}.web-solved{visibility:hidden}.web-lines{position:absolute;inset:0;width:100%;height:100%;z-index:-1;overflow:visible;pointer-events:none}.web-lines line{stroke:#dc348e;stroke-width:3;stroke-linecap:round;filter:drop-shadow(0 0 4px #ffaad7)}.final-web{min-height:250px;align-items:center}.final-web .study-webs,.final-web .study-symbols{display:flex;justify-content:center;align-items:center}.final-web .web-solved{display:none}.final-web .profession-web{width:200px;min-height:200px}.final-web .profession-web>span{font-size:23px}.final-web .profession-symbol{width:170px}.final-web .profession-icon{width:125px;height:130px}#study-heading:focus{outline:none}#study-reward{padding:25px 0}#study-reward h3{font-family:BirthdayScript,sans-serif;font-size:42px;font-weight:400;letter-spacing:0;color:#c72479;margin:10px 0 20px}#study-ending{font-family:BirthdayScript,sans-serif;font-size:31px;line-height:1.6;max-width:680px;margin:0 auto 20px;color:#b1256c}@media(max-width:600px){.study-board{grid-template-columns:1.15fr 1fr;gap:22px;margin-top:20px}.study-webs,.study-symbols{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 7px}.profession-web,.profession-symbol{min-height:98px}.profession-web>span{font-size:13px;padding:3px 2px}.profession-icon{width:57px;height:61px;stroke-width:3.3}.profession-symbol>span{font-size:9px;margin-top:4px}.final-web{min-height:230px;gap:20px}.final-web .profession-web{width:145px;min-height:145px}.final-web .profession-web>span{font-size:18px}.final-web .profession-symbol{width:110px}.final-web .profession-icon{width:95px;height:110px}#study-reward h3{font-size:35px}#study-ending{font-size:26px;line-height:1.6}}
/* Третье испытание: Руслан и фразы о себе */
.ruslan-content{max-width:930px}.ruslan-content h2{letter-spacing:0}.ruslan-field{height:340px;position:relative;max-width:700px;margin:30px auto}.ruslan-avatar{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border:6px solid #e964a6;border-radius:50%;width:205px;height:205px;background:#ffd9ec;padding:0;overflow:hidden;box-shadow:0 8px 30px #b4377925;animation:ruslan-drift 7s ease-in-out infinite;touch-action:manipulation}.ruslan-avatar img,.ruslan-speaker{object-fit:cover;object-position:55% 35%}.ruslan-avatar img{display:block;width:100%;height:100%}.ruslan-avatar:focus-visible,.ruslan-avatar:active{animation-play-state:paused}.ruslan-speaker{width:110px;height:110px;border:4px solid #ee8fbd;border-radius:50%;box-shadow:0 5px 16px #bd458322}.ruslan-speech{font-family:BirthdayScript,sans-serif;color:#b6256e;background:linear-gradient(#fff8fc,#ffe2f1);border:2px solid #ef9ac6;border-radius:30px;padding:25px 30px;font-size:29px;line-height:1.5;max-width:660px;margin:20px auto}.constructor-speaker{display:flex;align-items:center;gap:25px;max-width:780px;margin:10px auto}.constructor-speaker .ruslan-speaker{width:90px;height:90px;flex-shrink:0}.constructor-speaker .ruslan-speech{margin:0;font-size:26px;text-align:left}.ruslan-listen{background:none;border:0;color:#a42c68;font-family:BirthdayRound,sans-serif;font-size:12px;text-decoration:underline;text-underline-offset:4px;padding:10px;min-height:40px}.phrase-label{display:block;text-align:left;font-size:13px;color:#a34271;margin:20px 0 8px}#ruslan-answer{width:100%;resize:vertical;min-height:105px;border:2px solid #eaa3c7;border-radius:15px;background:#fff8fc;color:#942657;font-family:BirthdayRound,sans-serif;font-size:18px;line-height:1.7;padding:16px;outline-offset:4px}#ruslan-answer:focus-visible{outline:3px solid #a62481}.phrase-edit{display:flex;justify-content:space-between;gap:20px;margin:10px 0 22px}.phrase-edit button{border:0;background:none;color:#ac3c74;font-family:BirthdayRound,sans-serif;font-size:12px;padding:6px 2px;text-decoration:underline;text-underline-offset:4px;min-height:35px}.phrase-words{display:flex;flex-wrap:wrap;justify-content:center;gap:11px}.phrase-word{font-family:BirthdayRound,sans-serif;font-size:17px;color:#a11a61;background:#ffe0ef;border:1px solid #e77fb2;border-radius:12px;padding:10px 17px;min-height:44px;transition:transform .15s,background .15s}.phrase-word:hover:not(:disabled){background:#ffc3e1;transform:translateY(-2px)}.phrase-word:disabled{opacity:.28;cursor:default}.ruslan-final-quote{font-family:BirthdayScript,sans-serif;font-size:32px;color:#bc2671;line-height:1.5}#ruslan-victory h3{font-family:BirthdayScript,sans-serif;font-size:42px;color:#bd1d6c;font-weight:400;letter-spacing:0;margin:20px 0}#ruslan-victory>p:not(.ruslan-final-quote){font-size:14px;line-height:1.8}#ruslan-heading:focus,#ruslan-target:focus{outline:none}@keyframes ruslan-drift{0%,100%{translate:-100px 20px;rotate:-4deg}35%{translate:110px -40px;rotate:5deg}70%{translate:-20px 55px;rotate:-2deg}}@media(max-width:600px){.ruslan-field{height:340px;margin:15px auto}.ruslan-avatar{width:165px;height:165px;animation-name:ruslan-drift-mobile}.ruslan-speaker{width:95px;height:95px}.ruslan-speech{font-size:26px;padding:23px;margin:20px auto}.constructor-speaker{gap:12px;align-items:start}.constructor-speaker .ruslan-speaker{width:65px;height:65px}.constructor-speaker .ruslan-speech{padding:17px;font-size:22px;line-height:1.5}#ruslan-answer{font-size:16px;padding:13px;min-height:120px}.phrase-word{font-size:15px;padding:8px 13px}.phrase-words{gap:9px}.phrase-edit{gap:15px;margin-bottom:17px}.phrase-edit button{font-size:10px}.ruslan-final-quote{font-size:29px}.ruslan-content>section>p{font-size:13px}}@keyframes ruslan-drift-mobile{0%,100%{translate:-52px 17px;rotate:-4deg}35%{translate:55px -35px;rotate:5deg}70%{translate:-10px 40px;rotate:-2deg}}@media(prefers-reduced-motion:reduce){.ruslan-avatar{animation:none}.phrase-word{transition:none}}
/* Номер испытания по центру шапки */
.trial-gate>.ticket-header,.study-gate>.ticket-header,.ruslan-gate>.ticket-header{position:relative}.trial-chapter{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);float:none;margin:0;color:#b30020;font-size:27px;white-space:nowrap}
@media(max-width:600px){.trial-gate>.ticket-header,.study-gate>.ticket-header,.ruslan-gate>.ticket-header{padding-top:14px;padding-bottom:55px}.trial-chapter{top:auto;bottom:13px;transform:translateX(-50%);font-size:26px}}
/* Финал пути Насти */
.finale-page{background:#fff0f8}.royal-reveal{max-width:1320px;margin:0 auto;display:grid;grid-template-columns:1.12fr 1fr;gap:65px;align-items:center;min-height:calc(100dvh - 90px);padding:70px 6% 75px}.royal-photo{margin:0}.royal-photo>img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border:4px solid #f2b2d1;border-radius:25px;box-shadow:0 15px 40px #b94a7a18}.royal-photo figcaption{font-family:BirthdayScript,sans-serif;font-size:20px;color:#b4477b;text-align:center;margin-top:17px}.royal-copy h1{font-family:BirthdayScript,sans-serif;font-size:clamp(44px,5.1vw,70px);line-height:1.1;font-weight:400;letter-spacing:0;color:#d01f79;margin:0 0 30px}.royal-copy p{font-family:BirthdayRound,sans-serif;font-size:16px;line-height:1.9;color:#8f4265;margin:0 0 20px}.royal-scroll{font-family:BirthdayScript,sans-serif;font-size:23px;color:#cf297e;display:inline-block;margin-top:12px;text-underline-offset:7px}.birthday-wishes{padding:70px 5% 60px;background:radial-gradient(ellipse at 50% 46%,#fff7fccc,#ffd8ec55 48%,transparent 75%),linear-gradient(#fbd3e7,#ffeaf4);border-top:1px solid #efb2d0}.birthday-heading{text-align:center}.birthday-heading h2{font-family:BirthdayScript,sans-serif;color:#ca1d76;font-size:clamp(40px,5vw,66px);font-weight:400;letter-spacing:0;margin:0 0 20px}.finale-age{display:flex;align-items:center;justify-content:center;gap:0;margin:0 auto 35px}.finale-age img{width:auto;height:100px;object-fit:contain;filter:drop-shadow(0 6px 4px #a5296425)}.wish-orbit{position:relative;max-width:1180px;min-height:960px;margin:25px auto 0}.birthday-portrait{position:absolute;top:150px;left:50%;transform:translateX(-50%);width:330px;margin:0;text-align:center}.birthday-portrait img{display:block;width:100%;height:535px;object-fit:cover;object-position:center 35%;border:5px solid #f4a8cf;border-radius:46% 46% 35% 35% / 25% 25% 20% 20%;box-shadow:0 0 0 7px #ffe8f5,0 15px 45px #ba4b8925}.birthday-portrait figcaption{font-family:BirthdayScript,sans-serif;font-size:24px;color:#c82d7f;margin-top:24px}.wish-circle{position:absolute;width:213px;height:213px;border:2px solid #ed96c0;border-radius:50%;background:linear-gradient(145deg,#fff7fc,#ffd7eb);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:21px;text-align:center;box-shadow:0 8px 25px #bb4c8312}.wish-circle h3{font-family:BirthdayScript,sans-serif;font-size:28px;font-weight:400;letter-spacing:0;color:#c52979;line-height:1.1;margin:0 0 10px}.wish-circle p{font-family:BirthdayRound,sans-serif;font-size:12px;line-height:1.6;color:#8f4566;margin:0}.wish-1{left:14%;top:0}.wish-2{right:14%;top:0}.wish-3{left:0;top:260px}.wish-4{right:0;top:260px}.wish-5{left:10%;top:530px}.wish-6{right:10%;top:530px}.wish-7{left:50%;bottom:0;transform:translateX(-50%)}.wish-5 h3{font-size:24px}.finale-closing{font-family:BirthdayScript,sans-serif;font-size:32px;text-align:center;max-width:700px;margin:60px auto 0;color:#b72b70;line-height:1.6}.finale-footer{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:27px 6%;background:#f8c6df;color:#b52a71;font-family:BirthdayScript,sans-serif;font-size:21px}.finale-footer a{font-family:BirthdayRound,sans-serif;font-size:12px}
@media(min-width:701px) and (max-width:1050px){.royal-reveal{gap:35px;padding-top:60px;padding-bottom:60px}.royal-copy h1{font-size:48px}.royal-copy p{font-size:14px}.royal-photo figcaption{font-size:17px}.wish-orbit{min-height:910px}.birthday-portrait{width:260px;top:160px}.birthday-portrait img{height:465px}.birthday-portrait figcaption{font-size:21px}.wish-circle{width:180px;height:180px;padding:16px}.wish-circle h3{font-size:24px;margin-bottom:8px}.wish-circle p{font-size:10.5px;line-height:1.55}.wish-1{left:3%}.wish-2{right:3%}.wish-3{top:240px}.wish-4{top:240px}.wish-5{left:3%;top:490px}.wish-6{right:3%;top:490px}.wish-5 h3{font-size:21px}}
@media(max-width:700px){.royal-reveal{display:flex;flex-direction:column;padding:55px 7% 50px;gap:35px;min-height:auto}.royal-photo{width:100%}.royal-photo>img{border-radius:18px;border-width:3px}.royal-photo figcaption{font-size:18px;margin-top:14px}.royal-copy h1{font-size:46px;margin-bottom:24px;text-align:center}.royal-copy p{font-size:14px;line-height:1.85}.royal-scroll{font-size:23px;text-align:center;display:block}.birthday-wishes{padding:50px 5% 45px}.birthday-heading h2{font-size:41px;line-height:1.2;max-width:330px;margin:0 auto 20px}.finale-age{margin-bottom:30px}.finale-age img{height:85px}.wish-orbit{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 10px;min-height:0;margin-top:0;max-width:480px;align-items:center;justify-items:center}.birthday-portrait{position:static;grid-column:1/-1;transform:none;width:250px;margin:0 0 20px}.birthday-portrait img{height:410px;border-width:4px}.birthday-portrait figcaption{font-size:23px;margin-top:20px}.wish-circle{position:static;transform:none;width:100%;height:auto;aspect-ratio:1;padding:15px 13px}.wish-circle h3{font-size:24px;margin-bottom:8px}.wish-circle p{font-size:10.5px;line-height:1.55}.wish-5 h3{font-size:20px}.wish-7{grid-column:1/-1;width:185px}.wish-7 p{font-size:12px}.wish-7 h3{font-size:27px}.finale-closing{font-size:27px;margin-top:40px}.finale-footer{padding:23px 6%;font-size:19px;gap:15px}.finale-footer a{font-size:10px}.finale-page+.first-crown-badge{top:90px}}
#hero-title:focus{outline:none}.first-crown-badge{position:absolute}
@media(max-width:700px){.wish-5 h3{font-size:19px}.wish-5 p{font-size:10px;line-height:1.4}}
/* Пожелания Насте на максимум */
.wish-orbit{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:center;gap:75px;min-height:0;max-width:1180px;margin:35px auto 0}.wish-orbit .birthday-portrait{position:static;transform:none;width:100%;max-width:480px;margin:0;grid-column:auto}.wish-orbit .birthday-portrait img{width:100%;height:auto;aspect-ratio:986/1594;object-fit:cover;border-radius:44% 44% 32% 32% / 22% 22% 17% 17%}.wish-orbit .birthday-portrait figcaption{font-size:27px;margin-top:25px}.wish-settings{text-align:left;min-width:0}.wish-settings>h3{font-family:BirthdayScript,sans-serif;font-size:36px;font-weight:400;letter-spacing:0;line-height:1.25;color:#c02072;margin:0 0 15px}.wish-settings>p:first-of-type{font-family:BirthdayRound,sans-serif;font-size:13px;line-height:1.8;color:#964b6e;margin:0 0 35px}.wish-list{display:flex;flex-direction:column;gap:30px}.wish-setting{display:grid;grid-template-columns:minmax(130px,1fr) minmax(120px,1fr) 42px;gap:16px;align-items:center}.wish-setting>label{font-family:BirthdayScript,sans-serif;font-size:25px;color:#b82b70;line-height:1.25}.wish-setting>output{font-family:BirthdayRound,sans-serif;font-size:12px;color:#a44271;text-align:right}.wish-range{--wish-fill:0%;appearance:none;-webkit-appearance:none;width:100%;height:12px;border:1px solid #e894be;border-radius:20px;background:linear-gradient(to right,#e44297 var(--wish-fill),#fff3fa var(--wish-fill));cursor:pointer;margin:15px 0;touch-action:pan-y}.wish-range::-webkit-slider-thumb{-webkit-appearance:none;width:25px;height:25px;border-radius:50%;background:#f24f9e;border:3px solid #ffeaf5;box-shadow:0 0 0 1px #dc3f8d,0 3px 8px #bd3e7625}.wish-range::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:#f24f9e;border:3px solid #ffeaf5;box-shadow:0 0 0 1px #dc3f8d}.wish-range:focus-visible{outline:3px solid #b73d92;outline-offset:8px}.wish-max-status{font-family:BirthdayRound,sans-serif;font-size:12px;color:#ad4b7c;margin-top:27px}.wish-celebration{position:fixed;inset:0;width:100%;height:100%;height:100dvh;max-width:none;max-height:none;padding:0;margin:0;border:0;overflow:clip;background:radial-gradient(ellipse at 50% 45%,#fff0fa 0%,#ffc7e4 43%,#f384b8 100%);color:#c11070;isolation:isolate}.wish-celebration::backdrop{background:#f4a7cd}.celebration-copy{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px 5%;pointer-events:none}.celebration-copy h2{font-family:BirthdayScript,sans-serif;font-size:clamp(75px,12vw,170px);font-weight:400;letter-spacing:0;color:#d5157d;text-shadow:0 4px 0 #fff3fa,0 0 45px #fff;line-height:1.1;margin:0 0 30px}.celebration-copy>p{font-family:BirthdayRound,sans-serif;font-size:18px;line-height:1.7;color:#922a60;background:#fff0f8b0;border-radius:25px;padding:8px 20px;margin:0 0 30px}.celebration-copy button{pointer-events:auto;font-family:BirthdayScript,sans-serif;font-size:25px;color:#a9145d;background:#fff1f8dd;border:1px solid #eb8db9;border-radius:25px;padding:12px 25px;min-height:48px;margin:7px;box-shadow:0 5px 20px #c13c7e15}#wish-celebration-title:focus{outline:none}.celebration-balloons{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none}.party-balloon{position:absolute;left:var(--party-left);bottom:-180px;width:var(--party-size);height:calc(var(--party-size)*1.25);border-radius:48% 48% 45% 45% / 44% 44% 56% 56%;background:radial-gradient(ellipse at 28% 22%,#ffe0f0,#ff8fc5 25%,#eb348f 65%,#c01b72);box-shadow:inset -5px -7px 12px #ad276b20,0 8px 25px #b3397720;animation:party-rise var(--party-time) linear var(--party-delay) infinite}.party-balloon:before{content:'';position:absolute;top:15%;left:20%;height:28%;width:12%;border-radius:50%;background:#fff9;transform:rotate(22deg)}.party-balloon:after{content:'';position:absolute;left:50%;top:100%;width:12px;height:70px;border-left:1px solid #a5748a;border-radius:50%}.party-1{background:radial-gradient(ellipse at 28% 22%,#fffbe4,#f5d680 28%,#deac4d 70%,#bf893a)}.party-2{background:radial-gradient(ellipse at 28% 22%,#f2fcff,#b4e4f6 28%,#7dbbd9 70%,#5699bd)}@keyframes party-rise{0%{transform:translate(0,0) rotate(-8deg)}50%{transform:translate(var(--party-drift),calc(-55dvh - 110px)) rotate(8deg)}100%{transform:translate(0,calc(-110dvh - 220px)) rotate(-5deg)}}
@media(max-width:1000px) and (min-width:701px){.wish-orbit{gap:40px;grid-template-columns:1fr 1.1fr}.wish-setting{grid-template-columns:minmax(110px,1fr) minmax(90px,1fr) 35px;gap:10px}.wish-setting>label{font-size:22px}.wish-settings>h3{font-size:31px}.wish-list{gap:22px}}
@media(max-width:700px){.wish-orbit{display:flex;flex-direction:column;gap:45px;max-width:480px;margin-top:20px}.wish-orbit .birthday-portrait{width:100%;max-width:340px;margin:0}.wish-orbit .birthday-portrait img{height:auto}.wish-settings{width:100%;padding:0 3%}.wish-settings>h3{font-size:33px}.wish-setting{grid-template-columns:1fr 40px;gap:5px 12px}.wish-setting>label{grid-column:1/-1;font-size:25px}.wish-setting>input{grid-column:1}.wish-setting>output{grid-column:2}.wish-list{gap:22px}.wish-settings>p:first-of-type{font-size:12px;margin-bottom:27px}.celebration-copy h2{font-size:clamp(65px,18vw,100px)}.celebration-copy>p{font-size:14px;padding:10px 17px}.celebration-copy button{font-size:22px}.wish-orbit .birthday-portrait figcaption{font-size:25px}}
@media(prefers-reduced-motion:reduce){.party-balloon{animation:none;bottom:auto;top:calc(var(--party-left)*.65);opacity:.65}.celebration-copy h2{text-shadow:0 3px 0 #fff3fa}}
#celebration-good-song{max-width:660px;font-size:27px;line-height:1.4;padding:16px 28px;background:#fff0f9f0}#celebration-close{font-size:20px;padding:10px 20px;background:#fff0f899}@media(max-width:600px){#celebration-good-song{max-width:340px;font-size:23px;padding:13px 20px}#celebration-close{font-size:18px}}
.celebration-copy #celebration-song-note{font-family:BirthdayScript,sans-serif;font-size:30px;line-height:1.4;color:#b91c6b;max-width:660px;margin:0 0 22px;background:none;border:0;border-radius:0;padding:0;text-shadow:0 1px 0 #fff3fa}@media(max-width:600px){.celebration-copy #celebration-song-note{font-size:25px;max-width:330px;margin-bottom:20px}}
.trial-briefing-gate .briefing-start{position:absolute;right:8%;bottom:90px;max-width:310px;font-family:BirthdayScript,sans-serif;font-size:28px;line-height:1.4;color:#d01b78;background:#fff1f9;border:1px solid #ef9cc8;border-radius:25px;padding:14px 23px;min-height:50px}.briefing-start:hover{background:#ffe0f1}#trial-briefing-title:focus{outline:none}@media(max-width:600px){.trial-briefing-gate .pink-thought{padding:65px 39px 55px;min-height:400px}.trial-briefing-gate .pink-thought p{font-size:23px}.trial-briefing-gate .briefing-start{right:5%;bottom:70px;max-width:175px;font-size:23px;padding:12px 16px}.trial-briefing-gate .speaking-vlada{width:130px;height:130px;margin-left:4%}}
/* Более крупные персонажи в испытании дружбы */
.friend-quiz{max-width:1000px;grid-template-columns:195px 1fr;gap:22px 38px;margin-top:15px}.animal-line{justify-content:space-between;gap:22px;padding-bottom:20px}.animal-line li{width:clamp(105px,12vw,150px);flex-shrink:0}.animal-line li>span:last-child{font-size:23px;margin-top:10px}.rescue-portrait img{width:190px;height:190px}.rescue-portrait{margin-top:15px}.friend-content{max-width:1180px}.friend-content>.friend-feedback:empty{min-height:0;margin:0}.animal-line .animal-current{transform:translateY(-3px)}
@media(min-width:601px) and (max-width:900px){.friend-quiz{grid-template-columns:145px 1fr;gap:22px}.animal-line{gap:16px}.animal-line li{width:100px}.rescue-portrait img{width:140px;height:140px}.animal-line li>span:last-child{font-size:19px}}
@media(max-width:600px){.friend-content{padding-top:18px}.friend-quiz{grid-template-columns:1fr;gap:15px;margin-top:17px}.animal-line{gap:9px;justify-content:space-between;padding-bottom:17px}.animal-line li{width:calc((100% - 36px)/5);flex-shrink:1}.animal-line li>span:last-child{font-size:15px;margin-top:7px}.rescue-portrait{margin:0;gap:13px}.rescue-portrait img{width:88px;height:88px}.rescue-portrait>span{font-size:13px}.friend-intro{max-width:350px}.friend-content>h2{margin-bottom:12px}}
/* Читаемые размеры текста на всех этапах */
body{font-size:19px;line-height:1.75;color:#641137}.hero-intro,.royal-copy p{font-size:19px;line-height:1.85;color:#77334e}.topbar-note,.topbar-link{font-size:23px}.friend-intro,.friend-success>p,.trial-vlada p,#cooking-instruction,#trial-scales>p:first-child,#trial-reward p,#ruslan-victory>p:not(.ruslan-final-quote){font-size:18px;line-height:1.8;color:#742144}.friend-feedback,.question-progress,#question-instruction,.answer-feedback,.rescue-portrait>span,.trial-instruction,.trial-feedback,.scale-caption,.trial-hint,.wish-settings>p:first-of-type,.wish-max-status,.phrase-label,.phrase-edit button,.ruslan-listen,.balloon-hint,.rail-label,.rail-foot{font-size:16px;line-height:1.7;color:#853152}.friend-answers label{font-size:21px;line-height:1.7;min-height:52px;gap:16px}.friend-answers input{width:26px;height:26px}.friend-answers{gap:17px}#friend-form legend{font-size:36px;line-height:1.4}.question-progress{margin-bottom:16px}#question-instruction{margin:15px 0 23px}.trial-status,.breakfast-progress{font-size:17px}.quest-action,.cooking-actions .quest-action{font-size:29px;min-height:52px}.trial-vlada button{font-size:16px;min-height:44px}.food-basket>small{font-size:16px}.flying-food>span{font-size:25px}.profession-web>span{font-size:22px}.profession-symbol>span{font-size:15px;line-height:1.5}.study-symbols .profession-symbol{min-height:145px}.study-webs .profession-web{min-height:145px}.ruslan-speech{font-size:33px}.constructor-speaker .ruslan-speech{font-size:30px}#ruslan-answer{font-size:21px}.phrase-word{font-size:20px;padding:12px 19px}.wish-setting>label{font-size:29px}.wish-setting>output{font-size:16px}.wish-settings>h3{font-size:41px}.royal-photo figcaption{font-size:25px}.finale-footer a{font-size:16px}.cinema-header button,.cinema-controls button,.cinema-status{font-size:15px}.companion-bubble p{font-size:16px}.balloon-heading #balloon-instruction{font-size:18px;max-width:540px}.balloon-status{font-size:20px}.balloon-greeting{font-size:22px}.balloon-heading h2{font-size:clamp(38px,4.6vw,60px)}.balloon-field{top:250px}.balloon-hint{font-size:14px}.ticket-description{font-size:clamp(18px,2vw,24px);line-height:1.7}.ticket-back{padding-bottom:95px}.ticket-object .ticket-continue{font-size:34px}.pink-thought p{font-size:clamp(27px,2.7vw,36px)}.pink-thought{padding-left:85px;padding-right:85px}.preview-tools,.preview-panel a,.preview-skip{font-size:14px}.preview-status{font-size:13px}.finale-closing{font-size:36px}
@media(max-width:700px){body{font-size:18px}.royal-copy p,.friend-intro,.friend-success>p,.trial-vlada p,#cooking-instruction,#trial-scales>p:first-child,#trial-reward p,#ruslan-victory>p:not(.ruslan-final-quote){font-size:17px;line-height:1.8}.friend-feedback,.question-progress,#question-instruction,.answer-feedback,.rescue-portrait>span,.trial-instruction,.trial-feedback,.scale-caption,.trial-hint,.wish-settings>p:first-of-type,.wish-max-status,.phrase-label,.phrase-edit button,.ruslan-listen{font-size:15px;line-height:1.7}.friend-answers label{font-size:19px;min-height:50px;gap:14px}.friend-answers input{width:25px;height:25px}.friend-answers{gap:14px}#friend-form legend{font-size:32px}.friend-content>h2{font-size:36px}.animal-line li>span:last-child{font-size:17px}.trial-vlada{flex-wrap:wrap}.trial-vlada p{flex:1;min-width:180px}.trial-vlada button{font-size:15px}.trial-status,.breakfast-progress{font-size:16px}.quest-action,.cooking-actions .quest-action{font-size:26px}.food-basket>small{font-size:14px}.flying-food>span{font-size:22px}.profession-web>span{font-size:16px}.profession-symbol>span{font-size:12px}.study-symbols .profession-symbol,.study-webs .profession-web{min-height:115px}.constructor-speaker .ruslan-speech{font-size:25px}.ruslan-content>section>p{font-size:17px}#ruslan-answer{font-size:18px}.phrase-word{font-size:18px;padding:11px 15px}.phrase-edit{gap:20px}.phrase-edit button{font-size:13px}.wish-setting>label{font-size:28px}.wish-setting>output{font-size:16px}.wish-settings>h3{font-size:36px}.royal-photo figcaption{font-size:22px}.finale-footer a{font-size:13px}.cinema-header button,.cinema-controls button{font-size:13px;padding:10px 12px}.cinema-status{font-size:15px}.balloon-heading #balloon-instruction{font-size:16px}.balloon-greeting{font-size:18px}.balloon-status{font-size:18px}.balloon-heading h2{font-size:35px}.balloon-field{top:240px;bottom:65px}.balloon-hint{font-size:13px}.ticket-object .ticket-continue{font-size:26px}.ticket-message{font-size:clamp(25px,6.5vw,34px)}.ticket-description{font-size:15px;line-height:1.6;margin-top:12px}.ticket-object{width:100%}.ticket-object .princess-ticket{aspect-ratio:1.6}.ticket-back{padding-top:20px;padding-bottom:58px}.pink-thought p,.trial-briefing-gate .pink-thought p{font-size:26px;line-height:1.5}.pink-thought,.trial-briefing-gate .pink-thought{padding:65px 38px 60px;min-height:440px}.trial-briefing-gate .pink-thought{min-height:510px}.vlada-speaking{padding-bottom:55px}.finale-closing{font-size:30px}}
/* Крупный портрет после освобождения Влады */
.friend-success{max-width:850px;margin:18px auto 0}.friend-success>img{width:clamp(300px,33vw,460px);height:auto;aspect-ratio:1;max-width:85%;margin:0 auto 12px;box-shadow:0 12px 35px #b22d7625}.friend-success h3{margin:12px 0 14px;font-size:46px}.friend-success>p{max-width:740px;margin:0 auto 16px}.friend-success .quest-action{margin-top:0}@media(max-width:600px){.friend-success{margin-top:15px}.friend-success>img{width:290px;max-width:90%;height:auto;margin-bottom:10px}.friend-success h3{font-size:38px;margin:10px 0 12px}.friend-success>p{margin-bottom:14px}}
.photo-pair.pair-single{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}
/* После перехода прежняя пара полностью исчезает, не просвечивая за следующей. */
.photo-pair:not(.pair-visible){visibility:hidden;transition:opacity .8s ease,visibility 0s .8s,transform 5.5s ease}.photo-pair.pair-visible{visibility:visible;transition:opacity .8s ease,visibility 0s,transform 5.5s ease}
/* Hands-on breakfast */
#trial-cooking .kitchen-table{min-height:460px;margin:12px auto 20px;width:100%;gap:30px;background:radial-gradient(ellipse at center,#fff7fc99,transparent 72%);border-bottom:3px solid #eaa8ca;border-radius:35px}#trial-cooking #cooking-title{font-size:clamp(38px,4vw,62px);margin-bottom:8px}#trial-cooking #cooking-instruction{font-size:clamp(18px,1.8vw,24px);max-width:850px;margin:10px auto}.kitchen-object,.pan-target,.stove-knob{border:0;background:none;color:#922451;cursor:pointer;padding:0;touch-action:manipulation}.kitchen-object:focus-visible,.pan-target:focus-visible,.stove-knob:focus-visible{outline:3px solid #c51874;outline-offset:7px;border-radius:20px}.kitchen-object>svg{width:100%;height:100%;filter:drop-shadow(0 10px 8px #a64d6c22)}.kitchen-object>span{display:block;font:24px BirthdayRound,sans-serif;white-space:nowrap}.kitchen-object:disabled{cursor:default}.raw-egg{width:170px;flex-shrink:0;animation:egg-hover 3s ease-in-out infinite}.raw-egg.cracked{animation:none;transform:rotate(-12deg)}#trial-cooking .pink-pan{width:320px;height:320px;border-width:18px}#trial-cooking .pink-pan>svg{width:240px;height:240px}#trial-cooking .pan-handle{width:105px;height:42px;top:115px}.pan-target{margin-right:85px}.stove-knob{align-self:end;margin-bottom:35px}.stove-knob i{display:block;width:85px;height:85px;border-radius:50%;background:linear-gradient(135deg,#fff3f9,#e985b6);border:5px solid #c66496;box-shadow:0 6px 0 #b65187;position:relative;margin:auto auto 15px}.stove-knob i:after{content:'';position:absolute;width:8px;height:28px;left:34px;top:7px;background:#ab3773;border-radius:5px;transform-origin:4px 32px;transition:transform .3s}.stove-knob.on i:after{transform:rotate(100deg)}.stove-knob:disabled:not(.on){opacity:.45}.stove-knob span{font:21px BirthdayRound,sans-serif}.salad-worktop{position:relative;width:min(100%,800px);height:510px}.salad-plate{position:absolute;width:340px;height:340px;left:50%;top:50%;transform:translate(-50%,-50%);background:radial-gradient(circle,#fff9fd 55%,#fbd9e9 57%,#fff4fa 65%,#f1a2c9 67%,#ffd9eb 70%);border:4px solid #e78bb7;border-radius:50%;box-shadow:0 18px 24px #ad467d25,inset 0 0 0 8px #fff4f9;overflow:hidden}.salad-piece{position:absolute;width:98px;height:98px;transform:rotate(var(--tilt));transition:filter .2s}.salad-piece:hover{filter:brightness(1.08)}.plated-piece{position:absolute;width:105px;height:105px;animation:ingredient-in .35s ease-out both}.plated-piece svg{width:100%;height:100%}.seasoning{position:absolute;width:90px;height:90px;bottom:0}.salt-tool{left:2%}.lemon-tool{right:2%}.seasoning:disabled:not(.season-used){opacity:.42}.season-used{transform:rotate(-30deg)}.salad-plate.salted:after{content:'';position:absolute;inset:20%;background-image:radial-gradient(circle,#fff 2px,transparent 3px);background-size:19px 23px;pointer-events:none;animation:ingredient-in .4s both}.salad-plate.lemon-dressed{box-shadow:0 18px 24px #ad467d25,inset 0 0 35px #ffd96288}.juice-station{display:flex;align-items:center;justify-content:center;gap:100px;width:100%;padding:35px 0}.cutting-board{position:relative;width:360px;height:290px;border:5px solid #dca06c;border-radius:45px;background:repeating-linear-gradient(8deg,#f7d1aa 0 10px,#f2c69b 11px 13px);box-shadow:0 12px 0 #ce9469,0 20px 25px #b5457120;display:flex;align-items:center;justify-content:center}.squeeze-orange{width:210px;height:210px;position:relative;z-index:2}.squeeze-orange>span{position:absolute;bottom:-60px;left:50%;transform:translateX(-50%)}.orange-other{position:absolute;width:140px;height:140px;right:5px;top:6px;transform:rotate(20deg);opacity:.8}.orange-other svg{width:100%;height:100%}.juice-destination{position:relative;padding-top:30px}.kitchen-table .juice-glass{width:150px;height:290px;border-width:6px;border-radius:8px 8px 35px 35px;box-shadow:inset 10px 0 0 #ffffff66,0 15px 25px #a34a7620}.kitchen-table .juice-glass>span{background:linear-gradient(#ffcf68,#f6a933);border-top:5px solid #ffe19b;transition:height .3s}.glass-shine{position:absolute;top:15px;bottom:20px;left:18px;width:10px;border-radius:10px;background:#ffffff80}.juice-meter{display:block;margin:16px auto 0;font:28px BirthdayRound,sans-serif;color:#a03465}.juice-stream{position:absolute;width:13px;height:110px;left:50%;top:-58px;border-radius:50%;background:#ffbe48;opacity:0;z-index:3}.juice-stream.pouring{animation:juice-pour .5s ease-out}.squeezed{animation:orange-squeeze .4s ease}.kitchen-table .breakfast-plate svg{width:170px;height:170px}@keyframes ingredient-in{from{opacity:0;scale:.65}to{opacity:1;scale:1}}@keyframes egg-hover{50%{transform:translateY(-9px) rotate(5deg)}}@keyframes orange-squeeze{50%{transform:scale(.84,1.05) rotate(-8deg)}}@keyframes juice-pour{0%{opacity:0;transform:scaleY(.1);transform-origin:top}30%,70%{opacity:1;transform:scaleY(1)}100%{opacity:0;transform:translateY(30px)}}
@media(max-width:650px){#trial-cooking .kitchen-table{min-height:370px;gap:12px;flex-wrap:wrap;padding:15px 0}.raw-egg{width:90px}.kitchen-object>span{font-size:16px}#trial-cooking .pink-pan{width:190px;height:190px;border-width:12px}#trial-cooking .pink-pan>svg{width:145px;height:145px}#trial-cooking .pan-handle{width:42px;height:27px;top:65px}.pan-target{margin-right:33px}.stove-knob{align-self:auto;margin:5px 0}.stove-knob i{width:60px;height:60px;margin-bottom:8px}.stove-knob i:after{left:22px;top:5px;height:20px;transform-origin:4px 22px}.salad-worktop{height:420px}.salad-plate{width:230px;height:230px}.salad-piece{width:65px;height:65px}.plated-piece{width:70px;height:70px}.seasoning{width:68px;height:68px}.juice-station{gap:22px;padding:30px 0 65px}.cutting-board{width:190px;height:205px;border-radius:28px}.squeeze-orange{width:135px;height:135px}.orange-other{width:85px;height:85px}.kitchen-table .juice-glass{width:95px;height:210px}.juice-stream{height:80px;top:-40px}.squeeze-orange>span{bottom:-72px;white-space:normal;width:175px}.kitchen-table .breakfast-plate svg{width:85px;height:85px}}@media(prefers-reduced-motion:reduce){.raw-egg,.plated-piece,.squeezed,.juice-stream.pouring,.salad-plate.salted:after{animation:none}.juice-stream.pouring{opacity:.6}.kitchen-table .juice-glass>span{transition:none}}
.journey-sound{position:fixed;right:14px;bottom:12px;z-index:100;border:1px solid #e48ab5;border-radius:24px;background:#fff2fae8;color:#94215b;padding:10px 15px;font:16px BirthdayRound,sans-serif;box-shadow:0 3px 15px #a32c6720}.journey-sound[hidden]{display:none}@media(max-width:600px){.journey-sound{font-size:13px;padding:8px 10px;right:9px;bottom:9px}}

/* Vegetables form an alternating wreath inside the plate rim. */
.salad-plate .plated-piece{width:31%;height:31%;transform-origin:center;filter:drop-shadow(0 3px 2px #5f633014)}
/* The birthday wishes are the bright finale of the journey. */
.birthday-wishes{position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 10% 22%,#ffb7d7aa,transparent 36%),radial-gradient(ellipse at 95% 78%,#ff9bc199,transparent 40%),linear-gradient(135deg,#ed298b,#d71375 48%,#f04598);border-top:5px solid #ffe4a6;padding-top:65px;padding-bottom:65px}.birthday-wishes:before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.7;background-image:radial-gradient(circle,#fff7d8 1px,transparent 2px),radial-gradient(circle,#fff8 1px,transparent 3px);background-size:87px 99px,153px 137px;background-position:17px 12px,61px 54px}.birthday-heading h2{color:#fff8fc;text-shadow:0 4px 0 #ad145c,0 9px 25px #b20b6155;font-size:clamp(44px,5.6vw,78px)}.birthday-wishes .finale-age img{height:120px;filter:drop-shadow(0 5px 0 #ad155f) drop-shadow(0 10px 18px #fff0c466)}.birthday-wishes .wish-orbit{gap:65px;align-items:center}.birthday-wishes .birthday-portrait img{border:6px solid #fff4d3;box-shadow:0 0 0 8px #ffffff44,0 22px 50px #8c0d4855}.birthday-wishes .birthday-portrait figcaption{color:#fff4c8;text-shadow:0 2px 4px #a32363}.birthday-wishes .wish-settings>h3{color:#fff8cf;font-size:clamp(36px,3.4vw,49px);text-shadow:0 3px 0 #b31962;margin-bottom:20px}.birthday-wishes .wish-settings>p:first-of-type{color:#fff9fc;font-size:19px;line-height:1.65}.birthday-wishes .wish-list{gap:0}.birthday-wishes .wish-setting{padding:17px 0;border-bottom:1px solid #ffffff45;grid-template-columns:minmax(140px,1.15fr) minmax(110px,1fr) 52px;gap:17px}.birthday-wishes .wish-setting>label{color:#fff9fc;font-size:31px;text-shadow:0 2px 3px #a1155955}.birthday-wishes .wish-setting>output{color:#fff5c1;font-size:19px;font-weight:800}.birthday-wishes .wish-range{height:16px;border:2px solid #fff4d4;background:linear-gradient(to right,#ffd275 var(--wish-fill),#a8186277 var(--wish-fill));box-shadow:inset 0 2px 4px #8d10462b}.birthday-wishes .wish-range::-webkit-slider-thumb{width:30px;height:30px;border:4px solid #fff7df;background:#ffcf76;box-shadow:0 3px 9px #96155177}.birthday-wishes .wish-range::-moz-range-thumb{width:23px;height:23px;border:4px solid #fff7df;background:#ffcf76;box-shadow:0 3px 9px #96155177}.birthday-wishes .wish-range:focus-visible{outline:3px solid #fff7bd;outline-offset:7px}.birthday-wishes .wish-max-status{color:#fff6c6;font-size:19px;font-weight:800;margin-top:24px}.birthday-wishes .finale-closing{color:#fff7db;text-shadow:0 2px 3px #a61a61}
@media(max-width:1000px) and (min-width:701px){.birthday-wishes .wish-orbit{gap:35px}.birthday-wishes .wish-setting{grid-template-columns:minmax(95px,1fr) minmax(85px,1fr) 45px;gap:10px}.birthday-wishes .wish-setting>label{font-size:26px}}
@media(max-width:700px){.birthday-wishes{padding:45px 6%}.birthday-wishes .wish-orbit{gap:40px}.birthday-wishes .finale-age img{height:95px}.birthday-wishes .wish-setting{grid-template-columns:1fr 50px;gap:0 14px;padding:15px 0}.birthday-wishes .wish-setting>label{font-size:30px}.birthday-wishes .wish-settings>p:first-of-type{font-size:18px}.birthday-wishes .wish-settings{padding:0}.birthday-wishes .birthday-portrait{max-width:330px}.birthday-wishes .wish-max-status{font-size:18px}}
.journey-library{padding:70px 6% 80px;background:#fff0f8;text-align:center;border-top:4px solid #f8cf83}.journey-library[hidden]{display:none}.journey-library h2{font:clamp(37px,4vw,58px) BirthdayScript,sans-serif;color:#c51a70;margin:0 0 20px}.journey-library>p{max-width:760px;margin:0 auto 32px;color:#79254c;font-size:20px;line-height:1.7}.journey-library nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;max-width:1120px;margin:auto}.journey-library nav button{padding:22px 17px;border:2px solid #ed8fbd;border-radius:25px;background:#fff9fc;color:#b51c65;font:28px BirthdayScript,sans-serif;cursor:pointer;box-shadow:0 5px 0 #f6c7de;transition:transform .2s}.journey-library nav button:hover{transform:translateY(-3px);background:#ffe0ef}.journey-library nav button:focus-visible{outline:3px solid #af145d;outline-offset:4px}.replay-dialog{position:fixed;inset:0;margin:0;padding:0;width:100%;height:100dvh;max-width:none;max-height:none;border:0;background:#ffe4f0}.replay-dialog iframe{display:block;width:100%;height:100%;border:0}.replay-back{position:fixed;top:12px;left:50%;transform:translateX(-50%);z-index:200;background:#fff5d4;color:#98205d;border:2px solid #d45895;border-radius:25px;padding:10px 23px;font:18px BirthdayRound,sans-serif;box-shadow:0 4px 15px #a1196225;cursor:pointer}.journey-review .preview-tools{display:none!important}.journey-review .topbar,.journey-review .trial-topbar{padding-top:64px}.journey-review .balloon-heading{padding-top:60px}.journey-review .balloon-field{top:300px}@media(max-width:700px){.journey-library{padding:50px 6%}.journey-library nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.journey-library nav button{font-size:24px;padding:18px 10px}.journey-library>p{font-size:18px}.replay-back{font-size:15px;top:8px;padding:9px 17px;white-space:nowrap}}
/* A keepsake invitation with satin ribbon and a gilded edge. */
.ticket-gate .ticket-stage{position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 50% 40%,#fff9ed 0%,#ffd3e8 38%,#ef8dbd 100%);padding:25px 8% 55px;gap:0}.ticket-gate .ticket-stage:before{content:'';position:absolute;inset:0;z-index:-1;background-image:radial-gradient(circle,#fffdf0 1px,transparent 3px),radial-gradient(circle,#fffc 2px,transparent 4px);background-size:93px 107px,169px 151px;background-position:20px 12px,57px 83px;opacity:.8}.ticket-title{font:clamp(35px,4.2vw,58px) BirthdayScript,sans-serif;font-weight:400;color:#bd226b;text-align:center;margin:0 0 65px;text-shadow:0 2px 0 #fff7e9}.ticket-gate .ticket-object{max-width:850px;filter:drop-shadow(0 20px 25px #a9216550)}.ticket-bow{position:absolute;width:230px;height:auto;left:50%;top:-88px;transform:translateX(-50%);z-index:5;pointer-events:none;filter:drop-shadow(0 8px 5px #b3246b44)}.ticket-front,.ticket-back{border-radius:28px;mask-image:radial-gradient(circle 23px at 0 50%,transparent 98%,#000 100%),radial-gradient(circle 23px at 100% 50%,transparent 98%,#000 100%);mask-composite:intersect;-webkit-mask-image:radial-gradient(circle 23px at 0 50%,transparent 98%,#000 100%),radial-gradient(circle 23px at 100% 50%,transparent 98%,#000 100%);-webkit-mask-composite:source-in}.ticket-front:after{content:'';position:absolute;inset:9px;border:2px solid #ffe8ad;border-radius:21px;box-shadow:inset 0 0 0 4px #f888c399,inset 0 0 0 5px #fff0bf;pointer-events:none}.ticket-front:before{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(115deg,transparent 25%,#fff8 40%,transparent 52%);opacity:.4;pointer-events:none}.ticket-gate .ticket-back{border:9px solid #f16aaa;background:radial-gradient(ellipse at 50% 20%,#fff9e9,#ffe0ef 68%);box-shadow:inset 0 0 0 2px #ffdc8e,inset 0 0 0 7px #fff3cf;justify-content:center;padding:45px 45px 105px}.ticket-gate .ticket-back:before,.ticket-gate .ticket-back:after{background:none;top:20px;bottom:20px;height:auto;width:18px;border:2px solid #e8b766;border-radius:50%;opacity:.65}.ticket-gate .ticket-back:before{left:19px}.ticket-gate .ticket-back:after{right:19px}.ticket-gate .ticket-message{color:#c01b6f;font-size:clamp(28px,4vw,48px);text-shadow:0 2px 0 #fff;letter-spacing:0;font-weight:400}.ticket-gate .ticket-description{font-size:clamp(18px,2vw,23px);color:#8b2857;margin-top:20px}.ticket-object .ticket-continue{bottom:7%;border:2px solid #e4b76c;border-radius:35px;background:linear-gradient(#fff5d5,#f9d49b);padding:10px 28px;color:#a42760;text-shadow:0 1px 0 #fff;font-size:30px;box-shadow:0 5px 0 #dca65a55}.ticket-object .ticket-continue:hover{background:#ffe9af;color:#8c164b;text-decoration:none}.ticket-gate .ticket-prompt{font-size:37px;margin-top:25px;color:#b11662;text-shadow:0 2px 0 #fff6ed}.princess-ticket:focus-visible{outline:3px solid #b31b65;outline-offset:12px;border-radius:30px}
@media(max-width:700px){.ticket-gate .ticket-stage{padding:28px 5% 45px;min-height:calc(100dvh - 77px)}.ticket-title{font-size:38px;margin-bottom:65px}.ticket-bow{width:180px;top:-68px}.ticket-object .princess-ticket{aspect-ratio:1.35}.ticket-front img{width:109.48%;height:131.54%;object-fit:fill}.ticket-gate .ticket-back{padding:35px 20px 85px;border-width:6px}.ticket-gate .ticket-message{font-size:clamp(25px,6vw,36px)}.ticket-gate .ticket-description{font-size:16px;margin-top:12px}.ticket-object .ticket-continue{font-size:25px;padding:9px 18px;bottom:6%}.ticket-gate .ticket-prompt{font-size:32px}.ticket-front:after{inset:6px}.ticket-gate .ticket-back:before{left:9px;width:10px}.ticket-gate .ticket-back:after{right:9px;width:10px}}
/* The animals guard Vlada and periodically leave a gap. */
#friend-field{height:max(560px,calc(100dvh - 290px));min-height:560px;max-height:780px;margin-top:15px}#friend-field .friend-choice{width:clamp(210px,21vw,270px);height:auto;aspect-ratio:1;z-index:3;border-radius:50%}#friend-field .choice-vlada{width:clamp(200px,20vw,255px);z-index:1}#friend-field .friend-name{position:absolute;top:100%;left:0;width:100%;font-size:30px;pointer-events:none;margin-top:7px}#friend-field .friend-choice:focus-visible{z-index:10;outline:4px solid #ad1a68;outline-offset:6px}#friend-field .choice-guard .friend-portrait{box-shadow:0 10px 20px #b8327838}#friend-field .choice-vlada .friend-portrait{box-shadow:0 0 0 4px #fff5dd,0 12px 30px #cc348b44}@media(max-width:600px){#friend-field{min-height:580px;height:calc(100dvh - 250px);max-height:700px}#friend-field .friend-choice{width:148px}#friend-field .choice-vlada{width:140px}#friend-field .friend-name{font-size:23px;margin-top:5px}}@media(prefers-reduced-motion:reduce){#friend-field{min-height:650px}#friend-field .friend-choice{width:150px}#friend-field .choice-vlada{width:150px}}@media(max-width:600px) and (prefers-reduced-motion:reduce){#friend-field .friend-choice{width:130px}}
/* The final reveal: satin curtains, gold braid and a bright birthday stage. */
.royal-reveal{position:relative;isolation:isolate;overflow:hidden;max-width:none;min-height:calc(100dvh - 90px);padding:95px max(6%,calc((100vw - 1380px)/2)) 85px;gap:65px;background:radial-gradient(ellipse at 22% 40%,#ffa7cfbb,transparent 48%),radial-gradient(ellipse at 95% 100%,#ff94bb99,transparent 55%),linear-gradient(125deg,#ed3c96,#cf176f 75%);border-bottom:5px solid #ffdf9b}.royal-reveal:before{content:'';position:absolute;inset:0;z-index:-1;background-image:radial-gradient(circle,#fff5ce 1px,transparent 2px),radial-gradient(ellipse at 50% -15%,#fff6d75c,transparent 55%);background-size:109px 123px,100% 100%;background-position:25px 27px,0 0;pointer-events:none}.royal-reveal:after{content:'';position:absolute;top:-32px;left:0;right:0;height:80px;background:radial-gradient(ellipse at 50% 0,#b61663 65%,#f3c477 66%,#ffe9b2 70%,transparent 71%) 0 0/25% 100%;filter:drop-shadow(0 7px 5px #9c1f622a);pointer-events:none}.royal-reveal .royal-photo>img{border:5px solid #ffe7ae;border-radius:35px;box-shadow:0 0 0 8px #fff3c73b,0 22px 40px #9f175a55}.royal-reveal .royal-photo figcaption{color:#fff4c6;font-size:clamp(24px,2.2vw,32px);line-height:1.4;text-shadow:0 2px 3px #a22067;margin-top:27px}.royal-reveal .royal-copy h1{color:#fff8df;font-size:clamp(48px,5.5vw,80px);text-shadow:0 4px 0 #ab1e63,0 9px 25px #9c165533;line-height:1.12;margin-bottom:25px}.royal-reveal .royal-copy p{color:#fff9fb;font-size:clamp(18px,1.65vw,23px);line-height:1.8}.royal-reveal .royal-scroll{color:#fff2b8;font-size:30px;text-decoration-thickness:1px;text-underline-offset:8px;margin-top:10px}.royal-reveal .royal-scroll:hover{color:#fff}.royal-revealed .royal-photo{animation:royal-enter 1.2s ease both .7s}.royal-revealed .royal-copy{animation:royal-enter 1.2s ease both 1s}.grand-curtain{position:fixed;inset:0;margin:0;padding:0;width:100%;height:100dvh;max-width:none;max-height:none;border:0;background:transparent;overflow:hidden;color:#fff3c8;isolation:isolate}.grand-curtain::backdrop{background:transparent}.curtain-half{position:absolute;top:0;bottom:0;width:51%;background:repeating-linear-gradient(90deg,#a80e59 0%,#e92586 5%,#ff6bb0 9%,#dd1c79 13%,#9d1154 18%,#ed3a94 22%);box-shadow:inset 0 -35px 25px #9e165466,0 0 30px #8f0b4d66;border-bottom:12px solid #f3cb83;transition:transform 2.6s cubic-bezier(.55,.02,.22,1) .65s;will-change:transform}.curtain-left{left:0;border-right:5px solid #f8d38b;border-bottom-right-radius:70px 35px}.curtain-right{right:0;border-left:5px solid #f8d38b;border-bottom-left-radius:70px 35px}.curtain-valance{position:absolute;top:-35px;left:-5%;width:110%;height:170px;background:radial-gradient(ellipse at 50% 0,#a81b5c 56%,#ed498e 65%,#f8d68d 66%,#ffeab3 69%,transparent 70%) 0 0/25% 100%;filter:drop-shadow(0 10px 9px #8d155653);pointer-events:none}.curtain-announcement{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:30px;pointer-events:none;text-shadow:0 4px 10px #8e0c4c;transition:opacity .5s ease .6s,transform .5s ease .6s}.curtain-announcement p{font:clamp(45px,7vw,100px) BirthdayScript,sans-serif;margin:0 0 20px;line-height:1.15}.curtain-announcement span{font:clamp(18px,2.1vw,27px) BirthdayRound,sans-serif;line-height:1.5;color:#fff6ec}.curtain-skip{position:absolute;left:50%;bottom:35px;transform:translateX(-50%);border:1px solid #ffe1a4;border-radius:25px;background:#b12068b0;color:#fff2cf;padding:10px 23px;font:17px BirthdayRound,sans-serif;cursor:pointer;transition:opacity .3s ease 2s}.curtain-opening .curtain-left{transform:translateX(-101%)}.curtain-opening .curtain-right{transform:translateX(101%)}.curtain-opening .curtain-announcement{opacity:0;transform:scale(1.06)}.curtain-opening .curtain-skip{opacity:0}.grand-curtain .journey-sound,.grand-curtain .preview-tools{display:none!important}@keyframes royal-enter{from{opacity:0;transform:translateY(25px)}to{opacity:1;transform:none}}
@media(max-width:700px){.royal-reveal{padding:70px 7% 55px;gap:40px}.royal-reveal .royal-copy h1{font-size:49px}.royal-reveal .royal-copy p{font-size:18px}.royal-reveal .royal-photo>img{border-radius:24px;border-width:4px}.royal-reveal .royal-photo figcaption{font-size:26px;margin-top:22px}.royal-reveal .royal-scroll{font-size:28px}.curtain-valance{height:125px;top:-20px}.curtain-announcement{padding:25px}.curtain-announcement p{font-size:55px}.curtain-announcement span{font-size:20px;max-width:290px}.curtain-skip{bottom:30px;font-size:15px}.curtain-half{border-bottom-width:9px}}
@media(prefers-reduced-motion:reduce){.curtain-half,.curtain-announcement,.curtain-skip{transition:none}.royal-revealed .royal-photo,.royal-revealed .royal-copy{animation:none}}
