@font-face{font-family:"Aref Ruqaa";src:url("/fonts/aref-ruqaa-arabic-700.ttf?v=0.4.0") format("truetype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"Markazi Text";src:url("/fonts/markazi-text-700.ttf?v=0.18.2") format("truetype");font-style:normal;font-weight:700;font-display:swap}
:root{--ink:#1d151d;--paper:#f5f0ec;--plum:#5d244f;--rose:#d77b91;--cream:#fff8f2;--line:rgba(42,26,39,.14);--shadow:0 22px 70px rgba(40,19,35,.14);font-family:Tahoma,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}.wrap{width:min(1180px,calc(100% - 40px));margin-inline:auto}.hidden{display:none!important}.eyebrow{margin:0 0 14px;color:var(--rose);font-size:.78rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.brand{display:flex;align-items:center;gap:13px;color:#fff;text-decoration:none}.brand-logo{display:block;width:clamp(118px,12vw,146px);height:auto;flex:0 0 auto}.brand small{max-width:112px;font-size:.62rem;line-height:1.45;color:rgba(255,255,255,.62)}.brand.dark{color:var(--ink)}.brand.dark small{color:#7e6f79}.primary-button,.ghost-button,.gift-button{appearance:none;border:0;border-radius:999px;padding:15px 24px;display:inline-flex;align-items:center;justify-content:center;gap:22px;font-weight:800;text-decoration:none;cursor:pointer;transition:transform .2s,opacity .2s,background .2s}.primary-button{background:var(--plum);color:#fff;box-shadow:0 12px 30px rgba(93,36,79,.24)}.primary-button:hover,.gift-button:hover{transform:translateY(-2px)}.primary-button:disabled{opacity:.5;cursor:wait}.ghost-button{border:1px solid var(--line);background:transparent;color:inherit}.full{width:100%;margin-top:10px}.landing{background:#130c17;color:#fff}.hero-shell{min-height:calc(100vh - 76px);overflow:hidden;background:radial-gradient(circle at 78% 38%,rgba(130,48,111,.38),transparent 28%),radial-gradient(circle at 15% 10%,rgba(211,116,140,.12),transparent 30%),#130c17}.nav{height:98px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.08)}.text-link{color:#f8e9ef;text-decoration:none;font-size:.88rem}.hero{min-height:630px;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:80px}.hero h1,.studio-intro h1{font-family:"Markazi Text",Georgia,serif;font-size:clamp(4rem,8vw,7.8rem);line-height:.86;margin:0 0 34px;letter-spacing:-.05em}.hero h1 em{font-style:normal;color:#e8a2b3}.lead{max-width:580px;color:rgba(255,255,255,.7);font-size:1.08rem;line-height:2;margin:0 0 34px}.hero-art{position:relative;aspect-ratio:1;display:grid;place-items:center}.orbit{position:absolute;border:1px solid rgba(255,255,255,.12);border-radius:50%}.orbit-one{inset:4%;animation:spin 22s linear infinite}.orbit-two{inset:18%;border-style:dashed;animation:spin 15s linear reverse infinite}.gift-card{position:relative;width:min(310px,70%);aspect-ratio:.68;border:1px solid rgba(255,255,255,.16);border-radius:150px 150px 28px 28px;background:linear-gradient(165deg,rgba(255,255,255,.1),rgba(255,255,255,.025));backdrop-filter:blur(15px);box-shadow:0 30px 90px rgba(0,0,0,.35);display:flex;flex-direction:column;text-align:center;align-items:center;justify-content:center;padding:38px}.gift-card:before{content:"";width:9px;height:9px;border-radius:50%;background:#f0a9ba;box-shadow:0 0 30px 12px rgba(240,169,186,.28);margin-bottom:25px}.gift-card span{color:#d59aac;font-size:.76rem}.gift-card strong{font-family:"Markazi Text",Georgia,serif;font-size:2.1rem;line-height:1.3;margin:14px 0 35px}.gift-card i{font-style:normal;color:rgba(255,255,255,.55);font-size:.75rem}.promise{padding:35px 0 65px;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.08)}.promise article{background:#130c17;padding:30px 38px}.promise b{color:#985275;font-size:.72rem}.promise h2{font-family:"Markazi Text",Georgia,serif;margin:14px 0 8px}.promise p{color:rgba(255,255,255,.55);font-size:.83rem;line-height:1.8}.site-footer{min-height:76px;color:#796f78;display:flex;justify-content:space-between;align-items:center;font-size:.75rem}.studio-page{background:linear-gradient(145deg,#f7f2ed,#efe6e8);min-height:100vh}.studio-header{height:96px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.studio-layout{display:grid;grid-template-columns:.72fr 1.28fr;gap:75px;padding-block:80px}.studio-intro{position:sticky;top:50px;align-self:start}.studio-intro h1{font-size:clamp(3.1rem,6vw,5.8rem);color:#331b31}.studio-intro>p:last-of-type{max-width:430px;color:#756774;line-height:2}.stepper{margin:45px 0 0;padding:0;list-style:none;display:flex;gap:8px}.stepper li{padding:8px 14px;border:1px solid var(--line);border-radius:99px;color:#938891;font-size:.72rem}.stepper .active{background:#32172f;color:#fff}.studio-panel{background:rgba(255,255,255,.68);border:1px solid rgba(255,255,255,.8);box-shadow:var(--shadow);border-radius:30px;padding:clamp(24px,5vw,54px)}.token-box{padding:18px;background:#f0e5ea;border-radius:18px;margin-bottom:30px}.token-box small,.optional{font-size:.68rem;color:#8b7b85}.token-box label{margin:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}label{display:block;font-weight:800;font-size:.82rem;margin-bottom:20px}input,textarea{display:block;width:100%;margin-top:9px;padding:14px 15px;border:1px solid #d8ccd3;border-radius:12px;background:#fff;color:#251a23;outline:none;resize:vertical}input:focus,textarea:focus{border-color:#8c496f;box-shadow:0 0 0 3px rgba(140,73,111,.12)}.rights{display:flex;gap:12px;align-items:flex-start;font-weight:500;line-height:1.7;color:#6f626b}.rights input{width:18px;height:18px;flex:0 0 auto;margin:4px 0 0}.preview,.published{animation:rise .45s ease}.preview-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.preview h2,.published h2,.stats-dialog h2{font-family:"Markazi Text",Georgia,serif;font-size:2.6rem;margin:0 0 20px}.badge{font-size:.68rem;border-radius:99px;padding:7px 11px;background:#ece0e8;color:#6d3a5c}.preview-card{background:#21131f;color:#fff;border-radius:24px;padding:34px;margin:25px 0}.preview-card>p{color:#dca3b4;font-size:.75rem}.preview-card>strong{font-family:"Markazi Text",Georgia,serif;font-size:1.9rem}.mini-timeline{margin:25px 0;display:grid;gap:10px}.mini-timeline span{border-right:2px solid #9b557d;padding-right:12px;color:#cbbfc7;font-size:.8rem}.preview-card blockquote{margin:25px 0 0;padding:20px;border:1px solid rgba(255,255,255,.1);border-radius:15px;text-align:center;color:#f3cbd6}.preview-actions,.souvenir-actions{display:flex;gap:12px;flex-wrap:wrap}.qr-image{display:block;width:min(260px,70%);margin:25px auto;border-radius:18px}.stats-dialog{width:min(850px,calc(100% - 24px));border:0;border-radius:24px;padding:32px;background:#faf7f4;box-shadow:0 30px 100px rgba(0,0,0,.3)}.stats-dialog::backdrop{background:rgba(25,14,23,.62);backdrop-filter:blur(5px)}.dialog-close{float:left;border:0;background:none;font-size:2rem;cursor:pointer}.muted{color:#827680}.stats-table{width:100%;border-collapse:collapse;font-size:.78rem}.stats-table th,.stats-table td{text-align:right;padding:12px 8px;border-bottom:1px solid var(--line)}.toast{position:fixed;bottom:24px;right:50%;transform:translateX(50%) translateY(30px);background:#21131f;color:#fff;border-radius:99px;padding:12px 20px;opacity:0;pointer-events:none;transition:.3s;z-index:100}.toast.show{opacity:1;transform:translateX(50%) translateY(0)}
.gift-page{background:#110a15;color:#fff;overflow:hidden}.gift-app,.scene{width:100%;height:100svh;min-height:560px}.scene{position:absolute;inset:0;display:none;place-items:center;overflow:hidden;padding:max(20px,env(safe-area-inset-top)) 20px max(20px,env(safe-area-inset-bottom));opacity:0}.scene.active{display:grid;animation:sceneIn .8s ease forwards}.scene-content{position:relative;z-index:2;width:min(680px,100%);text-align:center}.loader-mark{width:min(250px,64vw);margin-bottom:12px}.loader-mark img,.mini-brand-logo{display:block;width:100%;height:auto}.scene h1,.scene h2{font-family:"Markazi Text",Georgia,serif;font-size:clamp(3rem,10vw,6rem);line-height:1.05;margin:8px 0 24px}.scene h2{font-size:clamp(2.6rem,8vw,4.8rem)}.scene-line{color:rgba(255,255,255,.7);font-size:clamp(.95rem,3vw,1.12rem);line-height:2}.listening-note{font-size:.78rem;color:rgba(255,255,255,.55);margin:15px 0 26px}.headphone-mark{font-size:2rem;letter-spacing:.4em;color:#e5a3b5;margin-top:35px}.gift-button{background:#f2d8df;color:#2e172b;min-width:150px}.gift-button.secondary{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.23)}.ambient{position:absolute;inset:0;filter:blur(2px)}.ambient i{position:absolute;border-radius:50%;background:rgba(167,65,135,.18);box-shadow:0 0 100px 70px rgba(167,65,135,.12);animation:float 8s ease-in-out infinite}.ambient i:nth-child(1){width:170px;height:170px;left:15%;top:10%}.ambient i:nth-child(2){width:240px;height:240px;right:8%;bottom:5%;animation-delay:-3s}.ambient i:nth-child(3){width:80px;height:80px;left:45%;top:60%;animation-delay:-5s}.interaction-orb{position:relative;width:190px;height:190px;border:1px solid rgba(255,255,255,.2);border-radius:50%;background:rgba(255,255,255,.04);color:#fff;cursor:pointer;margin:35px auto 12px;display:grid;place-items:center;box-shadow:0 0 80px rgba(198,94,153,.14)}.interaction-orb span{position:absolute;width:82px;height:82px;border-radius:50%;background:radial-gradient(circle,#f1c5d2,#9e547e 56%,transparent 60%);animation:pulse 2.2s ease-in-out infinite}.interaction-orb b{position:absolute;bottom:22px;font-size:.67rem;color:rgba(255,255,255,.6)}.interaction-hint{font-size:.7rem;color:rgba(255,255,255,.4)}.video-scene{display:none!important;grid-template-rows:auto 1fr auto auto;gap:12px;background:#070607;padding-inline:clamp(10px,3vw,35px)}.video-scene.active{display:grid!important}.video-top{width:min(1280px,100%);display:flex;align-items:center;justify-content:space-between;margin:auto;color:rgba(255,255,255,.55);font-size:.75rem}.mini-brand-logo{width:94px}.video-frame{width:min(1280px,100%);height:100%;max-height:calc(100svh - 145px);position:relative;margin:auto;background:#000;border-radius:18px;overflow:hidden}.video-frame iframe{width:100%;height:100%;border:0}.milestone{position:absolute;z-index:4;left:50%;bottom:12%;transform:translate(-50%,30px);width:min(620px,calc(100% - 30px));padding:18px 24px;border:1px solid rgba(255,255,255,.16);border-radius:18px;background:rgba(20,10,19,.72);backdrop-filter:blur(14px);text-align:center;font-family:"Markazi Text",Georgia,serif;font-size:clamp(1.15rem,4vw,1.9rem);opacity:0;pointer-events:none;transition:.55s}.milestone.show{opacity:1;transform:translate(-50%,0)}.play-fallback{position:absolute;inset:auto 50% 50% auto;transform:translate(50%,50%);border:0;border-radius:99px;padding:15px 22px;background:#f2d8df;color:#291427;z-index:5}.progress-track{width:min(1280px,100%);height:2px;background:rgba(255,255,255,.14);margin:auto}.progress-track i{display:block;width:0;height:100%;background:#e9a7b9;transition:width .5s linear}.skip-button{border:0;background:transparent;color:rgba(255,255,255,.4);font-size:.69rem;cursor:pointer;padding:4px}.souvenir-scene{overflow-y:auto;background:radial-gradient(circle at 50% 35%,rgba(132,51,110,.32),transparent 38%),#110a15}.souvenir-scene .scene-content{padding-block:45px}.souvenir-scene canvas{display:block;width:min(320px,72vw);height:auto;aspect-ratio:9/16;margin:25px auto;border-radius:18px;box-shadow:0 25px 80px rgba(0,0,0,.4)}.closing-line{max-width:620px;margin:25px auto;line-height:1.9;color:#d8c8d1}.souvenir-actions{justify-content:center}.rights-note{display:block;max-width:620px;margin:34px auto 0;color:rgba(255,255,255,.35);font-size:.61rem;line-height:1.7}.gift-page[data-theme="emerald"]{background:#071713}.gift-page[data-theme="emerald"] .scene{background-color:#071713}.gift-page[data-theme="midnight"]{background:#07101d}.gift-page[data-theme="midnight"] .scene{background-color:#07101d}.gift-page[data-theme="dawn"]{background:#231113}.gift-page[data-theme="sky"]{background:#091725}.gift-page[data-theme="sand"]{background:#211912}
@keyframes spin{to{transform:rotate(360deg)}}@keyframes rise{from{opacity:0;transform:translateY(12px)}}@keyframes sceneIn{to{opacity:1}}@keyframes float{50%{transform:translateY(22px) scale(1.12)}}@keyframes pulse{50%{transform:scale(1.18);filter:brightness(1.2)}}
@media(max-width:800px){.wrap{width:min(100% - 28px,680px)}.hero{grid-template-columns:1fr;gap:15px;padding:75px 0}.hero-copy{text-align:center}.lead{margin-inline:auto}.hero-art{aspect-ratio:.9}.promise{grid-template-columns:1fr}.promise article{padding:24px}.site-footer{padding:22px 0;gap:10px;flex-direction:column}.studio-layout{grid-template-columns:1fr;padding-block:45px;gap:35px}.studio-intro{position:static;text-align:center}.stepper{justify-content:center}.studio-header{height:78px}.form-grid{grid-template-columns:1fr}.studio-panel{padding:24px;border-radius:22px}.preview-heading{display:block}.stats-table{font-size:.68rem}.stats-table th:nth-child(2),.stats-table td:nth-child(2){display:none}.video-frame{border-radius:12px;max-height:calc(100svh - 135px)}}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
.analysis-summary{margin:0;color:#756774;line-height:1.8;font-size:.9rem}.direction-options{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:22px 0}.direction-option{appearance:none;text-align:right;border:1px solid var(--line);border-radius:18px;padding:18px;background:rgba(255,255,255,.58);color:var(--ink);cursor:pointer;transition:border-color .2s,background .2s,transform .2s}.direction-option:hover{transform:translateY(-2px)}.direction-option strong,.direction-option span{display:block}.direction-option strong{font-family:"Markazi Text",Georgia,serif;font-size:1.35rem;margin-bottom:6px}.direction-option span{color:#786a74;font-size:.76rem;line-height:1.7}.direction-option.selected{border-color:#7f3d69;background:#f0e1e9;box-shadow:0 0 0 3px rgba(127,61,105,.1)}
@media(max-width:600px){.direction-options{grid-template-columns:1fr}.direction-option{padding:16px}}

/* v0.2.2 — typography, AI status, clear continuation, and souvenir controls */
.hero h1,.studio-intro h1{font-family:"Markazi Text",Tahoma,serif;font-weight:700;letter-spacing:0}
.hero h1{line-height:.94}
.studio-intro h1{line-height:1.04}
.ai-status{display:flex;align-items:center;gap:9px;padding:11px 13px;margin-bottom:16px;border:1px solid rgba(82,55,75,.12);border-radius:13px;background:rgba(255,255,255,.48);color:#665864;font-size:.72rem;font-weight:700;line-height:1.55}
.ai-status i{width:9px;height:9px;border-radius:50%;background:#a89da4;box-shadow:0 0 0 5px rgba(168,157,164,.12);flex:0 0 auto}
.ai-status[data-state="connected"]{color:#26654b;background:#e9f5ee;border-color:#c9e6d6}
.ai-status[data-state="connected"] i{background:#31a56d;box-shadow:0 0 0 5px rgba(49,165,109,.13)}
.ai-status[data-state="guided"]{color:#7d5d27;background:#fbf3df;border-color:#ead9ad}
.ai-status[data-state="guided"] i{background:#d69a2d;box-shadow:0 0 0 5px rgba(214,154,45,.14)}
.token-box .ai-status+label{margin-top:2px}
.video-scene{grid-template-rows:auto minmax(0,1fr) auto auto}
.skip-button{appearance:none;justify-self:center;display:flex;align-items:center;justify-content:center;gap:11px;min-width:min(330px,94vw);margin:0 auto;padding:10px 17px;border:1px solid rgba(240,198,211,.36);border-radius:999px;background:linear-gradient(135deg,rgba(105,43,86,.94),rgba(52,25,48,.96));color:#fff;box-shadow:0 10px 32px rgba(0,0,0,.28);cursor:pointer;transition:transform .2s,border-color .2s,background .2s}
.skip-button:hover{transform:translateY(-2px);border-color:rgba(240,198,211,.7)}
.skip-button span{font-size:.84rem;font-weight:800}
.skip-button small{font-size:.64rem;color:rgba(255,255,255,.58)}
.skip-button b{font-size:1.05rem;color:#f2c6d2}
.souvenir-scene .scene-content{width:min(720px,100%);padding-block:16px 28px}
.souvenir-scene .eyebrow{margin-bottom:6px}
.souvenir-scene h2{font-size:clamp(2rem,6vw,3.7rem);margin:2px 0 10px}
.souvenir-scene canvas{width:auto;height:min(50svh,530px);max-width:76vw;margin:12px auto 13px;border-radius:16px}
.souvenir-tip{max-width:570px;margin:0 auto 9px;color:rgba(255,255,255,.66);font-size:.76rem;line-height:1.7}
.souvenir-actions{position:sticky;bottom:max(6px,env(safe-area-inset-bottom));z-index:6;justify-content:center;gap:8px;width:fit-content;max-width:100%;margin-inline:auto;padding:7px;border:1px solid rgba(255,255,255,.1);border-radius:999px;background:rgba(20,10,19,.82);backdrop-filter:blur(15px);box-shadow:0 13px 36px rgba(0,0,0,.28)}
.souvenir-actions .gift-button{min-width:108px;padding:11px 15px;font-size:.75rem}
.snapchat-button{background:#fffc00;color:#161616}
.snapchat-button:hover{background:#fff930}
.closing-line{margin:13px auto 0;font-size:.86rem;line-height:1.75}
.rights-note{margin:12px auto 0;font-size:.6rem}
.save-dialog{width:min(460px,calc(100% - 24px));max-height:calc(100svh - 24px);overflow:auto;border:1px solid rgba(255,255,255,.14);border-radius:26px;padding:24px;background:#1d0f1c;color:#fff;text-align:center;box-shadow:0 30px 100px rgba(0,0,0,.55)}
.save-dialog::backdrop{background:rgba(8,4,8,.8);backdrop-filter:blur(8px)}
.save-dialog .dialog-close{color:#fff}.save-dialog h2{font-family:"Markazi Text",Tahoma,serif;font-size:2.5rem;margin:3px 0 14px}.save-dialog>p:not(.eyebrow){color:rgba(255,255,255,.72);font-size:.84rem;line-height:1.8}.save-dialog img{display:block;width:min(280px,72vw);height:auto;margin:10px auto 16px;border-radius:15px;box-shadow:0 18px 55px rgba(0,0,0,.38);-webkit-touch-callout:default;user-select:auto}.save-dialog .gift-button{width:100%;margin-top:8px}
@media(max-width:600px){.hero h1{font-size:clamp(4.1rem,20vw,6rem)}.studio-intro h1{font-size:clamp(3.25rem,16vw,4.8rem)}.skip-button{min-width:min(320px,92vw)}.skip-button small{display:block}.souvenir-scene .scene-content{padding-block:8px 20px}.souvenir-scene canvas{height:min(48svh,455px);max-width:72vw}.souvenir-actions{width:100%;flex-wrap:nowrap}.souvenir-actions .gift-button{min-width:0;flex:1;padding:11px 8px;font-size:.7rem}}

/* v0.3.0 — AI-directed visual language */
.gift-page{--experience-accent:#df8fa8;--experience-deep:#4d1e44;--experience-glow:rgba(223,143,168,.36)}
.gift-page[data-theme="midnight"]{--experience-accent:#91a8df;--experience-deep:#192c55;--experience-glow:rgba(117,151,218,.32)}
.gift-page[data-theme="emerald"]{--experience-accent:#9ccbb4;--experience-deep:#174b3d;--experience-glow:rgba(115,198,157,.28)}
.gift-page[data-theme="sand"]{--experience-accent:#ddbb92;--experience-deep:#70533b;--experience-glow:rgba(221,187,146,.28)}
.gift-page[data-theme="dawn"]{--experience-accent:#eda291;--experience-deep:#873f4d;--experience-glow:rgba(237,162,145,.3)}
.gift-page[data-theme="sky"]{--experience-accent:#9ed4e0;--experience-deep:#21566d;--experience-glow:rgba(119,203,222,.3)}
.gift-app{position:relative;isolation:isolate;background:radial-gradient(circle at 50% 38%,var(--experience-deep),transparent 55%),#100912;transition:background 1s ease}
.gift-page[data-theme] .scene:not(.video-scene):not(.souvenir-scene){background-color:transparent}
.scene{z-index:2}.experience-atmosphere{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none;transition:opacity .8s}.video-scene.active~.experience-atmosphere{opacity:.2}
.experience-atmosphere i,.video-atmosphere i,.preview-motion i{position:absolute;left:var(--x);top:var(--y);display:block;width:var(--size);height:var(--size);font-style:normal;animation:experienceDrift var(--duration) var(--delay) ease-in-out infinite;will-change:transform,opacity}
.gift-page[data-motion="gentle"] .experience-atmosphere{opacity:.62}.gift-page[data-motion="dramatic"] .experience-atmosphere{filter:saturate(1.2)}
.gift-page[data-visual="aurora"] .experience-atmosphere i{width:clamp(70px,12vw,165px);height:clamp(24px,4vw,52px);border-radius:50%;background:linear-gradient(90deg,transparent,var(--experience-accent),transparent);filter:blur(20px);opacity:.16;transform:rotate(-18deg)}
.gift-page[data-visual="constellation"] .experience-atmosphere i{border-radius:50%;background:#fff;box-shadow:0 0 12px 3px var(--experience-glow);opacity:.42}
.gift-page[data-visual="constellation"] .experience-atmosphere:after{content:"";position:absolute;inset:8%;background:linear-gradient(24deg,transparent 48%,rgba(255,255,255,.06) 49%,transparent 50%),linear-gradient(155deg,transparent 48%,rgba(255,255,255,.05) 49%,transparent 50%);background-size:180px 210px;animation:constellationShift 22s linear infinite}
.gift-page[data-visual="ink"] .experience-atmosphere i{border:1px solid var(--experience-accent);border-radius:50%;background:transparent;opacity:.13;animation-name:inkBloom}
.gift-page[data-visual="embers"] .experience-atmosphere i{border-radius:50%;background:var(--experience-accent);box-shadow:0 0 18px 4px var(--experience-glow);opacity:.36;animation-name:emberRise}
.gift-page[data-visual="petals"] .experience-atmosphere i{border-radius:85% 0 85% 0;background:var(--experience-accent);opacity:.2;animation-name:petalFall}
.gift-page[data-visual="rain"] .experience-atmosphere i{width:1px;height:calc(var(--size) + 52px);background:linear-gradient(transparent,var(--experience-accent));opacity:.18;transform:rotate(12deg);animation-name:rainFall}
.gift-page[data-visual="waves"] .experience-atmosphere i{border:1px solid var(--experience-accent);border-radius:50%;background:transparent;opacity:.12;animation-name:waveExpand}
.gift-page[data-visual="film"] .experience-atmosphere:before{content:"";position:absolute;inset:-30%;background:linear-gradient(115deg,transparent 35%,var(--experience-glow) 48%,transparent 61%);animation:lightLeak 12s ease-in-out infinite}.gift-page[data-visual="film"] .experience-atmosphere:after{content:"";position:absolute;inset:0;opacity:.08;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.75'/%3E%3C/svg%3E");mix-blend-mode:screen}
.gift-page[data-entrance="veil"] #ceremonyScene.active .ceremony-copy{animation:entranceVeil 1.3s cubic-bezier(.22,.8,.28,1) both}.gift-page[data-entrance="focus"] #ceremonyScene.active .ceremony-copy{animation:entranceFocus 1.6s ease both}.gift-page[data-entrance="bloom"] #ceremonyScene.active .ceremony-copy{animation:entranceBloom 1.5s cubic-bezier(.2,.8,.2,1) both}.gift-page[data-entrance="orbit"] #ceremonyScene.active .ceremony-copy{animation:entranceOrbit 1.45s cubic-bezier(.16,.84,.3,1) both}.gift-page[data-entrance="light-draw"] #ceremonyScene.active .ceremony-copy{animation:entranceLight 1.8s ease both}.gift-page[data-entrance="echo"] #ceremonyScene.active .ceremony-copy{animation:entranceEcho 1.6s ease both}
.gift-page[data-motion="dramatic"] #ceremonyScene.active h1{filter:drop-shadow(0 0 34px var(--experience-glow))}.gift-page[data-motion="gentle"] #ceremonyScene.active h1{animation-duration:2s}
.headphone-mark{color:var(--experience-accent);filter:drop-shadow(0 0 18px var(--experience-glow))}.gift-button{transition:transform .25s,opacity .25s,box-shadow .25s}.gift-page .gift-button:not(.secondary){background:linear-gradient(135deg,#f7e4e9,var(--experience-accent));box-shadow:0 12px 38px var(--experience-glow)}
.interaction-orb{overflow:visible;border-color:color-mix(in srgb,var(--experience-accent) 48%,transparent);box-shadow:0 0 95px var(--experience-glow);transition:transform .65s cubic-bezier(.2,.8,.2,1),opacity .45s,filter .45s}.interaction-orb>span{background:radial-gradient(circle,#fff,var(--experience-accent) 48%,transparent 62%);box-shadow:0 0 46px var(--experience-glow)}.interaction-progress{position:absolute;inset:-10px;border-radius:50%;opacity:0;background:conic-gradient(var(--experience-accent) 0turn,transparent 0turn);mask:radial-gradient(farthest-side,transparent calc(100% - 4px),#000 0);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 4px),#000 0)}
.gift-page[data-interaction="hold"] .interaction-orb.holding .interaction-progress{opacity:1;animation:holdCircle 1.15s linear forwards}.gift-page[data-interaction="hold"] .interaction-orb.holding>span{animation-duration:.9s}.interaction-orb.activated{opacity:0;transform:scale(1.9);filter:blur(10px)}
.gift-page[data-interaction="reveal"] .interaction-orb{border-radius:48% 48% 10% 10%;transform:rotate(45deg)}.gift-page[data-interaction="reveal"] .interaction-orb>*{transform:rotate(-45deg)}
.gift-page[data-interaction="breathe"] .interaction-orb{animation:breatheOrb 4s ease-in-out infinite}.gift-page[data-interaction="light"] .interaction-orb{border-style:dashed}.gift-page[data-interaction="light"] .interaction-orb>span{box-shadow:0 0 75px 25px var(--experience-glow)}
.gift-page[data-interaction="trace"] .interaction-orb{border-style:dotted;animation:slowSpin 12s linear infinite}.gift-page[data-interaction="trace"] .interaction-orb>span,.gift-page[data-interaction="trace"] .interaction-orb>b{animation:slowSpin 12s linear reverse infinite}
.transition-veil{position:fixed;inset:0;z-index:40;display:grid;place-items:center;pointer-events:none;opacity:0;visibility:hidden;overflow:hidden;background:#09060b}.transition-veil i{position:absolute;inset:0;background:radial-gradient(circle,var(--experience-deep),#080509 64%)}.transition-veil span{position:relative;z-index:2;width:min(620px,calc(100% - 40px));text-align:center;color:#fff5f7;font-family:"Markazi Text",Tahoma,serif;font-size:clamp(1.8rem,7vw,4rem);line-height:1.35;opacity:0;transform:translateY(18px)}.transition-veil.playing{visibility:visible;opacity:1}.transition-veil.playing span{animation:transitionText 1.55s ease both}
.transition-veil[data-transition="iris"] i{clip-path:circle(0 at 50% 50%);animation:transitionIris 1.6s ease-in-out both}.transition-veil[data-transition="curtain"] i{transform:scaleX(0);transform-origin:right;animation:transitionCurtain 1.6s cubic-bezier(.7,0,.3,1) both}.transition-veil[data-transition="ripple"] i{clip-path:circle(2% at 50% 50%);filter:blur(0);animation:transitionRipple 1.6s ease both}.transition-veil[data-transition="light-sweep"] i{background:linear-gradient(105deg,#09060b 35%,var(--experience-accent) 49%,#09060b 63%);background-size:300% 100%;animation:transitionSweep 1.6s ease both}.transition-veil[data-transition="dissolve"] i{animation:transitionDissolve 1.6s ease both}.transition-veil[data-transition="ink-spread"] i{clip-path:polygon(48% 48%,52% 48%,55% 52%,50% 55%,46% 52%);animation:transitionInk 1.6s cubic-bezier(.4,0,.2,1) both}
.transition-veil.closing span{color:var(--experience-accent)}
.video-frame iframe{position:relative;z-index:1}.video-atmosphere{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden;mix-blend-mode:screen}.video-atmosphere i{opacity:.22;color:#fff;font-size:var(--size)}.video-atmosphere[data-atmosphere="stars"] i{border-radius:50%;background:#fff;box-shadow:0 0 12px 4px var(--experience-glow);animation-name:starTwinkle}.video-atmosphere[data-atmosphere="notes"] i{animation-name:noteRise;text-shadow:0 0 14px var(--experience-glow)}.video-atmosphere[data-atmosphere="dust"] i{border-radius:50%;background:var(--experience-accent);animation-name:dustDrift}.video-atmosphere[data-atmosphere="petals"] i{border-radius:85% 0;background:var(--experience-accent);animation-name:petalFall}.video-atmosphere[data-atmosphere="rain"] i{width:1px;height:calc(var(--size) + 42px);background:linear-gradient(transparent,var(--experience-accent));animation-name:rainFall}.video-atmosphere[data-atmosphere="waves"] i{border:1px solid var(--experience-accent);border-radius:50%;background:transparent;animation-name:waveExpand}.video-atmosphere[data-atmosphere="embers"] i{border-radius:50%;background:var(--experience-accent);box-shadow:0 0 10px var(--experience-accent);animation-name:emberRise}.video-atmosphere[data-atmosphere="none"]{display:none}
.floating-word{position:absolute;z-index:3;inset:12% 0 auto;text-align:center;color:rgba(255,255,255,.16);font-family:"Markazi Text",Tahoma,serif;font-size:clamp(3.4rem,13vw,10rem);line-height:1;letter-spacing:.02em;opacity:0;transform:scale(.88) translateY(25px);pointer-events:none;text-shadow:0 0 45px var(--experience-glow)}.floating-word.show{animation:floatingWord 3.4s ease both}
.milestone[data-effect="whisper"].show{animation:milestoneWhisper 5.2s ease both}.milestone[data-effect="glow"].show{box-shadow:0 0 50px var(--experience-glow);border-color:var(--experience-accent)}.milestone[data-effect="heartbeat"].show{animation:milestoneHeartbeat 5.2s ease both}.milestone[data-effect="scatter"].show{animation:milestoneScatter 5.2s ease both}.milestone[data-effect="underline"]:after{content:"";position:absolute;right:18%;left:18%;bottom:9px;height:1px;background:var(--experience-accent);transform:scaleX(0)}.milestone[data-effect="underline"].show:after{animation:underlineDraw 4.8s ease both}.milestone[data-effect="echo"].show{text-shadow:8px 8px 0 rgba(255,255,255,.06),16px 16px 0 rgba(255,255,255,.025)}
.video-frame[data-pulse="heartbeat"]{animation:frameHeartbeat 1.1s ease}.video-frame[data-pulse="glow"]{box-shadow:0 0 70px var(--experience-glow)}.video-frame[data-pulse="scatter"] .video-atmosphere{animation:atmosphereScatter 1.4s ease}.video-frame[data-pulse="echo"]{animation:frameEcho 1.2s ease}
.preview-card{position:relative;overflow:hidden;isolation:isolate;background:radial-gradient(circle at 50% 12%,rgba(213,117,149,.28),transparent 42%),#21131f}.preview-card[data-theme="midnight"]{background:radial-gradient(circle at 50% 12%,rgba(91,120,181,.3),transparent 42%),#101827}.preview-card[data-theme="emerald"]{background:radial-gradient(circle at 50% 12%,rgba(82,160,123,.28),transparent 42%),#10201b}.preview-card[data-theme="sand"]{background:radial-gradient(circle at 50% 12%,rgba(195,151,103,.28),transparent 42%),#241b14}.preview-card[data-theme="dawn"]{background:radial-gradient(circle at 50% 12%,rgba(221,112,119,.3),transparent 42%),#271418}.preview-card[data-theme="sky"]{background:radial-gradient(circle at 50% 12%,rgba(84,163,190,.28),transparent 42%),#10212b}.preview-motion{position:relative;height:156px;margin:-12px -12px 24px;border:1px solid rgba(255,255,255,.09);border-radius:18px;overflow:hidden;background:rgba(0,0,0,.16)}.preview-motion i{left:var(--x);top:var(--y);border-radius:50%;background:#e7a7bb;opacity:.28}.preview-motion>span{position:absolute;inset:0;display:grid;place-items:center;padding:20px;color:#fff6f8;font-family:"Markazi Text",Tahoma,serif;font-size:clamp(1.5rem,4vw,2.25rem);text-align:center;text-shadow:0 0 28px rgba(226,139,171,.5)}.preview-card[data-visual="aurora"] .preview-motion i{width:42px;border-radius:50%;filter:blur(9px);background:#9fcfb7}.preview-card[data-visual="constellation"] .preview-motion i{width:3px;height:3px;background:#fff;box-shadow:0 0 10px #fff}.preview-card[data-visual="ink"] .preview-motion i{background:transparent;border:1px solid #e2a3b7;animation-name:inkBloom}.preview-card[data-visual="embers"] .preview-motion i{background:#ef9b78;box-shadow:0 0 12px #ef9b78;animation-name:emberRise}.preview-card[data-visual="petals"] .preview-motion i{border-radius:85% 0;animation-name:petalFall}.preview-card[data-visual="rain"] .preview-motion i{width:1px;height:28px;animation-name:rainFall}.preview-card[data-visual="waves"] .preview-motion i{background:transparent;border:1px solid #9ed4e0;animation-name:waveExpand}.preview-card[data-visual="film"] .preview-motion:after{content:"";position:absolute;inset:-30%;background:linear-gradient(115deg,transparent 35%,rgba(223,143,168,.22) 50%,transparent 65%);animation:lightLeak 8s ease-in-out infinite}.preview-motif{margin:10px 0 16px!important;color:#f3c9d5!important;font-family:"Markazi Text",Tahoma,serif;font-size:1.18rem!important}.preview-blueprint{display:flex;gap:7px;flex-wrap:wrap;margin:17px 0 21px}.preview-blueprint span{padding:6px 9px;border:1px solid rgba(255,255,255,.12);border-radius:99px;background:rgba(255,255,255,.055);color:rgba(255,255,255,.72);font-size:.66rem}.preview-card[data-motion="dramatic"] .preview-motion{box-shadow:inset 0 0 65px rgba(218,104,146,.18)}.preview-card[data-motion="gentle"] .preview-motion i{opacity:.15}
@keyframes experienceDrift{0%,100%{transform:translate3d(0,0,0) rotate(0);opacity:.1}50%{transform:translate3d(24px,-34px,0) rotate(90deg);opacity:.38}}
@keyframes constellationShift{to{transform:translate3d(90px,-55px,0)}}@keyframes inkBloom{0%,100%{transform:scale(.25);opacity:0}45%{opacity:.2}100%{transform:scale(5);opacity:0}}@keyframes emberRise{0%{transform:translateY(45px) scale(.5);opacity:0}35%{opacity:.48}100%{transform:translateY(-180px) scale(1.1);opacity:0}}@keyframes petalFall{0%{transform:translate(-25px,-100px) rotate(0);opacity:0}20%{opacity:.3}100%{transform:translate(60px,220px) rotate(280deg);opacity:0}}@keyframes rainFall{0%{transform:translateY(-130px) rotate(12deg);opacity:0}15%{opacity:.3}100%{transform:translateY(230px) rotate(12deg);opacity:0}}@keyframes waveExpand{0%{transform:scale(.2);opacity:.26}100%{transform:scale(8);opacity:0}}@keyframes lightLeak{0%,100%{transform:translateX(-25%) rotate(5deg);opacity:.25}50%{transform:translateX(30%) rotate(-3deg);opacity:.6}}
@keyframes entranceVeil{from{opacity:0;clip-path:inset(0 50%);transform:scale(1.08)}to{opacity:1;clip-path:inset(0);transform:none}}@keyframes entranceFocus{from{opacity:0;filter:blur(24px);transform:scale(.96)}to{opacity:1;filter:blur(0);transform:none}}@keyframes entranceBloom{from{opacity:0;transform:scale(.72) translateY(28px);filter:saturate(.2)}to{opacity:1;transform:none;filter:saturate(1)}}@keyframes entranceOrbit{from{opacity:0;transform:rotate(-7deg) translateY(55px) scale(.86)}to{opacity:1;transform:none}}@keyframes entranceLight{from{opacity:0;filter:brightness(3) blur(16px);transform:scale(1.08)}to{opacity:1;filter:brightness(1) blur(0);transform:none}}@keyframes entranceEcho{0%{opacity:0;transform:translateY(26px);text-shadow:0 28px 0 rgba(255,255,255,.12),0 56px 0 rgba(255,255,255,.05)}100%{opacity:1;transform:none;text-shadow:none}}
@keyframes holdCircle{from{background:conic-gradient(var(--experience-accent) 0turn,transparent 0turn)}to{background:conic-gradient(var(--experience-accent) 1turn,transparent 1turn)}}@keyframes breatheOrb{0%,100%{transform:scale(.92);box-shadow:0 0 50px var(--experience-glow)}50%{transform:scale(1.08);box-shadow:0 0 110px var(--experience-glow)}}@keyframes slowSpin{to{transform:rotate(360deg)}}
@keyframes transitionText{0%,18%{opacity:0;transform:translateY(18px)}42%,72%{opacity:1;transform:none}100%{opacity:0;transform:translateY(-12px)}}@keyframes transitionIris{0%{clip-path:circle(0 at 50% 50%)}42%,70%{clip-path:circle(85% at 50% 50%)}100%{clip-path:circle(0 at 50% 50%)}}@keyframes transitionCurtain{0%{transform:scaleX(0);transform-origin:right}45%,70%{transform:scaleX(1)}100%{transform:scaleX(0);transform-origin:left}}@keyframes transitionRipple{0%{clip-path:circle(0 at 50% 50%);filter:blur(18px)}50%,72%{clip-path:circle(90% at 50% 50%);filter:blur(0)}100%{clip-path:circle(0 at 50% 50%);filter:blur(20px)}}@keyframes transitionSweep{0%{background-position:100% 0}52%,72%{background-position:50% 0}100%{background-position:0 0}}@keyframes transitionDissolve{0%,100%{opacity:0;filter:blur(20px)}45%,72%{opacity:1;filter:blur(0)}}@keyframes transitionInk{0%{clip-path:polygon(48% 48%,52% 48%,55% 52%,50% 55%,46% 52%)}48%,72%{clip-path:polygon(-20% -20%,120% -10%,110% 120%,-10% 110%,-30% 50%)}100%{clip-path:polygon(48% 48%,52% 48%,55% 52%,50% 55%,46% 52%)}}
@keyframes starTwinkle{0%,100%{opacity:.06;transform:scale(.5)}50%{opacity:.42;transform:scale(1.2)}}@keyframes noteRise{0%{transform:translateY(120px) rotate(-12deg);opacity:0}25%{opacity:.3}100%{transform:translateY(-220px) rotate(18deg);opacity:0}}@keyframes dustDrift{0%,100%{transform:translate(0,0);opacity:.08}50%{transform:translate(45px,-50px);opacity:.28}}@keyframes floatingWord{0%{opacity:0;transform:scale(.82) translateY(35px);filter:blur(12px)}28%,62%{opacity:1;transform:scale(1) translateY(0);filter:blur(0)}100%{opacity:0;transform:scale(1.1) translateY(-35px);filter:blur(7px)}}
@keyframes milestoneWhisper{0%,100%{opacity:0;transform:translate(-50%,28px);filter:blur(9px)}18%,78%{opacity:1;transform:translate(-50%,0);filter:blur(0)}}@keyframes milestoneHeartbeat{0%,100%{opacity:0;transform:translate(-50%,30px) scale(.92)}16%{opacity:1;transform:translate(-50%,0) scale(1.04)}22%,72%{opacity:1;transform:translate(-50%,0) scale(1)}78%{transform:translate(-50%,0) scale(1.03)}}@keyframes milestoneScatter{0%{opacity:0;transform:translate(-50%,22px);letter-spacing:.35em}22%,72%{opacity:1;transform:translate(-50%,0);letter-spacing:normal}100%{opacity:0;transform:translate(-50%,-18px);letter-spacing:.2em}}@keyframes underlineDraw{0%,12%,100%{transform:scaleX(0)}35%,78%{transform:scaleX(1)}}@keyframes frameHeartbeat{40%{transform:scale(.992);box-shadow:0 0 55px var(--experience-glow)}}@keyframes frameEcho{35%{filter:brightness(1.18)}70%{filter:brightness(.92)}}@keyframes atmosphereScatter{50%{transform:scale(1.18);filter:blur(3px)}}
@media(max-width:600px){.preview-card{padding:20px}.preview-motion{height:138px;margin:-4px -4px 20px}.preview-blueprint{gap:5px}.preview-blueprint span{font-size:.61rem}.floating-word{top:16%}.milestone{bottom:9%;padding:15px 17px}.experience-atmosphere i{opacity:.75}}

/* v0.3.1 — humane waiting, readable story beats, and a gentle 404 */
body.is-busy{overflow:hidden}.creation-loader{position:fixed;inset:0;z-index:250;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:max(28px,env(safe-area-inset-top)) 24px max(28px,env(safe-area-inset-bottom));color:#fff8f2;background:radial-gradient(circle at 50% 42%,rgba(126,45,105,.52),transparent 32%),radial-gradient(circle at 22% 12%,rgba(215,123,145,.17),transparent 28%),#130c17;opacity:1;transition:opacity .26s ease}.creation-loader.leaving{opacity:0}.creation-loader-visual{position:relative;width:min(290px,66vw);aspect-ratio:1;display:grid;place-items:center;margin-bottom:8px}.creation-logo{position:relative;z-index:2;width:58%;padding:18px;border-radius:50%;filter:drop-shadow(0 16px 36px rgba(0,0,0,.28));animation:creationBreathe 3.4s ease-in-out infinite}.creation-logo img{display:block;width:100%;height:auto}.creation-orbit{position:absolute;border-radius:50%;border:1px solid rgba(255,255,255,.16)}.orbit-outer{inset:3%;border-style:dashed;animation:creationSpin 13s linear infinite}.orbit-inner{inset:19%;border-color:rgba(233,158,182,.32);animation:creationSpin 8s linear reverse infinite}.creation-spark{position:absolute;width:8px;height:8px;border-radius:50%;background:#f0b0c2;box-shadow:0 0 20px 7px rgba(224,125,161,.28);z-index:3}.spark-one{top:12%;right:23%;animation:creationFloat 4.2s ease-in-out infinite}.spark-two{bottom:21%;left:9%;width:5px;height:5px;animation:creationFloat 5.2s -1.6s ease-in-out infinite}.spark-three{top:47%;right:2%;width:4px;height:4px;animation:creationFloat 3.8s -2.4s ease-in-out infinite}.creation-loader .eyebrow{margin-top:2px;color:#e5a0b5}.creation-loader h2{max-width:760px;margin:0;font-family:"Markazi Text",Tahoma,serif;font-size:clamp(2.35rem,7vw,4.9rem);line-height:1.2}.creation-loader-message{min-height:3.8em;max-width:620px;margin:18px auto 19px;color:rgba(255,255,255,.68);font-size:clamp(.88rem,2.8vw,1.08rem);line-height:1.9;transition:opacity .18s,transform .18s}.creation-loader-message.changing{opacity:0;transform:translateY(7px)}.creation-progress{width:min(250px,58vw);height:2px;overflow:hidden;border-radius:99px;background:rgba(255,255,255,.12)}.creation-progress i{display:block;width:48%;height:100%;border-radius:inherit;background:linear-gradient(90deg,transparent,#eba6b9,transparent);animation:creationProgress 1.65s ease-in-out infinite}
.transition-veil.playing span{animation-duration:var(--transition-duration,4.6s)}.transition-veil[data-transition="iris"] i,.transition-veil[data-transition="curtain"] i,.transition-veil[data-transition="ripple"] i,.transition-veil[data-transition="light-sweep"] i,.transition-veil[data-transition="dissolve"] i,.transition-veil[data-transition="ink-spread"] i{animation-duration:var(--transition-duration,4.6s)}.floating-word.show{animation-duration:var(--accent-duration,4.2s)}.milestone[data-effect="whisper"].show,.milestone[data-effect="heartbeat"].show,.milestone[data-effect="scatter"].show{animation-duration:var(--milestone-duration,6.4s)}.milestone[data-effect="underline"].show:after{animation-duration:var(--milestone-duration,6.4s)}
.not-found-page{margin:0;min-height:100svh;overflow:hidden;color:#fff8f2;background:radial-gradient(circle at 50% 35%,rgba(128,46,108,.42),transparent 30%),radial-gradient(circle at 15% 8%,rgba(218,124,148,.12),transparent 25%),#130c17}.not-found-shell{position:relative;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:max(30px,env(safe-area-inset-top)) 22px max(30px,env(safe-area-inset-bottom));isolation:isolate}.not-found-shell:before,.not-found-shell:after{content:"";position:absolute;border:1px solid rgba(255,255,255,.07);border-radius:50%;z-index:-1;animation:lostOrbit 18s linear infinite}.not-found-shell:before{width:min(700px,88vw);aspect-ratio:1}.not-found-shell:after{width:min(520px,65vw);aspect-ratio:1;border-style:dashed;animation-direction:reverse;animation-duration:13s}.lost-gift{position:relative;width:min(230px,55vw);aspect-ratio:1;display:grid;place-items:center;color:inherit;text-decoration:none;margin-bottom:-8px;animation:lostGiftFloat 4.4s ease-in-out infinite}.lost-gift svg{width:76%;overflow:visible;filter:drop-shadow(0 24px 35px rgba(0,0,0,.3));transition:transform .35s ease}.lost-gift:hover svg,.lost-gift:focus-visible svg{transform:scale(1.08) rotate(-3deg)}.lost-path{position:absolute;inset:3%;border:1px dashed rgba(238,167,188,.24);border-radius:47% 53% 55% 45%;animation:lostOrbit 8s linear infinite}.gift-ribbon,.gift-lid,.gift-box-shape{fill:#6f2d61;stroke:#e9a7bb;stroke-width:2}.gift-lid{fill:#8b3c72}.gift-band{fill:#d77b91}.gift-heart{fill:#fff3f6;transform-origin:95px 116px;animation:lostHeart 2.2s ease-in-out infinite}.lost-gift-hint{position:absolute;right:50%;bottom:-2px;transform:translateX(50%);width:max-content;max-width:82vw;color:rgba(255,255,255,.5);font-size:.69rem}.error-code{position:absolute;top:clamp(22px,7vh,72px);left:50%;transform:translateX(-50%);margin:0;color:rgba(255,255,255,.035);font:700 clamp(8rem,33vw,24rem)/1 Tahoma,sans-serif;letter-spacing:-.08em;z-index:-1}.not-found-shell .eyebrow{margin-top:20px}.not-found-shell h1{font-family:"Markazi Text",Tahoma,serif;font-size:clamp(3.5rem,12vw,7rem);line-height:1;margin:0 0 18px}.not-found-shell>p:not(.eyebrow):not(.error-code){max-width:580px;margin:0;color:rgba(255,255,255,.66);font-size:clamp(.92rem,3vw,1.08rem);line-height:2}.not-found-actions{display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap;margin-top:28px}.not-found-actions .gift-button{gap:14px}.quiet-link{color:rgba(255,255,255,.58);font-size:.78rem;text-underline-offset:6px}
@keyframes creationSpin{to{transform:rotate(360deg)}}@keyframes creationBreathe{50%{transform:scale(1.055);filter:drop-shadow(0 20px 45px rgba(222,118,158,.25))}}@keyframes creationFloat{50%{transform:translateY(-16px) scale(1.25);opacity:.55}}@keyframes creationProgress{0%{transform:translateX(135%)}50%{transform:translateX(-15%)}100%{transform:translateX(-165%)}}@keyframes lostOrbit{to{transform:rotate(360deg)}}@keyframes lostGiftFloat{50%{transform:translateY(-12px) rotate(1.5deg)}}@keyframes lostHeart{50%{transform:scale(1.13)}}
@keyframes transitionText{0%,10%{opacity:0;transform:translateY(18px)}22%,82%{opacity:1;transform:none}100%{opacity:0;transform:translateY(-12px)}}
@media(max-width:600px){.creation-loader-visual{width:min(230px,62vw)}.creation-loader h2{font-size:clamp(2.25rem,11vw,3.5rem)}.creation-loader-message{max-width:330px}.not-found-actions{flex-direction:column;gap:14px}.lost-gift{width:min(205px,54vw)}.not-found-shell h1{font-size:clamp(3.3rem,16vw,5.2rem)}}

/* v0.3.2 — input quality and measurable AI usage */
.form-alert{margin:4px 0 18px;padding:14px 16px;border:1px solid rgba(173,62,85,.24);border-radius:14px;background:#fff0f1;color:#7e263d;font-size:.8rem;font-weight:700;line-height:1.8;box-shadow:0 9px 28px rgba(114,34,65,.08)}
input[aria-invalid="true"],textarea[aria-invalid="true"]{border-color:#b43f5e;background:#fff9fa;box-shadow:0 0 0 3px rgba(180,63,94,.11)}
.preview-badges{display:flex;flex-direction:column;align-items:flex-end;gap:7px}.cost-badge{background:#e7f2ec;color:#286246;white-space:nowrap}
.stats-dialog{max-height:calc(100svh - 32px);overflow:auto}.stats-dialog h2{margin-bottom:24px}.impact-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.impact-card{min-height:118px;display:flex;flex-direction:column;justify-content:center;padding:14px;border:1px solid rgba(73,43,65,.1);border-radius:18px;background:linear-gradient(145deg,#fff,#f4ebef)}.impact-card small{color:#887681;font-size:.62rem;font-weight:700}.impact-card strong{margin:8px 0 3px;color:#46213e;font-size:1.08rem}.impact-card span{color:#998b94;font-size:.55rem;line-height:1.55}.cost-note{margin:11px 2px 20px;color:#887b84;font-size:.62rem;line-height:1.7}.cost-note a{color:#6e315c;text-underline-offset:3px}.budget-card{display:grid;grid-template-columns:1fr;gap:12px;padding:17px 18px;border-radius:18px;background:#2c182a;color:#fff}.budget-card>div{display:flex;justify-content:space-between;gap:16px;align-items:center}.budget-card strong{font-size:.78rem}.budget-card span{color:rgba(255,255,255,.65);font-size:.67rem}.budget-card>i{display:block;height:5px;border-radius:99px;background:linear-gradient(to left,#d77b91 0 var(--used),rgba(255,255,255,.11) var(--used) 100%)}.stats-section{margin-top:28px}.stats-section h3{margin:0 0 13px;color:#44213c;font-family:"Markazi Text",Tahoma,serif;font-size:1.5rem}.stats-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:15px;background:#fff}.stats-table{min-width:650px}.error-list{display:grid;gap:8px}.error-list article{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 14px;border:1px solid var(--line);border-radius:13px;background:rgba(255,255,255,.65)}.error-list article div{display:flex;flex-direction:column;gap:5px}.error-list strong{font-size:.74rem}.error-list span{color:#8d7e87;font-size:.61rem}.error-list code{direction:ltr;padding:4px 7px;border-radius:7px;background:#eee5ea;color:#73415f;font-size:.6rem}
@media(max-width:760px){.impact-grid{grid-template-columns:1fr 1fr}.preview-heading{flex-direction:column}.preview-badges{align-items:flex-start;flex-direction:row;flex-wrap:wrap}.budget-card>div{align-items:flex-start;flex-direction:column;gap:5px}}

/* v0.4.0 — closed beta accounts, credits, and creator workspace */
.workspace-actions{display:flex;align-items:center;gap:9px}.compact-button{padding:10px 17px;font-size:.72rem}.text-action{appearance:none;border:0;background:transparent;color:#7b3c65;text-decoration:underline;text-underline-offset:5px;font-weight:800;font-size:.73rem;cursor:pointer;padding:9px}.text-action:disabled,button:disabled{opacity:.5;cursor:wait}.full-text{width:100%;margin-top:10px}.user-account-bar,.resume-notice{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:25px;padding:16px 18px;border-radius:17px}.user-account-bar{background:#2c182a;color:#fff}.user-account-bar>div,.resume-notice>div:first-child{display:flex;flex-direction:column;gap:4px}.user-account-bar small{color:rgba(255,255,255,.55);font-size:.62rem}.user-account-bar strong{font-size:.75rem;direction:ltr;text-align:right}.credit-badge{padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.11);color:#f5cad8;font-size:.7rem;font-weight:800;white-space:nowrap}.credit-badge[data-empty="true"]{background:#f5dce4;color:#6e284f}.resume-notice{border:1px solid rgba(100,49,82,.15);background:#f3e7ed}.resume-notice strong{font-family:"Markazi Text",Tahoma,serif;font-size:1.2rem;color:#512344}.resume-notice span{color:#857680;font-size:.69rem}.resume-actions{display:flex!important;align-items:center;flex-direction:row!important;gap:5px}.quota-dialog{width:min(620px,calc(100% - 24px));border:0;border-radius:28px;padding:36px;background:radial-gradient(circle at 80% 5%,rgba(214,123,145,.18),transparent 28%),#fffaf7;color:#2c182a;box-shadow:0 30px 100px rgba(0,0,0,.3);text-align:center}.quota-dialog::backdrop{background:rgba(25,14,23,.68);backdrop-filter:blur(6px)}.quota-dialog h2{margin:0;font-family:"Markazi Text",Tahoma,serif;font-size:clamp(2.2rem,7vw,3.8rem);line-height:1.2}.quota-dialog>p:not(.eyebrow){max-width:480px;margin:18px auto 25px;color:#746570;line-height:1.9}.quota-dialog .preview-actions{justify-content:center}.quota-heart{display:grid;place-items:center;width:66px;height:66px;margin:0 auto 18px;border-radius:50%;background:#f2e1e8;color:#9e4f75;font:700 2rem/1 Tahoma;animation:lostHeart 2.2s ease-in-out infinite}

.auth-page,.account-page{min-height:100vh;background:linear-gradient(145deg,#f8f3ef,#eee3e8)}.auth-shell{min-height:calc(100svh - 96px);display:grid;grid-template-columns:1fr .86fr;align-items:center;gap:80px;padding-block:55px}.auth-story h1,.account-hero h1{margin:0 0 25px;color:#35192f;font-family:"Markazi Text",Tahoma,serif;font-size:clamp(3.5rem,7vw,6.6rem);line-height:1}.auth-story>p:last-of-type{max-width:500px;color:#766874;line-height:2}.auth-card{position:relative;padding:clamp(25px,5vw,48px);border:1px solid rgba(255,255,255,.9);border-radius:30px;background:rgba(255,255,255,.76);box-shadow:var(--shadow)}.auth-card h2{margin:0 0 14px;font-family:"Markazi Text",Tahoma,serif;font-size:2.6rem}.auth-note{margin:0 0 23px;color:#7d7079;font-size:.8rem;line-height:1.9}.otp-input{text-align:center;font-size:1.6rem;font-weight:800;letter-spacing:.5em}.turnstile-slot{min-height:66px;margin:3px 0 14px}.soft-alert{display:flex;flex-direction:column;gap:6px;margin-bottom:20px;padding:15px;border-radius:15px;background:#fbefdf;color:#755326}.soft-alert span{font-size:.72rem}.auth-orbit{position:relative;width:min(280px,65vw);aspect-ratio:1;margin:30px auto 0;display:grid;place-items:center;color:#6c315b;font-family:"Markazi Text",Tahoma,serif;font-size:2.4rem}.auth-orbit:before,.auth-orbit:after,.auth-orbit i{content:"";position:absolute;border:1px solid rgba(94,36,79,.13);border-radius:50%;animation:spin 18s linear infinite}.auth-orbit:before{inset:0}.auth-orbit:after{inset:18%;border-style:dashed;animation-direction:reverse;animation-duration:12s}.auth-orbit i{inset:34%;background:rgba(255,255,255,.55);box-shadow:0 18px 60px rgba(93,36,79,.12)}.auth-orbit span{position:relative;z-index:1}
.auth-spam-note{display:grid;grid-template-columns:46px 1fr;align-items:center;gap:13px;margin:6px 0 22px;padding:16px 17px;border:1.5px solid rgba(179,63,99,.25);border-radius:17px;background:linear-gradient(145deg,#fff7f9,#f6e9ef);box-shadow:0 10px 26px rgba(93,36,79,.08);color:#695661;line-height:1.75}.auth-spam-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#6a2b59;color:#fff5f8;font:700 1.15rem/1 Tahoma,sans-serif;box-shadow:0 7px 17px rgba(93,36,79,.2)}.auth-spam-copy{display:flex;min-width:0;flex-direction:column;gap:3px}.auth-spam-note strong{display:block;color:#46213e;font-size:.98rem;line-height:1.55}.auth-spam-note .auth-spam-copy>span{color:#695661;font-size:.84rem;line-height:1.75}.auth-spam-note b{color:#9d3158;font-weight:800}
.invite-welcome{display:flex;align-items:flex-start;gap:14px;margin:0 0 24px;padding:17px;border:1px solid rgba(161,71,112,.18);border-radius:18px;background:linear-gradient(145deg,rgba(248,226,235,.9),rgba(255,255,255,.76));box-shadow:0 12px 34px rgba(93,36,79,.07)}.invite-welcome-mark{display:grid;place-items:center;flex:0 0 auto;width:37px;height:37px;border-radius:50%;background:#5d244f;color:#f8d8e3}.invite-welcome>div{display:flex;flex-direction:column;gap:4px}.invite-welcome .eyebrow{margin:0 0 2px;font-size:.61rem}.invite-welcome strong{color:#46213e;font-family:"Markazi Text",Tahoma,serif;font-size:1.45rem;line-height:1.35}.invite-welcome>div>span{color:#756774;font-size:.68rem;line-height:1.75}

.account-shell{padding-block:70px}.account-hero{display:grid;grid-template-columns:1fr 260px;align-items:center;gap:55px}.account-hero h1{font-size:clamp(3.7rem,7vw,6rem)}.account-email{direction:ltr;text-align:right;color:#847681;font-size:.8rem}.credit-card{min-height:230px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:120px 120px 28px 28px;background:radial-gradient(circle at 50% 25%,rgba(215,123,145,.25),transparent 34%),#2c182a;color:#fff;box-shadow:var(--shadow)}.credit-card small{color:#dba6b7;font-size:.7rem}.credit-card strong{margin:10px 0;font-size:4.2rem}.credit-card span{color:rgba(255,255,255,.55);font-size:.65rem}.active-draft-card,.limit-card{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-top:38px;padding:28px;border-radius:24px;border:1px solid rgba(93,36,79,.13);background:rgba(255,255,255,.68)}.active-draft-card h2,.limit-card h2,.my-gifts h2{margin:0;font-family:"Markazi Text",Tahoma,serif;font-size:2rem}.limit-card>span{display:grid;place-items:center;flex:0 0 auto;width:70px;height:70px;border-radius:50%;background:#f0dce5;color:#a8567b;font-size:2rem}.limit-card>div{flex:1}.limit-card p:not(.eyebrow){margin:9px 0 0;color:#7d6f78;font-size:.78rem;line-height:1.8}.my-gifts{margin-top:65px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.section-heading>span{color:#8b7e87;font-size:.72rem}.gift-list{display:grid;gap:11px;margin-top:22px}.my-gift-card{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:20px 22px;border:1px solid rgba(71,39,62,.1);border-radius:19px;background:rgba(255,255,255,.72)}.my-gift-card>div:first-child{display:flex;flex-direction:column;gap:7px}.my-gift-card small{color:#93868f;font-size:.62rem}.my-gift-card strong{font-family:"Markazi Text",Tahoma,serif;font-size:1.4rem}.gift-status{width:max-content;padding:5px 9px;border-radius:999px;font-size:.58rem;font-weight:800}.gift-status.live{background:#e6f3eb;color:#347152}.gift-status.paused{background:#eee8eb;color:#766a72}.gift-row-actions{display:flex;align-items:center;gap:8px}.empty-gifts{min-height:220px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px;border:1px dashed rgba(82,38,69,.2);border-radius:22px;color:#685b64}.empty-gifts span{font-size:2rem;color:#a45379}.empty-gifts a{color:#71345f;font-size:.75rem;text-underline-offset:5px}

.beta-admin{padding-top:5px;border-top:1px solid var(--line)}.beta-admin h4{margin:24px 0 10px;color:#5a2b4d;font-size:.78rem}.invite-form{display:grid;grid-template-columns:1fr auto;gap:8px;margin:10px 0 20px}.invite-form input{margin:0}.admin-list{display:grid;gap:7px}.admin-list article{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.7)}.admin-list article>div:first-child{display:flex;min-width:0;flex-direction:column;gap:4px}.admin-list strong{overflow:hidden;text-overflow:ellipsis;direction:ltr;text-align:right;font-size:.7rem}.admin-list span{color:#8e8089;font-size:.58rem}.admin-list article>div:last-child{display:flex;align-items:center;gap:4px}.admin-list .text-action{font-size:.62rem;padding:6px}.admin-list .ghost-button{font-size:.62rem;padding:7px 10px}
.invite-link-panel{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:15px 0 12px;padding:18px;border:1px solid rgba(103,46,84,.14);border-radius:18px;background:linear-gradient(145deg,#f4e7ed,#fff)}.invite-link-panel h4{margin:0 0 5px}.invite-link-panel p{max-width:510px;margin:0;color:#80717b;font-size:.65rem;line-height:1.75}.invite-link-panel .primary-button{flex:0 0 auto}.invite-link-reveal{display:grid;grid-template-columns:1fr auto;gap:7px 12px;margin:10px 0 22px;padding:15px;border-radius:16px;background:#2c182a;color:#fff}.invite-link-reveal>strong{font-size:.72rem}.invite-link-reveal>span{grid-column:1/-1;color:rgba(255,255,255,.57);font-size:.59rem;line-height:1.7}.invite-link-reveal>input{grid-column:1/2;margin:0;border:0;background:rgba(255,255,255,.95);font-size:.67rem}.invite-link-actions{display:flex;align-items:center;gap:4px}.invite-link-reveal .ghost-button{border-color:rgba(255,255,255,.24);color:#fff}.invite-link-reveal .text-action{color:#f3c9d7}.invite-links-list strong[dir="rtl"]{direction:rtl;text-align:right}.invite-links-list span{direction:ltr;text-align:right}
.gift-reply-actions{margin:34px auto 10px;padding:24px;border-top:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;gap:13px;flex-wrap:wrap}.gift-reply-actions p{flex-basis:100%;margin:0 0 5px;color:rgba(255,255,255,.62);font-size:.78rem;line-height:1.8}.gift-reply-actions .quiet-link{padding:12px}

@media(max-width:800px){.auth-shell{grid-template-columns:1fr;gap:25px;padding-block:38px}.auth-story{text-align:center}.auth-story>p:last-of-type{margin-inline:auto}.auth-orbit{display:none}.account-hero{grid-template-columns:1fr;text-align:center}.account-email{text-align:center}.credit-card{width:min(230px,70vw);margin-inline:auto}.active-draft-card,.limit-card{align-items:stretch;flex-direction:column;text-align:center}.limit-card>span{margin-inline:auto}.my-gift-card{align-items:flex-start;flex-direction:column}.gift-row-actions{width:100%}.gift-row-actions .ghost-button{flex:1}.resume-notice{align-items:flex-start;flex-direction:column}.resume-actions{width:100%;flex-wrap:wrap}.workspace-actions{gap:5px}.workspace-actions .ghost-button,.workspace-actions .primary-button{padding:9px 12px;font-size:.65rem}}
@media(max-width:520px){.studio-header .brand small{display:none}.studio-header .brand-logo{width:105px}.account-shell{padding-block:42px}.auth-story h1{font-size:clamp(3.2rem,17vw,4.7rem)}.auth-card{padding:23px;border-radius:22px}.auth-spam-note{grid-template-columns:42px 1fr;padding:14px;gap:11px}.auth-spam-icon{width:40px;height:40px}.auth-spam-note strong{font-size:.92rem}.auth-spam-note .auth-spam-copy>span{font-size:.8rem}.account-hero h1{font-size:clamp(3.3rem,16vw,4.8rem)}.user-account-bar{align-items:flex-start;flex-direction:column}.invite-form{grid-template-columns:1fr}.admin-list article{align-items:flex-start;flex-direction:column}.admin-list article>div:last-child{width:100%;flex-wrap:wrap}.invite-link-panel{align-items:stretch;flex-direction:column}.invite-link-panel .primary-button{width:100%}.invite-link-reveal{grid-template-columns:1fr}.invite-link-reveal>input{grid-column:1}.invite-link-actions{justify-content:space-between}}
.auth-consent{display:block;margin:13px auto 0;text-align:center;color:#94868f;font-size:.6rem;line-height:1.7}.auth-consent a{color:#71345f;text-underline-offset:3px}.policy-page{min-height:100vh;background:linear-gradient(145deg,#f8f3ef,#eee3e8)}.policy-shell{width:min(820px,calc(100% - 36px));padding-block:70px}.policy-shell>h1{margin:0;font-family:"Markazi Text",Tahoma,serif;color:#35192f;font-size:clamp(3.5rem,8vw,6rem);line-height:1}.policy-updated{color:#9a8d95;font-size:.68rem}.policy-shell section{margin-top:32px;padding-top:25px;border-top:1px solid var(--line)}.policy-shell h2{margin:0 0 10px;font-family:"Markazi Text",Tahoma,serif;color:#542246;font-size:1.8rem}.policy-shell section p,.policy-owner{color:#6f626b;font-size:.82rem;line-height:2}.policy-owner{margin-top:40px;padding:20px;border-radius:15px;background:rgba(255,255,255,.65)}

/* v0.5.2 — one safe display system for large Ruqaa headings */
:is(.hero h1,.studio-intro h1,.auth-story h1,.account-hero h1,.policy-shell>h1,.not-found-shell h1,.scene h1,.scene h2,.creation-loader h2,.quota-dialog h2,.preview h2,.published h2,.stats-dialog h2,.save-dialog h2,.auth-card h2,.active-draft-card h2,.limit-card h2,.my-gifts h2){text-wrap:balance;overflow-wrap:normal;letter-spacing:0}
.hero h1,.studio-intro h1{font-size:clamp(3.7rem,7vw,6.7rem);line-height:1.16;margin-bottom:38px}
.auth-story h1,.account-hero h1{font-size:clamp(3.25rem,6vw,5.75rem);line-height:1.24;margin-bottom:32px}
.scene h1{font-size:clamp(2.8rem,9vw,5.5rem);line-height:1.22;margin-bottom:30px}.scene h2{font-size:clamp(2.5rem,7.5vw,4.4rem);line-height:1.24;margin-bottom:28px}
.policy-shell>h1{font-size:clamp(3.1rem,7vw,5.4rem);line-height:1.2;margin-bottom:16px}
.not-found-shell h1{font-size:clamp(3.2rem,10vw,6rem);line-height:1.18;margin-bottom:24px}
.creation-loader h2{font-size:clamp(2.25rem,6vw,4.35rem);line-height:1.28}.quota-dialog h2{font-size:clamp(2.1rem,6vw,3.55rem);line-height:1.28}
.preview h2,.published h2,.stats-dialog h2,.save-dialog h2,.auth-card h2{line-height:1.28}.active-draft-card h2,.limit-card h2,.my-gifts h2{line-height:1.3}
@media(max-width:600px){.hero h1,.studio-intro h1{font-size:clamp(3.05rem,14.5vw,4.6rem);line-height:1.19;margin-bottom:29px}.auth-story h1,.account-hero h1{font-size:clamp(2.95rem,14vw,4.25rem);line-height:1.26;margin-bottom:27px}.scene h1{font-size:clamp(2.65rem,13vw,4.35rem);line-height:1.24}.scene h2{font-size:clamp(2.35rem,11vw,3.8rem);line-height:1.26}.policy-shell>h1{font-size:clamp(2.9rem,13vw,4.25rem);line-height:1.22}.not-found-shell h1{font-size:clamp(3rem,14vw,4.55rem);line-height:1.2}.creation-loader h2{font-size:clamp(2.15rem,10vw,3.35rem);line-height:1.3}}

/* v0.5.4 — isolate the two expressive login lines and reserve room for tall Ruqaa ascenders */
.auth-story>.eyebrow{margin-bottom:0}.auth-story .auth-headline{display:flex;flex-direction:column;align-items:flex-start;gap:clamp(26px,2.6vw,42px);padding-top:clamp(48px,4.4vw,70px);line-height:1.04;margin-bottom:38px}.auth-headline>span{display:block;padding-block:.04em .08em}
@media(max-width:800px){.auth-story .auth-headline{align-items:center;margin-inline:auto;gap:clamp(22px,5vw,32px);padding-top:clamp(38px,9vw,54px);line-height:1.07;margin-bottom:32px}}

/* v0.6.0 — explicit creation journey, mapped inputs, and a promised souvenir */
.hero-clarifier{display:flex;align-items:center;gap:9px;width:fit-content;max-width:620px;margin:-16px 0 27px;padding:10px 14px;border:1px solid rgba(255,255,255,.11);border-radius:12px;background:rgba(255,255,255,.055);color:rgba(255,255,255,.58);font-size:.73rem;line-height:1.75}.hero-clarifier b{color:#f0b4c4;white-space:nowrap}
.studio-intro h1{font-size:clamp(3.1rem,5.6vw,5.5rem)}.studio-clarity{display:grid;grid-template-columns:38px 1fr;gap:12px;align-items:flex-start;margin:28px 0 0;padding:16px;border:1px solid rgba(101,48,82,.13);border-radius:17px;background:rgba(255,255,255,.52);box-shadow:0 10px 35px rgba(76,35,62,.06)}.studio-clarity>span{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#5d244f;color:#f8dbe4}.studio-clarity strong{display:block;margin:1px 0 5px;color:#48203e;font-size:.8rem}.studio-clarity p{margin:0;color:#786a74;font-size:.7rem;line-height:1.8}.stepper{flex-wrap:wrap}.stepper li{display:inline-flex;align-items:center;gap:7px}.stepper li b{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:rgba(59,29,53,.08);font-size:.62rem}.stepper li.active b{background:rgba(255,255,255,.16)}
.form-section{margin:0 0 28px;padding:25px 25px 5px;border:1px solid rgba(82,42,69,.1);border-radius:22px;background:rgba(255,255,255,.5)}.form-section-heading{display:grid;grid-template-columns:42px 1fr;gap:13px;align-items:start;margin-bottom:22px}.form-section-heading>span{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:#3a1b35;color:#fff;font-size:.82rem;font-weight:800;box-shadow:0 9px 22px rgba(59,27,53,.18)}.form-section-heading h2{margin:0 0 5px;color:#3d2037;font-family:Tahoma,"Segoe UI",Arial,sans-serif;font-size:1.03rem;line-height:1.55}.form-section-heading p{margin:0;color:#83757e;font-size:.69rem;line-height:1.7}.field-help{display:block;margin:7px 2px 0;color:#8b7d86;font-size:.63rem;font-weight:500;line-height:1.7}.strong-help{color:#71385d;font-weight:700}.form-section textarea{min-height:112px}.form-section label:last-child{margin-bottom:16px}
.gift-map{margin:8px 0 26px;padding:24px;border-radius:24px;background:radial-gradient(circle at 92% 4%,rgba(214,123,145,.24),transparent 30%),linear-gradient(145deg,#2e172b,#1b101b);color:#fff;box-shadow:0 20px 48px rgba(49,23,44,.18)}.gift-map-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px}.gift-map-heading .eyebrow{margin-bottom:4px}.gift-map-heading h2{margin:0;font-family:"Markazi Text",Tahoma,serif;font-size:2rem;line-height:1.35}.gift-map-heading>span{padding:7px 10px;border:1px solid rgba(255,255,255,.14);border-radius:999px;color:rgba(255,255,255,.6);font-size:.62rem;white-space:nowrap}.gift-map-track{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);gap:7px;align-items:stretch}.gift-map-track>i{align-self:center;color:#d8879f;font-style:normal;font-size:.9rem}.gift-map-track article{position:relative;min-width:0;padding:14px 12px;border:1px solid rgba(255,255,255,.09);border-radius:15px;background:rgba(255,255,255,.05)}.gift-map-track article>b{position:absolute;top:10px;left:10px;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:rgba(215,123,145,.17);color:#edb8c7;font-size:.6rem}.gift-map-track small,.gift-map-track strong,.gift-map-track p{display:block}.gift-map-track small{margin-bottom:9px;color:#d78aa0;font-size:.58rem;font-weight:800}.gift-map-track strong{min-height:3.2em;color:#fff7f9;font-size:.7rem;line-height:1.6}.gift-map-track p{margin:8px 0 0;color:rgba(255,255,255,.48);font-size:.59rem;line-height:1.65}
.preview-choice-label{margin:26px 0 -10px;color:#5e4f59;font-size:.75rem;font-weight:800}.recipient-preview-heading{position:relative;z-index:2;display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:0 0 17px}.recipient-preview-heading span{color:#dd91a8;font-size:.66rem;font-weight:800}.recipient-preview-heading strong{max-width:310px;text-align:left;color:rgba(255,255,255,.63);font-size:.67rem;line-height:1.7}.recipient-preview-grid{position:relative;z-index:2;display:grid;grid-template-columns:1fr 1fr;gap:10px}.recipient-preview-grid article{min-width:0;padding:18px;border:1px solid rgba(255,255,255,.1);border-radius:17px;background:rgba(0,0,0,.16)}.recipient-preview-grid article>small{display:block;margin-bottom:10px;color:#db90a7;font-size:.62rem;font-weight:800}.recipient-preview-grid article>strong{display:block;color:#fff6f8;font-family:"Markazi Text",Tahoma,serif;font-size:1.25rem;line-height:1.45}.recipient-preview-grid h3{margin:8px 0;color:#fff8fa;font-family:"Markazi Text",Tahoma,serif;font-size:1.55rem;line-height:1.42}.recipient-preview-grid article>p{margin:8px 0 0;color:rgba(255,255,255,.6);font-size:.69rem;line-height:1.8}.recipient-preview-grid #previewKicker{margin:0;color:#e4a6b8;font-size:.62rem}.recipient-preview-grid blockquote{margin:8px 0 0;padding:14px;border:1px solid rgba(255,255,255,.11);border-radius:13px;color:#f6d8e1;font-family:"Markazi Text",Tahoma,serif;font-size:1.15rem;line-height:1.7}.recipient-preview-video{grid-column:1/-1}.recipient-preview-grid .mini-timeline{grid-template-columns:1fr 1fr;margin:15px 0 0}.recipient-preview-grid .mini-timeline span{font-size:.65rem;line-height:1.65}.preview-blueprint-wrap{position:relative;z-index:2;margin-top:16px;padding-top:14px;border-top:1px solid rgba(255,255,255,.1)}.preview-blueprint-wrap>small{color:rgba(255,255,255,.48);font-size:.61rem}.preview-blueprint-wrap .preview-blueprint{margin:10px 0 0}
#introScene{overflow-y:auto}.intro-content{padding-block:24px}.gift-promise{max-width:610px;margin:16px auto 13px;padding:13px 17px;border:1px solid rgba(255,255,255,.12);border-radius:16px;background:rgba(255,255,255,.045);color:rgba(255,255,255,.73);font-size:.76rem;line-height:1.85}.gift-route{display:flex;align-items:center;justify-content:center;gap:9px;flex-wrap:wrap;color:rgba(255,255,255,.52);font-size:.65rem}.gift-route span{padding:7px 10px;border:1px solid rgba(255,255,255,.11);border-radius:999px;background:rgba(255,255,255,.035)}.gift-route i{color:var(--experience-accent);font-style:normal}.gift-route .gift-route-reward{border-color:color-mix(in srgb,var(--experience-accent) 44%,transparent);color:#fff3f7;box-shadow:0 0 22px var(--experience-glow)}.intro-content .headphone-mark{margin-top:22px}.video-next{display:flex;flex-direction:column;align-items:center;gap:2px}.video-next small{color:rgba(255,255,255,.38);font-size:.56rem}.video-next strong{color:#f2c6d2;font-size:.7rem}.skip-button.is-ready{border-color:rgba(240,198,211,.8);animation:souvenirInvite 2.4s ease-in-out 2}.skip-button.is-ready span{color:#fff}.skip-button.is-ready small{color:rgba(255,255,255,.76)}
@keyframes souvenirInvite{0%,100%{transform:translateY(0);box-shadow:0 10px 32px rgba(0,0,0,.28)}50%{transform:translateY(-3px);box-shadow:0 14px 42px rgba(215,123,145,.24)}}
@media(max-width:900px){.hero-clarifier{margin-inline:auto;text-align:right}.studio-clarity{text-align:right}.gift-map-track{grid-template-columns:1fr}.gift-map-track>i{transform:rotate(-90deg);justify-self:center}.recipient-preview-heading{align-items:flex-start;flex-direction:column}.recipient-preview-heading strong{text-align:right}.recipient-preview-grid{grid-template-columns:1fr}.recipient-preview-video{grid-column:auto}.recipient-preview-grid .mini-timeline{grid-template-columns:1fr}.form-section{padding:21px 18px 3px}}
@media(max-width:600px){.studio-intro h1{font-size:clamp(2.85rem,13.4vw,4.15rem)}.studio-clarity{margin-top:20px}.stepper{display:grid;grid-template-columns:1fr;justify-items:stretch}.stepper li{justify-content:center}.form-section{margin-bottom:19px;border-radius:18px}.form-section-heading{grid-template-columns:38px 1fr}.form-section-heading>span{width:38px;height:38px}.gift-map{padding:19px 16px}.gift-map-heading{align-items:flex-start;flex-direction:column;gap:9px}.gift-map-heading h2{font-size:1.65rem}.gift-map-track article{padding:15px}.recipient-preview-grid article{padding:15px}.gift-promise{font-size:.7rem;line-height:1.75}.gift-route{gap:6px}.gift-route span{padding:6px 8px}.intro-content .headphone-mark{margin-top:17px}.intro-content .listening-note{margin:10px 0 18px}.video-next{display:none}.skip-button{padding:9px 13px}.skip-button span{font-size:.78rem}.skip-button small{font-size:.58rem}}

/* v0.6.1 — calm consent copy and readable legal pages */
.rights a{color:#71345f;font-weight:800;text-underline-offset:3px}.policy-nav,.footer-links{display:flex;align-items:center;gap:16px}.policy-nav>a:not(.ghost-button),.footer-links a{color:inherit;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:2px}.footer-links a{color:#968b94}.site-footer{gap:24px}.site-footer>span:last-child{white-space:nowrap}
@media(max-width:600px){.policy-nav{gap:9px}.policy-nav>a:not(.ghost-button){font-size:.7rem}.policy-nav .compact-button{padding:10px 13px;font-size:.7rem}.rights{padding:14px;border:1px solid rgba(113,52,95,.14);border-radius:14px;background:rgba(255,255,255,.55)}.footer-links{gap:13px}}

/* v0.7.0 — clearer creation flow, live YouTube preview, and smart companion scene */
.youtube-preview{display:grid;grid-template-columns:minmax(104px,150px) 1fr 34px;align-items:center;gap:15px;margin:12px 0 18px;padding:10px;border:1px solid rgba(113,52,95,.15);border-radius:18px;background:linear-gradient(135deg,rgba(255,255,255,.92),rgba(249,235,241,.72));box-shadow:0 12px 34px rgba(58,24,50,.07);overflow:hidden}.youtube-preview img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:12px;background:#eadfe5}.youtube-preview div{display:grid;gap:4px;min-width:0}.youtube-preview small{color:#b64f76;font-weight:800}.youtube-preview strong,.youtube-preview span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.youtube-preview strong{font-size:.94rem;color:#32172d}.youtube-preview span{font-size:.72rem;color:#82737d}.youtube-preview>i{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#376f5c;color:#fff;font-style:normal;font-weight:900}.youtube-preview[data-state="loading"] img,.youtube-preview[data-state="error"] img{visibility:hidden}.youtube-preview[data-state="loading"]>i{background:#c790a5;animation:pulse 1.2s ease-in-out infinite}.youtube-preview[data-state="error"]{border-color:rgba(176,66,80,.22);background:#fff5f5}.youtube-preview[data-state="error"]>i{background:#b64a5a}.youtube-preview[data-state="error"]>i:before{content:"!"}.youtube-preview[data-state="error"]>i{font-size:0}.youtube-preview[data-state="error"]>i:before{font-size:.9rem}

.video-scene{grid-template-rows:auto auto minmax(0,1fr) auto auto;align-content:start;overflow-y:auto;gap:10px;padding:clamp(10px,2vw,24px)}.video-start-prompt{width:min(1280px,100%);margin:0 auto;padding:11px 14px;display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid rgba(236,183,203,.3);border-radius:16px;background:linear-gradient(135deg,rgba(72,31,61,.96),rgba(30,17,31,.96));box-shadow:0 14px 38px rgba(0,0,0,.24)}.video-start-prompt>div{display:grid;gap:2px}.video-start-prompt small{color:#dca6b9;font-size:.67rem}.video-start-prompt strong{color:#fff;font-size:.88rem}.video-start-prompt .gift-button{flex:0 0 auto;min-width:168px;padding:11px 16px;font-size:.78rem}.video-start-prompt .gift-button:disabled{opacity:.55;cursor:wait}.video-experience-layout{width:min(1280px,100%);margin:auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,310px);align-items:center;gap:14px;min-height:0}.video-frame{width:100%;height:auto;max-height:none;aspect-ratio:16/9;margin:0;border-radius:18px;background:#000;box-shadow:0 22px 60px rgba(0,0,0,.34)}.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;z-index:1}.video-story-stage{position:relative;align-self:stretch;min-height:210px;padding:24px 21px;display:flex;flex-direction:column;justify-content:center;gap:8px;overflow:hidden;isolation:isolate;border:1px solid rgba(255,255,255,.12);border-radius:18px;background:radial-gradient(circle at 50% 20%,var(--experience-glow),transparent 58%),linear-gradient(145deg,rgba(64,30,57,.76),rgba(11,9,13,.94));box-shadow:inset 0 1px rgba(255,255,255,.08)}.video-story-stage>*:not(.video-atmosphere){position:relative;z-index:3}.video-story-stage>small{color:var(--experience-accent);font-weight:800}.video-story-stage>strong{font-family:"Markazi Text",Tahoma,serif;font-size:clamp(1.7rem,3.1vw,2.75rem);line-height:1.45;color:#fff}.video-story-stage>p{max-width:26ch;margin:0;color:rgba(255,255,255,.62);font-size:.72rem;line-height:1.8}.video-story-stage .video-atmosphere{position:absolute;inset:0;z-index:1}.video-story-stage .floating-word{inset:12% 0 auto;font-size:clamp(3rem,7vw,6.4rem);z-index:2}.video-story-stage .milestone{left:14px;right:14px;bottom:14px;width:auto;transform:translateY(24px);font-size:clamp(1.05rem,2.2vw,1.45rem);padding:15px 17px}.video-story-stage .milestone.show{transform:translateY(0)}.video-story-stage[data-pulse="heartbeat"]{animation:frameHeartbeat 1.1s ease}.video-story-stage[data-pulse="glow"]{box-shadow:0 0 70px var(--experience-glow),inset 0 1px rgba(255,255,255,.08)}.video-story-stage[data-pulse="scatter"] .video-atmosphere{animation:atmosphereScatter 1.4s ease}.video-story-stage[data-pulse="echo"]{animation:frameEcho 1.2s ease}

@media(max-width:900px){.video-experience-layout{grid-template-columns:1fr;align-items:start}.video-story-stage{min-height:175px;align-self:auto;padding:19px}.video-story-stage>strong{font-size:clamp(1.55rem,7vw,2.3rem)}.video-story-stage>p{font-size:.68rem}.video-start-prompt{position:sticky;top:0;z-index:7}.video-frame{border-radius:14px}}
@media(max-width:600px){.youtube-preview{grid-template-columns:96px minmax(0,1fr) 26px;gap:10px;padding:8px;border-radius:15px}.youtube-preview>i{width:24px;height:24px}.youtube-preview strong{font-size:.79rem}.youtube-preview span,.youtube-preview small{font-size:.63rem}.video-start-prompt{align-items:stretch;padding:10px;gap:10px}.video-start-prompt>div{align-content:center}.video-start-prompt strong{font-size:.72rem}.video-start-prompt small{font-size:.58rem}.video-start-prompt .gift-button{min-width:132px;padding:10px 12px;font-size:.68rem}.video-scene{padding:9px}.video-story-stage{min-height:160px}.video-story-stage .milestone{left:10px;right:10px;bottom:10px}.video-story-stage .floating-word{top:9%}}

/* v0.9.0 — AI-first creation: choose a mood, add personal copy only when desired */
.mood-fieldset{min-width:0;margin:0 0 18px;padding:0;border:0}.mood-fieldset>legend{margin:0 0 10px;color:#3d2037;font-size:.82rem;font-weight:800}.mood-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.mood-options label{position:relative;min-width:0;margin:0;cursor:pointer}.mood-options input{position:absolute;inline-size:1px;block-size:1px;margin:0;opacity:0;pointer-events:none}.mood-options label>span{min-height:92px;padding:13px 10px;display:grid;grid-template-columns:28px minmax(0,1fr);grid-template-rows:auto auto;align-content:center;column-gap:8px;border:1px solid rgba(91,43,76,.13);border-radius:16px;background:rgba(255,255,255,.68);color:#4b2842;box-shadow:0 8px 24px rgba(63,29,53,.045);transition:.2s}.mood-options b{grid-row:1/3;align-self:center;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#f1e4e9;color:#874a70;font-size:.85rem}.mood-options strong{align-self:end;font-size:.76rem;line-height:1.35}.mood-options small{align-self:start;color:#91838c;font-size:.57rem;font-weight:500;line-height:1.45}.mood-options input:checked+span{border-color:#71345f;background:linear-gradient(145deg,#f7eaf0,#fff);box-shadow:0 0 0 3px rgba(113,52,95,.1),0 12px 28px rgba(73,34,61,.08);transform:translateY(-1px)}.mood-options input:checked+span b{background:#71345f;color:#fff}.mood-options input:focus-visible+span{outline:3px solid rgba(113,52,95,.24);outline-offset:2px}.custom-mood-field{margin:5px 0 18px;padding:15px;border:1px solid rgba(113,52,95,.13);border-radius:16px;background:#fbf5f7}.ai-takes-over{display:grid;grid-template-columns:40px minmax(0,1fr);gap:12px;align-items:start;margin:4px 0 16px;padding:16px;border:1px solid rgba(90,42,75,.12);border-radius:18px;background:linear-gradient(135deg,rgba(90,42,75,.08),rgba(214,123,145,.08))}.ai-takes-over>span{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#5d244f;color:#f7dbe4}.ai-takes-over strong{display:block;margin:1px 0 5px;color:#48203e;font-size:.8rem}.ai-takes-over p{margin:0;color:#776872;font-size:.67rem;font-weight:500;line-height:1.8}.creative-details{margin:0 0 16px;border:1px solid rgba(91,43,76,.12);border-radius:18px;background:rgba(255,255,255,.46);overflow:hidden}.creative-details summary{padding:16px 18px;display:flex;align-items:center;justify-content:space-between;gap:14px;color:#532646;font-size:.78rem;font-weight:800;cursor:pointer;list-style:none}.creative-details summary::-webkit-details-marker{display:none}.creative-details summary:after{content:"＋";order:-1;color:#935675;font-size:1rem}.creative-details[open] summary{border-bottom:1px solid rgba(91,43,76,.1)}.creative-details[open] summary:after{content:"−"}.creative-details summary small{margin-inline-start:auto;color:#9b8d96;font-size:.58rem;font-weight:600}.creative-details-body{padding:18px 18px 2px}.creative-details-body textarea{min-height:96px}
@media(max-width:650px){.mood-options{grid-template-columns:1fr 1fr}.mood-options label>span{min-height:84px;padding:11px 9px}.mood-options strong{font-size:.72rem}.mood-options small{font-size:.54rem}.ai-takes-over{grid-template-columns:36px minmax(0,1fr);padding:14px}.ai-takes-over>span{width:36px;height:36px}.creative-details summary{padding:15px}.creative-details-body{padding:16px 14px 1px}}

/* v0.10.1 — classified opening ceremonies with gesture-locked instructions */
.ceremony-scene{display:none;overflow-y:auto;align-content:center;padding:max(20px,env(safe-area-inset-top)) 18px max(24px,env(safe-area-inset-bottom))}
.ceremony-scene.active{display:grid}.ceremony-brand{position:absolute;z-index:4;top:max(18px,env(safe-area-inset-top));right:clamp(18px,4vw,46px);width:clamp(86px,9vw,122px);height:auto;opacity:.92}
.ceremony-shell{position:relative;z-index:3;width:min(820px,100%);margin:auto;text-align:center;display:grid;justify-items:center}
.ceremony-copy{max-width:720px}.ceremony-copy .eyebrow{margin-bottom:7px}.ceremony-copy h1{margin:0 0 10px;font-size:clamp(2.35rem,6.8vw,4.75rem);line-height:1.18}
.ceremony-copy .scene-line{display:-webkit-box;max-width:680px;margin:0 auto;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;color:rgba(255,255,255,.62);font-size:clamp(.78rem,2vw,.98rem);line-height:1.85}
.ceremony-stage{--drag-x:0px;--drag-y:0px;position:relative;width:min(520px,100%);height:clamp(235px,36svh,370px);margin:4px auto 0;isolation:isolate;touch-action:none}
.ceremony-stage:before{content:"";position:absolute;inset:13% 8%;border:1px solid rgba(255,255,255,.055);border-radius:50%;background:radial-gradient(circle at 50% 48%,var(--experience-glow),transparent 58%);filter:blur(.2px)}
.ceremony-object{--start-x:0px;--start-y:0px;--drag-x:0px;--drag-y:0px;appearance:none;position:absolute;z-index:4;left:50%;top:50%;width:clamp(190px,50vw,252px);height:clamp(190px,50vw,252px);padding:0;border:0;background:transparent;color:#fff;cursor:grab;touch-action:none;user-select:none;transform:translate(-50%,-50%) translate3d(calc(var(--start-x) + var(--drag-x)),calc(var(--start-y) + var(--drag-y)),0);transition:transform .48s cubic-bezier(.2,.8,.2,1),filter .35s,opacity .35s}
.ceremony-stage[data-gesture="drop"] .ceremony-object{--start-x:clamp(62px,18vw,102px)}.ceremony-object.dragging{cursor:grabbing;transition:none;filter:brightness(1.12) drop-shadow(0 18px 35px rgba(0,0,0,.3))}.ceremony-object:focus-visible{outline:3px solid var(--experience-accent);outline-offset:5px;border-radius:32px}
.ceremony-artwork{position:relative;display:block;width:100%;height:100%;filter:drop-shadow(0 24px 34px rgba(0,0,0,.28));transition:transform .55s cubic-bezier(.2,.8,.2,1),filter .4s,opacity .4s}.ceremony-part{position:absolute;display:block;box-sizing:border-box}
.ceremony-target{position:absolute;z-index:2;left:18%;top:50%;display:grid;place-items:center;width:clamp(92px,24vw,128px);aspect-ratio:1;border:1px dashed color-mix(in srgb,var(--experience-accent) 65%,transparent);border-radius:50%;opacity:0;transform:translate(-50%,-50%) scale(.82);transition:.3s;pointer-events:none;box-shadow:0 0 38px var(--experience-glow),inset 0 0 34px rgba(255,255,255,.025)}
.ceremony-target.visible{opacity:.72;transform:translate(-50%,-50%) scale(1)}.ceremony-target i{width:31%;aspect-ratio:1;border-radius:50%;background:var(--experience-accent);box-shadow:0 0 32px 10px var(--experience-glow);opacity:.45}.ceremony-target.near{opacity:1;transform:translate(-50%,-50%) scale(1.13);border-style:solid}
.ceremony-guidance{display:grid;gap:6px;min-height:48px;margin-top:-2px}.ceremony-guidance strong{color:#fff6f8;font-family:"Markazi Text",Tahoma,serif;font-size:clamp(1.12rem,3.6vw,1.55rem);font-weight:700}.ceremony-guidance span{color:rgba(255,255,255,.42);font-size:.66rem;opacity:0;transform:translateY(5px);transition:.3s}.ceremony-guidance span.show{opacity:1;transform:none}
.ceremony-promise{margin:5px 0 0;color:rgba(255,255,255,.46);font-size:.65rem}.preview-ceremony-name{display:block;margin:7px 0 9px;color:#efb7c8;font-style:normal;font-size:.72rem;font-weight:800}
.ceremony-listening{display:flex;align-items:center;gap:10px;margin-top:9px;color:rgba(255,255,255,.38)}.ceremony-listening span{color:var(--experience-accent);font-size:1.05rem;letter-spacing:.2em}.ceremony-listening p{margin:0;font-size:.63rem}
.ceremony-success{position:absolute;z-index:8;left:50%;top:50%;color:#fff;font-size:4rem;opacity:0;transform:translate(-50%,-50%) scale(.2);filter:drop-shadow(0 0 22px var(--experience-accent));pointer-events:none}.ceremony-stage.completed .ceremony-success{animation:ceremonySuccess .9s ease both}.ceremony-stage.completed .ceremony-object{pointer-events:none}.ceremony-stage.try-again{animation:ceremonyTryAgain .42s ease}

/* ribbon */
[data-art="ribbon"] .ribbon-band{left:8%;right:8%;top:47%;height:18px;border-radius:99px;background:linear-gradient(90deg,#7d315f,var(--experience-accent),#7d315f);box-shadow:0 8px 25px var(--experience-glow)}
[data-art="ribbon"] .ribbon-knot{left:50%;top:50%;width:42px;height:42px;border-radius:45% 55% 48% 52%;background:linear-gradient(145deg,#f3bdca,#a14d77);transform:translate(-50%,-50%) rotate(8deg);z-index:3}
[data-art="ribbon"] .ribbon-loop-a,[data-art="ribbon"] .ribbon-loop-b{top:25%;width:82px;height:68px;border:15px solid var(--experience-accent);border-radius:70% 35% 65% 40%}
[data-art="ribbon"] .ribbon-loop-a{left:18%;transform:rotate(-25deg)}[data-art="ribbon"] .ribbon-loop-b{right:18%;transform:scaleX(-1) rotate(-25deg)}
[data-art="ribbon"] .ribbon-tail-a,[data-art="ribbon"] .ribbon-tail-b{top:54%;width:34px;height:88px;background:linear-gradient(#bd678c,#74305d);clip-path:polygon(0 0,100% 0,78% 100%,50% 80%,20% 100%)}
[data-art="ribbon"] .ribbon-tail-a{left:38%;transform:rotate(12deg)}[data-art="ribbon"] .ribbon-tail-b{right:38%;transform:rotate(-12deg)}
[data-art="ribbon"].completed .ribbon-band{animation:ribbonOpen .78s ease both}[data-art="ribbon"].completed .ribbon-loop-a{transform:translateX(-35px) rotate(-40deg)}[data-art="ribbon"].completed .ribbon-loop-b{transform:translateX(35px) scaleX(-1) rotate(-40deg)}

/* gift */
[data-art="gift"] .gift-base{left:19%;right:19%;top:42%;bottom:18%;border-radius:10px 10px 20px 20px;background:linear-gradient(145deg,#7b315f,#4c1e45);box-shadow:inset 0 1px rgba(255,255,255,.2)}
[data-art="gift"] .gift-lid{left:13%;right:13%;top:34%;height:30px;border-radius:10px;background:linear-gradient(120deg,var(--experience-accent),#8e3c6d);z-index:3}
[data-art="gift"] .gift-band-v{left:46%;top:34%;bottom:18%;width:19px;background:#eec1cb;z-index:2}[data-art="gift"] .gift-band-h{left:19%;right:19%;top:53%;height:16px;background:#dda0b0;z-index:2}
[data-art="gift"] .gift-bow-a,[data-art="gift"] .gift-bow-b{top:19%;width:54px;height:46px;border:12px solid #eab4c1;border-radius:65% 34% 65% 35%;z-index:4}
[data-art="gift"] .gift-bow-a{left:29%;transform:rotate(20deg)}[data-art="gift"] .gift-bow-b{right:29%;transform:scaleX(-1) rotate(20deg)}
[data-art="gift"].completed .gift-lid,[data-art="gift"].completed .gift-bow-a,[data-art="gift"].completed .gift-bow-b{animation:giftLift .86s cubic-bezier(.2,.8,.2,1) both}

/* parcel */
[data-art="parcel"] .parcel-box{inset:24% 13% 20%;border-radius:14px;background:linear-gradient(145deg,#c99d70,#8e6344);border:1px solid rgba(255,255,255,.18)}
[data-art="parcel"] .parcel-tape{left:46%;top:24%;bottom:20%;width:22px;background:#e4bd88;box-shadow:0 0 0 1px rgba(91,51,29,.12)}
[data-art="parcel"] .parcel-label{left:22%;top:40%;width:75px;height:49px;border-radius:5px;background:#fff6df;transform:rotate(-4deg)}[data-art="parcel"] .parcel-stamp{right:23%;top:34%;width:28px;height:32px;border:2px dashed #7d4c41;background:#d98383;transform:rotate(7deg)}
[data-art="parcel"] .parcel-line-a,[data-art="parcel"] .parcel-line-b{left:27%;width:46px;height:2px;background:#9a7b6a}.parcel-line-a{top:47%}.parcel-line-b{top:52%}
[data-art="parcel"].completed .parcel-tape{animation:parcelTear .76s ease both}

/* drawer */
[data-art="drawer"] .drawer-cabinet{inset:18% 16% 19%;border:2px solid #a97980;border-radius:14px;background:linear-gradient(145deg,#412432,#1c111b);box-shadow:inset 0 0 35px rgba(0,0,0,.36)}
[data-art="drawer"] .drawer-front{left:20%;right:20%;top:43%;height:70px;border:1px solid #be8a92;border-radius:9px;background:linear-gradient(#5e3547,#351d2b);z-index:3}
[data-art="drawer"] .drawer-handle{left:50%;top:54%;width:46px;height:15px;border:3px solid #dbb27e;border-top:0;border-radius:0 0 16px 16px;transform:translateX(-50%);z-index:4}
[data-art="drawer"] .drawer-photo{left:35%;top:28%;width:66px;height:82px;border:7px solid #f2e7da;background:linear-gradient(145deg,#805b70,#cf93a1);transform:rotate(-8deg);z-index:2}
[data-art="drawer"] .drawer-glow{inset:28% 22%;border-radius:50%;background:var(--experience-glow);filter:blur(22px)}[data-art="drawer"].completed .drawer-front{animation:drawerOpen .82s ease both}[data-art="drawer"].completed .drawer-photo{animation:photoRise .95s .1s ease both}

/* lamp */
[data-art="lamp"] .lamp-shade{left:21%;top:19%;width:118px;height:72px;border-radius:70px 70px 14px 14px;background:linear-gradient(145deg,#fff8e7,#d6c5b8);clip-path:polygon(18% 0,82% 0,100% 100%,0 100%);z-index:3}
[data-art="lamp"] .lamp-neck{left:47%;top:46%;width:15px;height:77px;border-radius:99px;background:#e6d8ca}[data-art="lamp"] .lamp-base{left:31%;bottom:18%;width:96px;height:15px;border-radius:99px;background:#e6d8ca}
[data-art="lamp"] .lamp-cord{right:27%;top:41%;width:2px;height:92px;background:rgba(255,255,255,.58)}[data-art="lamp"] .lamp-bead{right:23.5%;top:73%;width:20px;height:20px;border-radius:50%;background:#e3ad68;box-shadow:0 0 18px rgba(227,173,104,.38)}
[data-art="lamp"] .lamp-light{left:12%;right:12%;top:36%;height:52%;border-radius:50%;background:radial-gradient(circle,rgba(255,235,177,.5),transparent 68%);filter:blur(16px);opacity:.16}.ceremony-stage[data-art="lamp"].completed .lamp-light{animation:lampOn .85s ease both}

/* heart */
[data-art="heart"] .heart-half-a{left:38%;top:30%;width:78px;height:116px;background:linear-gradient(135deg,#f0a7ba,#9b446e);border-radius:70px 70px 20px 70px;clip-path:polygon(0 0,100% 0,100% 72%,52% 100%,0 72%);transform:rotate(-18deg)}
[data-art="heart"] .heart-half-b{display:none}[data-art="heart"] .heart-spark{left:61%;top:27%;width:8px;height:8px;border-radius:50%;background:#fff;box-shadow:0 0 20px 7px var(--experience-glow)}
[data-art="heart"] .ceremony-target:after{content:"♡";color:var(--experience-accent);font:700 4rem/1 Tahoma;filter:drop-shadow(0 0 18px var(--experience-glow))}

/* orbit */
[data-art="orbit"] .orbit-ring-a,[data-art="orbit"] .orbit-ring-b{left:50%;top:50%;border:1px solid rgba(255,255,255,.25);border-radius:50%;transform:translate(-50%,-50%)}[data-art="orbit"] .orbit-ring-a{width:140px;height:140px}[data-art="orbit"] .orbit-ring-b{width:92px;height:92px;border-style:dashed}
[data-art="orbit"] .orbit-token{left:42%;top:40%;width:42px;height:42px;border-radius:50%;background:radial-gradient(circle,#fff,var(--experience-accent) 46%,#662758);box-shadow:0 0 30px 14px var(--experience-glow)}
[data-art="orbit"] .orbit-star-a,[data-art="orbit"] .orbit-star-b,[data-art="orbit"] .orbit-star-c{width:6px;height:6px;border-radius:50%;background:#fff;box-shadow:0 0 8px #fff}.orbit-star-a{left:25%;top:44%}.orbit-star-b{right:29%;top:25%}.orbit-star-c{right:26%;bottom:28%}

/* envelope */
[data-art="envelope"] .envelope-body{left:13%;right:13%;top:34%;height:118px;border-radius:12px;background:linear-gradient(145deg,#f4e8df,#cfaeb5);box-shadow:inset 0 -2px rgba(99,49,75,.15)}
[data-art="envelope"] .envelope-flap{left:13%;right:13%;top:34%;height:94px;background:#ead8d4;clip-path:polygon(0 0,100% 0,50% 88%);z-index:2}.envelope-fold-a,.envelope-fold-b{top:51%;width:102px;height:82px;background:#d7bcc2;clip-path:polygon(0 0,100% 100%,0 100%)}.envelope-fold-a{left:13%}.envelope-fold-b{right:13%;transform:scaleX(-1)}
[data-art="envelope"] .envelope-seal{left:50%;top:55%;width:42px;height:42px;border-radius:50%;background:#8d315f;box-shadow:0 0 0 5px rgba(255,255,255,.1);transform:translate(-50%,-50%);z-index:4}[data-art="envelope"] .envelope-letter{left:26%;right:26%;top:27%;height:86px;background:#fff7ea;border-radius:5px;z-index:0}
[data-art="envelope"].completed .envelope-flap{animation:flapOpen .78s ease both}[data-art="envelope"].completed .envelope-letter{animation:letterRise .9s .1s ease both}

/* key */
[data-art="key"] .key-ring{left:28%;top:35%;width:76px;height:76px;border:17px solid #d9ad67;border-radius:50%}[data-art="key"] .key-stem{left:50%;top:47%;width:90px;height:18px;border-radius:99px;background:#d9ad67;transform:rotate(-28deg)}
[data-art="key"] .key-tooth-a,[data-art="key"] .key-tooth-b{width:18px;height:30px;background:#d9ad67;transform:rotate(-28deg)}[data-art="key"] .key-tooth-a{right:18%;top:46%}[data-art="key"] .key-tooth-b{right:25%;top:58%}[data-art="key"] .key-lock,[data-art="key"] .key-hole{display:none}
[data-art="key"] .ceremony-target:after{content:"";width:48px;height:54px;border-radius:9px;background:#7b5a34;box-shadow:inset 0 0 0 2px #e3bd78}.ceremony-target.near:before{content:"";position:absolute;width:13px;height:27px;border-radius:99px;background:#24180f;z-index:2}

/* curtain */
[data-art="curtain"] .curtain-rail{left:8%;right:8%;top:18%;height:9px;border-radius:99px;background:#dfb774}.curtain-left,.curtain-right{top:21%;bottom:16%;width:44%;background:repeating-linear-gradient(90deg,#6b254f 0 18px,#8f3769 18px 35px);border-radius:7px 7px 26px 26px}.curtain-left{left:8%}.curtain-right{right:8%}
[data-art="curtain"] .curtain-tie{left:50%;top:52%;width:18px;height:18px;border-radius:50%;background:#e2b56e;transform:translate(-50%,-50%);z-index:3}.curtain-light{left:35%;right:35%;top:25%;bottom:20%;background:linear-gradient(rgba(255,229,188,.48),transparent);filter:blur(12px);opacity:.2}
[data-art="curtain"].completed .curtain-left{animation:curtainLeft .9s ease both}[data-art="curtain"].completed .curtain-right{animation:curtainRight .9s ease both}

/* music box */
[data-art="musicbox"] .musicbox-case{left:16%;right:16%;top:43%;bottom:20%;border-radius:13px;background:linear-gradient(145deg,#724934,#2f201d);border:2px solid #bd8b5b}.musicbox-lid{left:16%;right:16%;top:30%;height:70px;border-radius:70px 70px 8px 8px;background:#4e3128;border:2px solid #bd8b5b}
[data-art="musicbox"] .musicbox-key{right:10%;top:53%;width:42px;height:15px;border:5px solid #dfbb79;border-left:0;border-radius:0 18px 18px 0}.musicbox-note-a,.musicbox-note-b{color:var(--experience-accent);font-style:normal}.musicbox-note-a:after,.musicbox-note-b:after{content:"♪";font:700 2rem/1 Tahoma}.musicbox-note-a{left:32%;top:29%}.musicbox-note-b{right:32%;top:22%;transform:scale(.72)}.musicbox-glow{inset:25%;border-radius:50%;background:var(--experience-glow);filter:blur(20px)}

/* balloon */
[data-art="balloon"] .balloon-body{left:27%;right:27%;top:15%;height:142px;border-radius:52% 48% 47% 53%;background:radial-gradient(circle at 35% 25%,#ffd5df 0 7%,var(--experience-accent) 10%,#8d3565 72%);box-shadow:0 0 38px var(--experience-glow)}
[data-art="balloon"] .balloon-knot{left:47%;top:69%;width:20px;height:16px;background:#8d3565;clip-path:polygon(50% 0,100% 100%,0 100%)}[data-art="balloon"] .balloon-string{left:50%;top:74%;width:2px;height:66px;background:rgba(255,255,255,.55)}[data-art="balloon"] .balloon-shine{left:37%;top:25%;width:12px;height:30px;border-radius:50%;background:rgba(255,255,255,.42);transform:rotate(22deg)}
[data-art="balloon"] .balloon-confetti-a,[data-art="balloon"] .balloon-confetti-b{inset:31%;opacity:0;background:radial-gradient(circle,#fff 0 3px,transparent 4px);background-size:24px 24px}.ceremony-stage[data-art="balloon"].completed .balloon-body{animation:balloonPop .55s ease both}.ceremony-stage[data-art="balloon"].completed .balloon-confetti-a,.ceremony-stage[data-art="balloon"].completed .balloon-confetti-b{animation:confettiBurst .8s .1s ease both}

/* constellation */
[data-art="constellation"] .constellation-star{left:37%;top:35%;width:64px;height:64px;background:var(--experience-accent);clip-path:polygon(50% 0,61% 36%,100% 38%,69% 60%,79% 100%,50% 74%,21% 100%,31% 60%,0 38%,39% 36%);filter:drop-shadow(0 0 22px var(--experience-accent))}.constellation-line-a,.constellation-line-b{height:1px;background:rgba(255,255,255,.22);transform-origin:left}.constellation-line-a{left:24%;top:65%;width:102px;transform:rotate(-28deg)}.constellation-line-b{left:46%;top:62%;width:75px;transform:rotate(31deg)}.constellation-dot-a,.constellation-dot-b,.constellation-dot-c{width:7px;height:7px;border-radius:50%;background:#fff;box-shadow:0 0 8px #fff}.constellation-dot-a{left:22%;top:64%}.constellation-dot-b{right:23%;top:74%}.constellation-dot-c{right:25%;top:39%}
[data-art="constellation"] .ceremony-target:after{content:"✦";color:#fff;font-size:3rem;text-shadow:0 0 18px var(--experience-accent)}

/* photo */
[data-art="photo"] .photo-paper{inset:16% 20%;border:12px solid #f4ede3;border-bottom-width:34px;border-radius:6px;background:#52334a;transform:rotate(-3deg)}[data-art="photo"] .photo-image{inset:23% 26% 35%;background:linear-gradient(145deg,#2d1630,#c37d90);opacity:.8}.photo-shine{left:13%;top:8%;width:28px;height:190px;background:rgba(255,255,255,.28);filter:blur(7px);transform:rotate(24deg);opacity:.25}.photo-caption{left:39%;bottom:23%;width:58px;height:3px;border-radius:99px;background:#9b6c72}.photo-corner-a,.photo-corner-b{width:26px;height:26px;border:3px solid #d6b99a}.photo-corner-a{left:16%;top:13%;border-right:0;border-bottom:0}.photo-corner-b{right:16%;bottom:13%;border-left:0;border-top:0}
[data-art="photo"].completed .photo-shine{animation:photoWipe .75s ease both}

/* book */
[data-art="book"] .book-back{inset:22% 12%;border-radius:12px;background:#3b1f33;border:2px solid #bb7d8f}.book-pages{inset:27% 17% 26%;border-radius:8px;background:repeating-linear-gradient(#f6eddf 0 8px,#dccfc3 9px 10px)}.book-cover{left:13%;top:21%;width:74%;height:58%;border-radius:12px 4px 4px 12px;background:linear-gradient(145deg,#78345f,#3d1c35);transform-origin:right center;z-index:3}.book-spine{right:12%;top:21%;bottom:21%;width:18px;border-radius:0 10px 10px 0;background:#9b5277;z-index:4}.book-mark{left:47%;top:22%;width:16px;height:82%;background:#d9a76f;clip-path:polygon(0 0,100% 0,100% 92%,50% 83%,0 92%);z-index:2}.book-glow{inset:24%;background:var(--experience-glow);filter:blur(21px)}
[data-art="book"].completed .book-cover{animation:bookOpen .9s ease both}

/* sun and moon */
[data-art="sunmoon"] .sky-window{inset:15% 9%;border:7px solid #d8bfae;border-radius:26px;background:linear-gradient(#87bdd7,#ead2b2 60%,#795772);overflow:hidden}.sky-sun{left:25%;top:30%;width:55px;height:55px;border-radius:50%;background:#ffd366;box-shadow:0 0 25px 9px rgba(255,211,102,.4)}.sky-moon{right:25%;top:31%;width:56px;height:56px;border-radius:50%;background:#dfe4f2;box-shadow:inset -14px -5px #7280a6,0 0 24px rgba(184,199,243,.3);opacity:.55}.sky-cloud-a,.sky-cloud-b{height:25px;border-radius:99px;background:rgba(255,255,255,.76)}.sky-cloud-a{left:18%;top:54%;width:85px}.sky-cloud-b{right:19%;top:62%;width:70px}.sky-star-a,.sky-star-b{width:5px;height:5px;border-radius:50%;background:#fff;opacity:.35}.sky-star-a{right:35%;top:24%}.sky-star-b{right:20%;top:45%}
[data-art="sunmoon"].completed .sky-sun{animation:sunSet .9s ease both}[data-art="sunmoon"].completed .sky-moon{animation:moonRise .9s ease both}

/* message */
[data-art="message"] .message-plane{left:25%;top:34%;width:126px;height:96px;background:linear-gradient(145deg,#fff3e6,#cfaeb7);clip-path:polygon(0 0,100% 41%,53% 56%,39% 100%,30% 62%);filter:drop-shadow(0 12px 14px rgba(0,0,0,.2))}.message-fold{left:42%;top:47%;width:62px;height:2px;background:#a87986;transform:rotate(22deg)}.message-path-a,.message-path-b{border:1px dashed rgba(255,255,255,.28);border-top:0;border-right:0;border-radius:0 0 0 60px}.message-path-a{right:17%;bottom:27%;width:65px;height:38px}.message-path-b{right:9%;bottom:18%;width:105px;height:65px}.message-ring{display:none}[data-art="message"] .ceremony-target:after{content:"✉";color:var(--experience-accent);font-size:2.8rem}

/* puzzle */
[data-art="puzzle"] .puzzle-piece{left:33%;top:31%;width:88px;height:88px;border-radius:14px;background:linear-gradient(145deg,var(--experience-accent),#78345d);box-shadow:0 0 25px var(--experience-glow)}[data-art="puzzle"] .puzzle-piece:before{content:"";position:absolute;right:-17px;top:28px;width:34px;height:34px;border-radius:50%;background:var(--experience-accent)}[data-art="puzzle"] .puzzle-board,[data-art="puzzle"] .puzzle-gap,[data-art="puzzle"] .puzzle-glow{display:none}[data-art="puzzle"] .ceremony-target{border-radius:20px;transform:translate(-50%,-50%) rotate(4deg)}[data-art="puzzle"] .ceremony-target:after{content:"";width:62px;height:62px;border:2px solid var(--experience-accent);border-radius:10px;box-shadow:0 0 20px var(--experience-glow)}

/* cassette */
[data-art="cassette"] .cassette-slot{left:18%;right:18%;top:16%;height:33px;border-radius:10px;background:#17131b;border:2px solid #8f6d87}.cassette-body{left:16%;right:16%;top:40%;height:118px;border-radius:15px;background:linear-gradient(145deg,#4e3b4e,#241b2b);border:2px solid #bc8da0}.cassette-window{left:30%;right:30%;top:49%;height:45px;border-radius:20px;background:#d6c6b9}.cassette-reel-a,.cassette-reel-b{top:55%;width:30px;height:30px;border:6px dotted #523a4b;border-radius:50%}.cassette-reel-a{left:34%}.cassette-reel-b{right:34%}.cassette-label{left:29%;right:29%;top:43%;height:13px;border-radius:4px;background:#e0a8b7}
[data-art="cassette"].completed .cassette-body,[data-art="cassette"].completed .cassette-window,[data-art="cassette"].completed .cassette-reel-a,[data-art="cassette"].completed .cassette-reel-b,[data-art="cassette"].completed .cassette-label{animation:cassetteIn .75s ease both}

/* flower */
[data-art="flower"] .flower-stem{left:49%;top:50%;width:8px;height:102px;border-radius:99px;background:#6f9d78}.flower-leaf-a,.flower-leaf-b{top:68%;width:55px;height:28px;border-radius:70% 0 70% 0;background:#6f9d78}.flower-leaf-a{left:27%;transform:rotate(18deg)}.flower-leaf-b{right:27%;transform:scaleX(-1) rotate(18deg)}.flower-petal-a,.flower-petal-b,.flower-petal-c,.flower-petal-d{left:50%;top:34%;width:62px;height:82px;border-radius:70% 30% 70% 30%;background:linear-gradient(145deg,#f3b5c4,var(--experience-accent));transform-origin:0 100%}.flower-petal-a{transform:translate(-8px,-36px) rotate(0)}.flower-petal-b{transform:translate(-8px,-36px) rotate(90deg)}.flower-petal-c{transform:translate(-8px,-36px) rotate(180deg)}.flower-petal-d{transform:translate(-8px,-36px) rotate(270deg)}.flower-center{left:50%;top:48%;width:42px;height:42px;border-radius:50%;background:#e1ad62;transform:translate(-50%,-50%);box-shadow:0 0 24px rgba(225,173,98,.4);z-index:3}
.ceremony-stage[data-art="flower"].completed .flower-petal-a{animation:petalOpenA .8s ease both}.ceremony-stage[data-art="flower"].completed .flower-petal-b{animation:petalOpenB .8s ease both}.ceremony-stage[data-art="flower"].completed .flower-petal-c{animation:petalOpenC .8s ease both}.ceremony-stage[data-art="flower"].completed .flower-petal-d{animation:petalOpenD .8s ease both}

/* YouTube-safe immersive stage: the player stays unobscured and words inhabit the surrounding canvas */
.video-scene{grid-template-rows:auto auto auto auto auto;background:radial-gradient(circle at 50% 72%,var(--experience-glow),transparent 38%),#050507}
.video-experience-layout{width:min(1180px,100%);grid-template-columns:1fr;gap:0}.video-frame{width:100%;margin:auto;border-radius:20px;box-shadow:0 24px 80px rgba(0,0,0,.5)}
.video-story-stage{min-height:clamp(145px,20svh,210px);margin:0;padding:12px 5%;border:0;border-radius:0;background:transparent;box-shadow:none;display:grid;place-items:center;overflow:hidden}
.video-story-stage .video-atmosphere{inset:0 5%}.video-story-stage .floating-word{inset:8% 0 auto;font-size:clamp(3.4rem,9vw,8rem);color:rgba(255,255,255,.13)}
.video-story-stage .milestone{left:50%;right:auto;bottom:16%;width:min(760px,calc(100% - 24px));padding:7px 16px;border:0;border-radius:0;background:transparent;backdrop-filter:none;box-shadow:none;color:#fff7f9;font-size:clamp(1.25rem,3.2vw,2.15rem);text-shadow:0 4px 24px rgba(0,0,0,.9),0 0 30px var(--experience-glow);transform:translate(-50%,24px)}
.video-story-stage .milestone.show{transform:translate(-50%,0)}

@keyframes ceremonySuccess{0%{opacity:0;transform:translate(-50%,-50%) scale(.2) rotate(-20deg)}45%{opacity:1;transform:translate(-50%,-50%) scale(1.25) rotate(7deg)}100%{opacity:0;transform:translate(-50%,-50%) scale(2.2) rotate(20deg)}}
@keyframes ceremonyTryAgain{30%{transform:translateX(-7px)}65%{transform:translateX(7px)}}
@keyframes ribbonOpen{to{opacity:.12;transform:scaleX(1.65)}}@keyframes giftLift{to{transform:translateY(-72px) rotate(-8deg);opacity:.15}}@keyframes parcelTear{to{transform:translateX(-125px) rotate(-9deg);opacity:.08}}@keyframes drawerOpen{to{transform:translateY(54px)}}@keyframes photoRise{to{transform:translateY(-64px) rotate(4deg)}}
@keyframes lampOn{to{opacity:1;transform:scale(1.35);filter:blur(12px)}}@keyframes flapOpen{to{transform:perspective(300px) rotateX(165deg);transform-origin:top}}@keyframes letterRise{to{transform:translateY(-55px)}}@keyframes curtainLeft{to{transform:translateX(-72px) scaleX(.55)}}@keyframes curtainRight{to{transform:translateX(72px) scaleX(.55)}}
@keyframes balloonPop{60%{transform:scale(1.18)}100%{transform:scale(1.85);opacity:0}}@keyframes confettiBurst{0%{opacity:0;transform:scale(.3)}45%{opacity:1}100%{opacity:0;transform:scale(2.5) rotate(80deg)}}@keyframes photoWipe{to{transform:translateX(155px) rotate(24deg);opacity:0}}@keyframes bookOpen{to{transform:perspective(500px) rotateY(-155deg);opacity:.45}}@keyframes sunSet{to{transform:translate(-52px,75px);opacity:.12}}@keyframes moonRise{to{transform:translate(-30px,-15px) scale(1.18);opacity:1}}
@keyframes cassetteIn{to{transform:translateY(-74px);opacity:.18}}@keyframes petalOpenA{to{transform:translate(-8px,-58px) rotate(-16deg) scale(1.12)}}@keyframes petalOpenB{to{transform:translate(12px,-36px) rotate(106deg) scale(1.12)}}@keyframes petalOpenC{to{transform:translate(-8px,-16px) rotate(196deg) scale(1.12)}}@keyframes petalOpenD{to{transform:translate(-28px,-36px) rotate(254deg) scale(1.12)}}

@media(max-width:700px){.ceremony-brand{width:88px}.ceremony-shell{padding-top:42px}.ceremony-copy h1{font-size:clamp(2.25rem,11.5vw,3.65rem)}.ceremony-copy .scene-line{-webkit-line-clamp:2;font-size:.77rem}.ceremony-stage{height:clamp(225px,35svh,310px)}.ceremony-object{width:min(205px,55vw);height:min(205px,55vw)}.ceremony-target{left:17%;width:88px}.ceremony-stage[data-gesture="drop"] .ceremony-object{--start-x:72px}.ceremony-listening{margin-top:5px}.video-frame{border-radius:14px}.video-story-stage{min-height:170px}.video-story-stage .milestone{bottom:14%}}
@media(max-height:720px){.ceremony-shell{padding-top:24px}.ceremony-copy h1{font-size:clamp(2.05rem,7vh,3.2rem);margin-bottom:6px}.ceremony-copy .scene-line{-webkit-line-clamp:1}.ceremony-stage{height:235px}.ceremony-object{width:190px;height:190px}.ceremony-guidance{margin-top:-8px}.ceremony-listening{display:none}}
@media(prefers-reduced-motion:reduce){.ceremony-object{transition:none}.ceremony-guidance span{opacity:1;transform:none}}
/* v0.11.0 — letter gift scene (رسالة وخلفية موسيقية) + legibility pass */
.letter-scene{grid-template-rows:auto 1fr auto;gap:14px;padding-inline:clamp(14px,4vw,32px)}
.letter-scene.active{display:grid}
.letter-top{width:min(720px,100%);display:flex;align-items:center;justify-content:space-between;margin:0 auto;color:rgba(255,255,255,.62);font-size:.95rem}
.letter-bed-label{font-size:.95rem;color:rgba(255,255,255,.62)}
.letter-stage{position:relative;z-index:2;width:min(720px,100%);margin:0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:16px;padding:8px 0;overflow-y:auto;max-height:calc(100svh - 190px)}
.letter-to{display:flex;flex-direction:column;align-items:center;gap:2px}
.letter-to small{color:rgba(255,255,255,.82);font-size:1.25rem;font-weight:500}
.letter-to strong{font-family:"Markazi Text",Georgia,serif;font-weight:700;font-size:clamp(3rem,12vw,4.2rem);line-height:1.3;color:var(--experience-accent,#e9a7b9);text-shadow:0 6px 30px var(--experience-glow,rgba(233,167,185,.35))}
.letter-shots{display:flex;flex-direction:column;gap:14px;width:100%;min-height:150px;justify-content:center}
.letter-shot{margin:0;font-family:Tahoma,"IBM Plex Sans Arabic","Noto Sans Arabic",system-ui,sans-serif;font-weight:600;font-size:clamp(1.35rem,5.6vw,1.7rem);line-height:1.85;color:rgba(255,255,255,.66);animation:letterIn 1s cubic-bezier(.16,1,.3,1) both;transition:color .8s}
.letter-shot.latest{color:#fff}
@keyframes letterIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.letter-voice-pill{display:flex;align-items:center;gap:9px;color:rgba(255,255,255,.85);font-size:.95rem}
.letter-voice-pill i{width:12px;height:12px;border-radius:50%;background:var(--experience-accent,#e9a7b9);animation:letterHalo 1.4s ease-out infinite}
@keyframes letterHalo{from{box-shadow:0 0 0 0 var(--experience-glow,rgba(233,167,185,.45))}to{box-shadow:0 0 0 16px transparent}}
.letter-closing{display:flex;flex-direction:column;align-items:center;gap:2px;margin-top:12px;animation:letterIn 1.2s cubic-bezier(.16,1,.3,1) both}
.letter-closing span{font-family:"Aref Ruqaa",Georgia,serif;font-weight:700;font-size:2.5rem;line-height:1.2;color:var(--experience-accent,#e9a7b9)}
.letter-closing strong{font-weight:500;font-size:1.2rem;color:rgba(255,255,255,.92)}
.letter-start-prompt{position:absolute;inset:0;z-index:6;display:grid;place-items:center;align-content:center;gap:16px;background:rgba(17,10,21,.88);text-align:center;padding:24px}
.letter-start-prompt strong{font-size:1.1rem;color:rgba(255,255,255,.85)}
.letter-skip{margin-bottom:max(6px,env(safe-area-inset-bottom))}
@media(prefers-reduced-motion:reduce){.letter-shot,.letter-closing{animation:none}}
/* legibility: reading text on the gift page never below 14px */
.scene-line{font-size:clamp(1rem,3.2vw,1.15rem)}
.ceremony-copy .scene-line{font-size:clamp(.95rem,2.6vw,1.1rem)}
.ceremony-promise,.ceremony-listening p{font-size:.92rem}
.rights-note{font-size:.85rem;color:rgba(255,255,255,.5)}
.souvenir-tip{font-size:.95rem}
.closing-line{font-size:1.02rem}
.skip-button span{font-size:.98rem}.skip-button small{font-size:.82rem}
.video-top{font-size:.92rem}.video-next small{font-size:.8rem}.video-next strong{font-size:.92rem}
/* v0.11.0 — letter creation journey (/create) */
.letter-page{background:#f8f3ee;color:#241d2a;font-family:Tahoma,"IBM Plex Sans Arabic","Noto Sans Arabic",system-ui,sans-serif;font-size:17px;line-height:1.75}
.letter-app{min-height:100svh;display:flex;flex-direction:column;max-width:560px;margin:0 auto;padding-inline:20px;padding-block:14px 32px}
.letter-header{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:8px;margin-bottom:10px}
.letter-back{width:44px;height:44px;border-radius:50%;border:1px solid rgba(66,38,63,.14);background:#fdfaf7;cursor:pointer;font-size:18px;display:grid;place-items:center;color:#241d2a}
.letter-brand{grid-column:2;text-align:center;text-decoration:none;color:#52254f;font-family:"Markazi Text",Georgia,serif;font-weight:700;font-size:26px;line-height:1}
.letter-brand small{font-family:Tahoma,sans-serif;font-weight:700;font-size:14px;letter-spacing:.14em;color:#cc708a;margin-right:8px;vertical-align:middle}
.letter-account{grid-column:3;justify-self:end;text-decoration:none;color:#52254f;font-size:.85rem;white-space:nowrap}
.letter-progress{margin:2px 0 8px}
.letter-bar{height:6px;border-radius:999px;background:rgba(66,38,63,.14);overflow:hidden}
.letter-bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#cc708a,#52254f);transition:width .6s cubic-bezier(.16,1,.3,1)}
.letter-cheer{text-align:center;color:#cc708a;font-size:.95rem;font-weight:700;margin:8px 0 16px}
.letter-screen{flex:1;display:flex;flex-direction:column;animation:letterRise .5s cubic-bezier(.16,1,.3,1) both}
@keyframes letterRise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.letter-screen h1{font-family:Tahoma,"IBM Plex Sans Arabic",system-ui,sans-serif;font-weight:700;font-size:clamp(1.65rem,7vw,2rem);line-height:1.45;margin:6px 0 10px;color:#321b35;text-wrap:balance}
.letter-screen h1.small{font-size:1.5rem}
.letter-screen h1.ruqaa{font-family:"Markazi Text",Georgia,serif;font-size:2.4rem;line-height:1.5}
.letter-screen h1 em{font-style:normal;color:#cc708a}
.letter-sub{color:#7a6f7e;margin:0 0 22px;font-size:1rem;line-height:1.8;max-width:34ch}
.letter-sub.center{text-align:center;max-width:30ch;margin-inline:auto}
.letter-field{width:100%;border:1.5px solid rgba(66,38,63,.14);background:#fdfaf7;border-radius:18px;padding:16px 18px;font-size:1.2rem;outline:none;color:#241d2a;transition:border-color .2s,box-shadow .2s}
.letter-field:focus{border-color:#cc708a;box-shadow:0 0 0 4px rgba(204,112,138,.14)}
.letter-textarea{min-height:180px;line-height:1.9;resize:vertical;font-size:1.2rem}
.letter-hint{color:#7a6f7e;font-size:.9rem;margin:10px 0 0}
.letter-hint.center{text-align:center}
.letter-error{color:#a53d5b;font-size:.95rem;margin:10px 0 0}
.letter-chips{display:flex;flex-wrap:wrap;gap:10px}
.letter-chip{border:1.5px solid rgba(66,38,63,.14);background:#fdfaf7;border-radius:999px;padding:12px 20px;cursor:pointer;font-size:1rem;color:#241d2a;transition:.2s}
.letter-chip[aria-pressed="true"]{background:#52254f;color:#fff;border-color:#52254f}
.letter-moods{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.letter-mood{border:1.5px solid rgba(66,38,63,.14);background:#fdfaf7;border-radius:20px;padding:18px 16px;text-align:right;cursor:pointer;display:flex;flex-direction:column;gap:6px;color:#241d2a;transition:.2s}
.letter-mood i{width:34px;height:34px;border-radius:50%;background:var(--c);box-shadow:0 8px 18px color-mix(in srgb,var(--c) 45%,transparent);margin-bottom:6px}
.letter-mood strong{font-size:1.05rem}
.letter-mood small{color:#7a6f7e;font-size:.85rem;line-height:1.65}
.letter-mood[aria-pressed="true"]{border-color:var(--c);box-shadow:0 0 0 4px color-mix(in srgb,var(--c) 22%,transparent)}
.letter-beds{display:flex;flex-direction:column;gap:10px}
.letter-bed{display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:12px;border:1.5px solid rgba(66,38,63,.14);background:#fdfaf7;border-radius:18px;padding:12px 14px;transition:.2s}
.letter-bed[data-on="true"]{border-color:var(--mood);box-shadow:0 0 0 4px color-mix(in srgb,var(--mood) 20%,transparent)}
.letter-play{width:48px;height:48px;border-radius:50%;border:none;background:color-mix(in srgb,var(--mood) 22%,#fdfaf7);color:#321b35;cursor:pointer;font-size:.95rem;display:grid;place-items:center}
.letter-bed-copy strong{display:block;font-size:1rem}
.letter-bed-copy small{color:#7a6f7e;font-size:.85rem}
.letter-pick{border:1.5px solid rgba(66,38,63,.14);background:transparent;border-radius:999px;padding:9px 16px;cursor:pointer;font-size:.95rem;color:#241d2a}
.letter-bed[data-on="true"] .letter-pick{background:#52254f;color:#fff;border-color:#52254f}
.letter-rec-wrap{display:flex;flex-direction:column;align-items:center;gap:14px;padding:22px 0 10px}
.letter-rec{width:96px;height:96px;border-radius:50%;border:none;background:#cc708a;color:#fff;font-size:34px;cursor:pointer;box-shadow:0 14px 34px rgba(204,112,138,.4);position:relative;display:grid;place-items:center}
.letter-rec.on{background:#52254f}
.letter-rec.on::after{content:"";position:absolute;inset:-10px;border-radius:50%;border:2px solid #cc708a;animation:letterRing 1.3s ease-out infinite}
@keyframes letterRing{to{transform:scale(1.35);opacity:0}}
.letter-rec-time{font-variant-numeric:tabular-nums;color:#7a6f7e;font-size:1.05rem}
.letter-recorded{display:flex;flex-direction:column;align-items:center;gap:8px;width:100%}
.letter-recorded audio{width:min(100%,360px)}
.letter-directions{display:flex;flex-direction:column;gap:12px}
.letter-direction{border:1.5px solid rgba(66,38,63,.14);background:#fdfaf7;border-radius:20px;padding:16px 18px;text-align:right;cursor:pointer;display:flex;flex-direction:column;gap:4px;color:#241d2a;transition:.2s}
.letter-direction strong{font-size:1.1rem;color:#52254f}
.letter-direction span{font-size:.95rem;color:#3e3344;line-height:1.7}
.letter-direction small{font-size:.85rem;color:#7a6f7e}
.letter-direction[aria-pressed="true"]{border-color:#cc708a;box-shadow:0 0 0 4px rgba(204,112,138,.14)}
.letter-actions{margin-top:auto;padding-top:22px;display:flex;flex-direction:column;gap:10px}
.letter-next{width:100%;border:none;border-radius:999px;padding:16px 22px;background:#52254f;color:#fff;font-size:1.05rem;font-weight:700;cursor:pointer;box-shadow:0 18px 50px rgba(50,27,53,.12);transition:transform .15s,opacity .2s}
.letter-next:active{transform:scale(.985)}
.letter-next:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}
.letter-next.rose{background:#cc708a}
.letter-skip{background:none;border:none;color:#7a6f7e;text-decoration:underline;cursor:pointer;font-size:1rem;padding:8px}
.letter-ghost-link{display:block;text-align:center;color:#7a6f7e;font-size:1rem;padding:10px;text-decoration:underline}
.letter-screen.welcome{align-items:center;text-align:center;justify-content:center;gap:10px;padding-block:28px}
.letter-halo{width:140px;height:140px;border-radius:50%;background:radial-gradient(circle at 40% 35%,#fff8f2,#cc708a 70%,#52254f 120%);box-shadow:0 30px 70px rgba(204,112,138,.35);display:grid;place-items:center;font-family:"Markazi Text",Georgia,serif;font-weight:700;font-size:58px;color:#2a1530;margin-bottom:8px}
.letter-preview-stage{position:relative;flex:1;border-radius:26px;background:radial-gradient(circle at 50% 12%,color-mix(in srgb,var(--mood,#cc708a) 32%,#1b1420),#120d16 70%);color:#fff;padding:30px 22px 44px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:380px;overflow:hidden}
.letter-preview-stage .letter-to strong{color:var(--mood,#e9a7b9);text-shadow:0 6px 30px color-mix(in srgb,var(--mood,#e9a7b9) 40%,transparent)}
.letter-preview-stage .letter-voice-pill i,.letter-preview-stage .letter-closing span{background:var(--mood,#e9a7b9)}
.letter-preview-stage .letter-closing span{background:none;color:var(--mood,#e9a7b9)}
.letter-preview-note{position:absolute;bottom:14px;left:16px;right:16px;color:rgba(255,255,255,.6);font-size:.9rem;margin:0}
.letter-link{display:flex;gap:8px;align-items:center;border:1.5px dashed rgba(66,38,63,.14);background:#fdfaf7;border-radius:16px;padding:8px 8px 8px 12px}
.letter-link input{flex:1;border:none;background:transparent;font:inherit;font-size:.95rem;direction:ltr;text-align:left;color:#3e3344;min-width:0}
.letter-link button{border:none;background:#52254f;color:#fff;border-radius:999px;padding:10px 16px;cursor:pointer;font-size:.95rem}
.letter-share-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
.letter-share{display:block;text-align:center;border:1.5px solid rgba(66,38,63,.14);background:#fdfaf7;border-radius:16px;padding:14px;cursor:pointer;font-size:1rem;color:#241d2a;text-decoration:none}
.letter-qr{display:block;width:min(220px,60vw);margin:18px auto 0;border-radius:16px;border:1px solid rgba(66,38,63,.14);background:#fff}
.letter-busy{position:fixed;inset:0;z-index:40;display:grid;place-items:center;align-content:center;gap:14px;background:rgba(248,243,238,.92);color:#52254f}
.letter-busy span{width:34px;height:34px;border:3px solid rgba(82,37,79,.15);border-top-color:#cc708a;border-radius:50%;animation:letterSpin .8s linear infinite}
@keyframes letterSpin{to{transform:rotate(360deg)}}
.letter-dialog{color:#241d2a}
.letter-page .toast{background:#52254f;color:#fff}
@media(prefers-reduced-motion:reduce){.letter-screen,.letter-rec.on::after{animation:none}}
/* v0.12.0 — اللوحات الفنية (Canvas) في صفحة الإهداء */
.board-scene{display:none!important;padding:0!important;background:#0b0714;overflow:hidden}
.board-scene.active{display:block!important}
.board-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;background:#0b0714}
.board-top{position:absolute;top:max(12px,env(safe-area-inset-top));left:0;right:0;padding-inline:clamp(14px,4vw,32px);z-index:3;pointer-events:none}
.board-hud{position:absolute;left:0;right:0;padding-inline:16px;text-align:center;z-index:3;pointer-events:none}
.board-hint{margin:0 auto;display:inline-block;font-family:Tahoma,"IBM Plex Sans Arabic","Noto Sans Arabic",system-ui,sans-serif;font-weight:700;font-size:1rem;line-height:1.5;color:#fff;padding:8px 18px;border-radius:999px;background:rgba(70,24,58,.6);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(6px);animation:boardPulse 2.4s ease-in-out infinite}
@keyframes boardPulse{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
.board-closing{position:absolute;left:0;right:0;padding-inline:16px;text-align:center;z-index:3;pointer-events:none;animation:letterIn 1.2s ease both}
.board-from{font-family:"Aref Ruqaa",Georgia,serif;font-weight:700;font-size:2.3rem;line-height:1.15;color:#f3d59f;text-shadow:0 0 26px rgba(255,214,140,.45)}
.board-from span{display:block;font-family:"Aref Ruqaa",Georgia,serif;font-size:1.55rem;line-height:1.3;color:#fff5ee;margin-top:2px}
.board-voice-pill{position:absolute;top:calc(max(12px,env(safe-area-inset-top)) + 44px);left:50%;transform:translateX(-50%);z-index:3;pointer-events:none}
.board-skip{position:absolute;bottom:max(14px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);margin:0;z-index:3;color:rgba(255,255,255,.55);display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
@media(prefers-reduced-motion:reduce){.board-hint,.board-closing{animation:none}}
/* v0.12.0 — لوحة الانتظار: الإهداء يُفتح كما صُنع */
.gift-wait{position:fixed;inset:0;z-index:40;display:grid;place-content:center;gap:18px;text-align:center;padding:24px;background:radial-gradient(circle at 50% 40%,rgba(132,51,110,.35),transparent 45%),#110a15;color:#fff}
.gift-wait p{margin:0;font-size:1.15rem;font-weight:600;line-height:1.7;max-width:26ch}
.gift-wait-mark{display:flex;gap:10px;justify-content:center}
.gift-wait-mark i{width:12px;height:12px;border-radius:50%;background:#e9a7b9;animation:waitDot 1.2s ease-in-out infinite}
.gift-wait-mark i:nth-child(2){animation-delay:.2s}.gift-wait-mark i:nth-child(3){animation-delay:.4s}
@keyframes waitDot{0%,100%{transform:translateY(0);opacity:.5}50%{transform:translateY(-8px);opacity:1}}
@media(prefers-reduced-motion:reduce){.gift-wait-mark i{animation:none}}

/* بوابة بسيطة لتجارب المناسبة: بدل المراسم القديمة، لمسة واحدة تفتح الصوت والتجربة */
.gate-button{display:none;margin:18px auto 0;font-size:1.15rem;padding:16px 34px}
body[data-gate="simple"] .gate-button{display:inline-flex}
body[data-gate="simple"] .ceremony-stage,body[data-gate="simple"] .ceremony-guidance{display:none!important}
/* اختيار التجربة بالمناسبة في مسار الإنشاء */
.letter-exps{display:grid;gap:12px}
.letter-exp{border:1.5px solid rgba(66,38,63,.14);background:#fdfaf7;border-radius:20px;padding:12px 14px;text-align:right;cursor:pointer;display:flex;align-items:center;gap:14px;color:#241d2a;transition:.2s}
.letter-exp img{width:72px;height:72px;object-fit:contain;flex:0 0 auto;filter:drop-shadow(0 6px 12px rgba(0,0,0,.18))}
.letter-exp span{display:flex;flex-direction:column;gap:4px}
.letter-exp strong{font-family:"Markazi Text",Georgia,serif;font-size:1.3rem;line-height:1.3}
.letter-exp small{color:#7a6f7e;font-size:.85rem;line-height:1.6}
.letter-exp[aria-pressed="true"]{border-color:#d9587d;box-shadow:0 0 0 4px rgba(217,88,125,.18)}
.letter-age{margin-top:16px;display:grid;gap:8px}
.letter-age label{font-weight:700;font-size:.95rem;color:#4a3d49}
.letter-age input{text-align:center;max-width:220px}
/* زر فعل داخل التجربة (مثل «انفخ الشموع 🎤») يطلب إذن الجوال داخل اللمسة نفسها */
.board-action{position:absolute;left:50%;transform:translateX(-50%);z-index:4;font-size:1.15rem;padding:16px 30px;white-space:nowrap;box-shadow:0 14px 40px rgba(255,210,122,.25)}
