@font-face{font-family:Sacramento;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/sacramento-latin-400-normal-mRAQrhvZ.woff2) format("woff2"),url(/assets/sacramento-latin-400-normal-D-mHOmJi.woff) format("woff")}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/caveat-latin-400-normal-D6LQsQ_v.woff2) format("woff2"),url(/assets/caveat-latin-400-normal-BzhAQZkN.woff) format("woff")}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/caveat-latin-500-normal-B9SDL8cy.woff2) format("woff2"),url(/assets/caveat-latin-500-normal-Do9veZfZ.woff) format("woff")}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/caveat-latin-600-normal-zlTlWIYU.woff2) format("woff2"),url(/assets/caveat-latin-600-normal-DUjB8dgm.woff) format("woff")}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/caveat-latin-700-normal-D8_1Nw6V.woff2) format("woff2"),url(/assets/caveat-latin-700-normal-cPyBTTZN.woff) format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/manrope-latin-500-normal-BYYD-dBL.woff2) format("woff2"),url(/assets/manrope-latin-500-normal-DMZssgOp.woff) format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/manrope-latin-600-normal-4f0koTD-.woff2) format("woff2"),url(/assets/manrope-latin-600-normal-BqgrALkZ.woff) format("woff")}@font-face{font-family:Nunito Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/nunito-sans-latin-400-normal-AkRraKH2.woff2) format("woff2"),url(/assets/nunito-sans-latin-400-normal-DY9yCUyQ.woff) format("woff")}@font-face{font-family:Nunito Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/nunito-sans-latin-500-normal-DlmaWqTx.woff2) format("woff2"),url(/assets/nunito-sans-latin-500-normal-BkymD7ni.woff) format("woff")}@font-face{font-family:Nunito Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/nunito-sans-latin-600-normal-BtVRvDNj.woff2) format("woff2"),url(/assets/nunito-sans-latin-600-normal-DLks-Kj1.woff) format("woff")}@font-face{font-family:Nunito Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-sans-latin-700-normal-CICRJDmU.woff2) format("woff2"),url(/assets/nunito-sans-latin-700-normal-CLVG92B9.woff) format("woff")}@font-face{font-family:Nunito Sans;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-sans-latin-800-normal-MgCk9Q3Y.woff2) format("woff2"),url(/assets/nunito-sans-latin-800-normal-DOf_K5Iw.woff) format("woff")}:root{font-family:Manrope,sans-serif;color:var(--color-text, #fff8f4);background:var(--color-background-deep, #3b0207);font-synthesis:none;text-rendering:optimizeLegibility;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body,#app{width:100%;min-width:320px;height:100%;min-height:100%;margin:0}body{overflow:hidden;background:var(--color-background-deep, #3b0207);font-family:Manrope,sans-serif}button,input{font:inherit}button:focus-visible,input:focus-visible{outline:3px solid rgba(255,248,244,.88);outline-offset:4px}.script-heading:focus{outline:none}.gift-shell{position:relative;isolation:isolate;width:100%;height:100dvh;min-height:420px;overflow:hidden;background:radial-gradient(circle at 15% 18%,rgba(255,185,194,.09),transparent 27rem),radial-gradient(circle at 85% 80%,rgba(255,225,221,.055),transparent 30rem),linear-gradient(145deg,var(--color-background, #65070d),var(--color-background-deep, #3b0207))}.gift-shell:before{content:"";position:absolute;z-index:-1;inset:0;opacity:.22;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 20%,#000 80%,transparent);mask-image:linear-gradient(to bottom,transparent,#000 20%,#000 80%,transparent)}.gift-shell:after{content:"";position:absolute;z-index:10;inset:clamp(8px,1.6vw,20px);border:1px solid rgba(255,235,232,.12);pointer-events:none}.atmosphere{position:absolute;z-index:0;inset:0;overflow:hidden;pointer-events:none}.atmosphere__mote{position:absolute;width:3px;height:3px;border-radius:50%;background:var(--color-accent, #f6c3cb);opacity:.3;box-shadow:0 0 10px #f6c3cb99;animation:mote-float calc(6s + var(--mote-index) * .2s) ease-in-out infinite alternate;animation-delay:calc(var(--mote-index) * -.41s)}.scene{position:absolute;z-index:1;inset:0;display:flex;visibility:hidden;align-items:center;justify-content:center;opacity:0;transform:translateY(14px) scale(.994);transition:opacity .48s ease,transform .48s cubic-bezier(.22,1,.36,1),visibility 0s linear .48s;pointer-events:none}.scene.is-active{visibility:visible;opacity:1;transform:translateY(0) scale(1);transition-delay:0s;pointer-events:auto}.scene.is-leaving{visibility:visible;opacity:0;transform:translateY(-10px) scale(1.005)}.scene--center{padding:clamp(1.5rem,5vw,4rem);overflow:hidden auto;overscroll-behavior:contain;text-align:center}.scene--center>.scene__content{margin-block:auto;padding-block:clamp(1rem,3vh,2rem)}.scene--scrollable{display:block}.scene__scroll{width:100%;height:100%;overflow:hidden auto;overscroll-behavior:contain;scrollbar-color:rgba(246,195,203,.42) transparent;scrollbar-width:thin}.scene__content{position:relative;width:min(100%,68rem);margin-inline:auto}.scene__content--intro{display:grid;justify-items:center;gap:clamp(1rem,2.8vh,1.7rem);max-width:44rem}.scene__content--envelope{display:grid;justify-items:center;gap:clamp(1.4rem,4vh,2.2rem)}.scene__content--letter{display:grid;justify-items:center;gap:clamp(1.7rem,3.5vw,2.8rem);max-width:52rem;padding:clamp(2.8rem,8vh,5.5rem) 1.25rem clamp(4rem,10vh,7rem)}.scene__content--choice,.scene__content--ending{display:grid;max-width:64rem;justify-items:center;gap:clamp(1.35rem,3.5vh,2.35rem)}.script-heading{max-width:58rem;min-height:1.15em;margin:0;color:var(--color-text, #fff8f4);font-family:Sacramento,cursive;font-size:clamp(3.8rem,10vw,8.25rem);font-weight:400;line-height:.95;letter-spacing:.01em;text-wrap:balance;text-shadow:0 4px 28px rgba(25,0,3,.26)}.scene__content--letter .script-heading{font-size:clamp(3.55rem,8vw,6.2rem)}.scene__content--choice .script-heading,.scene__content--ending .script-heading{font-size:clamp(3.2rem,8vw,6.4rem)}.intro-copy{max-width:34rem;margin:0;color:var(--color-muted, #e5c7c8);font-family:Caveat,cursive;font-size:clamp(1.05rem,2.3vw,1.42rem);line-height:1.55;text-wrap:balance}.button{min-width:7.75rem;min-height:2.75rem;padding:.7rem 1.55rem;border:1px solid rgba(255,255,255,.56);border-radius:999px;color:#521017;background:var(--color-accent, #f6c3cb);box-shadow:0 .7rem 2.2rem #18000333,inset 0 1px #ffffffa8;font-family:Manrope,sans-serif;font-size:.82rem;font-weight:600;line-height:1.2;cursor:pointer;transition:transform .18s ease,background-color .18s ease,box-shadow .18s ease}.button:hover{transform:translateY(-2px);background:#ffd5db;box-shadow:0 .9rem 2.5rem #18000347,inset 0 1px #ffffffc7}.button:active{transform:translateY(0) scale(.98)}.button--ghost{color:var(--color-text, #fff8f4);border-color:#fff8f466;background:#fff8f414;box-shadow:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.button--ghost:hover{background:#fff8f426}.button-stack{display:grid;justify-items:center;gap:.65rem}.choice-actions{display:flex;align-items:center;justify-content:center;gap:clamp(.8rem,4vw,4rem);width:min(100%,34rem)}.choice-actions .button{flex:1 1 0;max-width:12rem}.envelope-art{position:relative;width:clamp(17rem,44vw,30rem);aspect-ratio:1.5;filter:drop-shadow(0 1.4rem 1.2rem rgba(20,0,2,.24));animation:envelope-breathe 4s ease-in-out infinite}.envelope-art__image{display:block;width:100%;height:100%;object-fit:contain}.envelope-art--missing{visibility:hidden}.music-player{display:grid;grid-template-columns:auto minmax(0,1fr);width:min(100%,30rem);padding:.65rem;border:1px solid var(--player-border, rgba(255, 232, 235, .22));border-radius:.7rem;background:linear-gradient(120deg,rgba(255,255,255,.08),transparent 42%),var(--player-gradient, linear-gradient(110deg, #b20e34, #8a0a27 58%, #71071f));box-shadow:0 1rem 2.4rem var(--player-shadow, rgba(24, 0, 3, .24)),inset 0 1px #ffffff1f;font-family:Manrope,sans-serif;text-align:left}.music-player__cover{width:5rem;height:5rem;overflow:hidden;border-radius:.5rem;background:#ffffff1f;box-shadow:0 .45rem 1.15rem var(--player-shadow, rgba(31, 0, 4, .25))}.music-player__cover img{display:block;width:100%;height:100%;object-fit:cover}.music-player__details{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:.5rem .85rem;min-width:0;padding:.05rem .1rem .05rem .85rem}.music-player__meta{display:grid;min-width:0;gap:.08rem}.music-player__title-viewport,.music-player__artist{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.music-player__title-viewport{display:block;min-width:0}.music-player__title-text{display:inline-block;min-width:max-content;font-size:.88rem;font-weight:600;letter-spacing:-.01em;will-change:transform}.music-player__title-viewport.is-overflowing .music-player__title-text{padding-right:1.75rem;animation:music-title-marquee var(--marquee-duration, 8s) ease-in-out infinite alternate}.music-player__artist{color:var(--color-muted, rgba(255, 248, 244, .68));font-size:.66rem}.music-player__eyebrow{margin-bottom:.13rem;color:var(--color-muted, rgba(255, 248, 244, .58));font-size:.5rem;font-weight:600;letter-spacing:.17em;text-transform:uppercase}.music-player__controls{display:flex;align-items:center;gap:.68rem}.music-player__more{display:flex;gap:.18rem}.music-player__more i{width:.18rem;height:.18rem;border-radius:50%;background:#fff8f4ad}.music-player__nav{display:grid;place-items:center;width:1.95rem;height:1.95rem;padding:0;border:1px solid var(--player-border, rgba(255, 255, 255, .3));border-radius:50%;color:var(--color-text, #fff8f4);background:#ffffff1f;cursor:pointer;transition:transform .14s ease,background-color .14s ease}.music-player__nav:hover{transform:scale(1.1);background:#ffffff38}.music-player__nav:active{transform:scale(.92)}.music-player__toggle{display:grid;width:2.45rem;height:2.45rem;padding:0;place-items:center;border:1px solid rgba(255,255,255,.52);border-radius:50%;color:var(--player-toggle-color, #65070d);background:var(--player-toggle-bg, #ffe4e7);box-shadow:0 .4rem .9rem var(--player-toggle-shadow, rgba(39, 0, 5, .22));cursor:pointer;transition:transform .16s ease,background-color .16s ease}.music-player__toggle:hover{transform:scale(1.07);background:var(--player-toggle-hover, #fff4f5)}.music-player__toggle:active{transform:scale(.96)}.music-player__toggle:disabled,.music-player__timeline input:disabled{cursor:not-allowed;opacity:.48}.play-icon{width:0;height:0;margin-left:.15rem;border-top:.32rem solid transparent;border-bottom:.32rem solid transparent;border-left:.48rem solid currentColor}.music-player__toggle.is-playing .play-icon{width:.5rem;height:.7rem;margin:0;border:0;border-right:.16rem solid currentColor;border-left:.16rem solid currentColor}.music-player__timeline{display:grid;grid-column:1 / -1;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.5rem;color:var(--color-muted, rgba(255, 248, 244, .62));font-size:.54rem;font-variant-numeric:tabular-nums}.music-player__timeline input{--progress: 0%;appearance:none;width:100%;height:.22rem;margin:0;border-radius:999px;background:linear-gradient(to right,var(--player-progress, #fff5f5) 0 var(--progress),rgba(255,255,255,.3) var(--progress) 100%);cursor:pointer}.music-player__timeline input::-webkit-slider-thumb{appearance:none;width:.68rem;height:.68rem;border:0;border-radius:50%;background:var(--player-thumb, #fff5f5);box-shadow:0 .1rem .35rem var(--player-thumb-shadow, rgba(34, 0, 4, .32))}.music-player__timeline input::-moz-range-thumb{width:.68rem;height:.68rem;border:0;border-radius:50%;background:var(--player-thumb, #fff5f5);box-shadow:0 .1rem .35rem var(--player-thumb-shadow, rgba(34, 0, 4, .32))}.music-player__status{grid-column:1 / -1;min-height:0;margin:.45rem 0 0;color:var(--color-muted, rgba(255, 248, 244, .82));font-size:.62rem;text-align:center}.music-player__status:empty{display:none}.letter-card{width:min(100%,41rem);color:var(--color-text, #fff8f4);font-family:Caveat,cursive,sans-serif;font-size:clamp(1.24rem,2.5vw,1.52rem);line-height:1.62;letter-spacing:.01em;text-align:left;cursor:text}.letter-card:focus-visible{outline:2px solid rgba(255,248,244,.58);outline-offset:.7rem;border-radius:.25rem}.letter-card p{margin:0 0 2em}.letter-card__signoff{display:grid;gap:.25rem;margin-top:2.8rem}.letter-actions{display:grid;justify-items:center;gap:.85rem;width:min(100%,41rem);margin-top:-.5rem}.letter-skip{display:inline-flex;align-items:center;justify-content:center;min-height:auto;padding:.15rem .05rem .22rem;border:0;border-bottom:1px solid currentColor;border-radius:0;color:var(--color-muted, #e5c7c8);background:transparent;box-shadow:none;font:600 1.18rem/1 Caveat,cursive;letter-spacing:.04em;cursor:pointer;transition:color .16s ease,opacity .16s ease}.letter-skip:hover{color:var(--color-text, #fff8f4);opacity:.82}.letter-skip[hidden]{display:none}.js-letter-type.is-typing:after{content:"";display:inline-block;width:.08em;height:.92em;margin-left:.12em;vertical-align:-.08em;background:currentColor;animation:letter-caret .76s steps(1,end) infinite}.letter-continue{transition:opacity .36s ease,transform .36s ease,visibility 0s linear 0s,background-color .18s ease,box-shadow .18s ease}.scene__content--letter.is-typing-letter .letter-continue{visibility:hidden;opacity:0;transform:translateY(.75rem);transition-delay:0s;pointer-events:none}.character{position:relative;width:clamp(12rem,28vw,18rem);aspect-ratio:1}.character:after{content:"";position:absolute;z-index:-1;right:13%;bottom:2%;left:13%;height:11%;border-radius:50%;background:#1a000342;filter:blur(10px)}.character__motion{position:absolute;inset:0;transform-origin:50% 84%;will-change:transform}.character__frame{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;opacity:0;filter:drop-shadow(0 .75rem .8rem rgba(28,0,2,.17));will-change:opacity}.character__frame:first-child{opacity:1}.character--multi .character__frame:first-child{animation:sprite-frame-a var(--sprite-cycle, 2.4s) steps(1,end) infinite}.character--multi .character__frame:nth-child(2){animation:sprite-frame-b var(--sprite-cycle, 2.4s) steps(1,end) infinite}.character--missing{display:none}.scene.is-active .character--question{animation:character-arrive .6s cubic-bezier(.22,1,.36,1) both}.scene.is-active .character--question .character__motion{animation:character-nervous 2.6s ease-in-out .6s infinite}.character--question{--sprite-cycle: 1.8s}.scene.is-active .character--celebrate{animation:character-pop .7s cubic-bezier(.34,1.56,.64,1) both}.scene.is-active .character--celebrate .character__motion{animation:character-happy-hop 1.9s ease-in-out .7s infinite}.character--celebrate{--sprite-cycle: 1.15s}.scene.is-active .character--comfort{animation:character-arrive .7s ease-out both}.scene.is-active .character--comfort .character__motion{animation:character-patient 4.2s ease-in-out .7s infinite}.character--comfort{--sprite-cycle: 3.2s}.scene.is-active .character--promise{animation:character-pop .7s cubic-bezier(.34,1.56,.64,1) both}.scene.is-active .character--promise .character__motion{animation:character-heartbeat 2.8s ease-in-out .7s infinite}.character--promise{--sprite-cycle: 2.4s}.ending-copy{max-width:34rem;margin:0;color:var(--color-muted, #e5c7c8);font-family:Caveat,cursive;font-weight:500;font-size:clamp(1.05rem,2.4vw,1.4rem);line-height:1.7;text-wrap:balance}.love-line{font-family:Caveat,cursive;font-size:clamp(1.3rem,3vw,2rem);font-weight:600}@keyframes envelope-breathe{0%,to{transform:translateY(0) rotate(-.35deg)}50%{transform:translateY(-7px) rotate(.35deg)}}@keyframes mote-float{0%{transform:translate3d(-4px,9px,0) scale(.8);opacity:.12}to{transform:translate3d(6px,-12px,0) scale(1.25);opacity:.5}}@keyframes character-arrive{0%{opacity:0;transform:translateY(18px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes character-pop{0%{opacity:0;transform:translateY(28px) scale(.7) rotate(-4deg)}65%{opacity:1;transform:translateY(-8px) scale(1.08) rotate(2deg)}to{opacity:1;transform:translateY(0) scale(1) rotate(0)}}@keyframes character-nervous{0%,24%,50%,76%,to{transform:translate(0) translateY(0) rotate(0)}27%{transform:translate(-2px) translateY(1px) rotate(-.7deg)}30%{transform:translate(2px) translateY(1px) rotate(.7deg)}53%{transform:translate(-1px) translateY(0) rotate(-.4deg)}56%{transform:translate(1px) translateY(0) rotate(.4deg)}}@keyframes character-happy-hop{0%,to{transform:translateY(0) rotate(-1deg) scale(1)}35%{transform:translateY(-12px) rotate(2deg) scale(1.025)}52%{transform:translateY(1px) rotate(-.5deg) scale(.99)}68%{transform:translateY(-5px) rotate(1deg) scale(1.01)}}@keyframes character-patient{0%,to{transform:translateY(0) rotate(-.8deg) scale(1)}50%{transform:translateY(4px) rotate(.8deg) scale(.985)}}@keyframes character-heartbeat{0%,26%,to{transform:translateY(0) rotate(-.5deg) scale(1)}10%{transform:translateY(-2px) rotate(.5deg) scale(1.035)}18%{transform:translateY(0) rotate(-.25deg) scale(1.012)}60%{transform:translateY(-5px) rotate(.7deg) scale(1)}}@keyframes sprite-frame-a{0%,48%{opacity:1}49%,to{opacity:0}}@keyframes sprite-frame-b{0%,48%{opacity:0}49%,to{opacity:1}}@keyframes letter-caret{0%,48%{opacity:1}49%,to{opacity:0}}@keyframes music-title-marquee{0%,16%{transform:translate(0)}84%,to{transform:translate(calc(-1 * var(--marquee-distance, 0px)))}}@media(max-width:600px){.gift-shell{min-height:360px}.gift-shell:after{inset:.45rem}.scene--center{padding:max(1.4rem,env(safe-area-inset-top)) 1.25rem max(1.4rem,env(safe-area-inset-bottom))}.script-heading{font-size:clamp(3.45rem,17vw,5.2rem);line-height:.92}.scene__content--choice .script-heading,.scene__content--ending .script-heading{font-size:clamp(3rem,14vw,4.5rem)}.scene__content--letter{padding:max(2.8rem,env(safe-area-inset-top)) 1.35rem max(4rem,env(safe-area-inset-bottom))}.scene__content--letter .script-heading{font-size:clamp(3.5rem,16vw,4.8rem)}.intro-copy{font-size:1.08rem}.choice-actions{gap:.75rem}.choice-actions .button{min-width:0;padding-inline:1rem}.music-player{width:100%}.letter-card{font-size:1.25rem;line-height:1.55}.character{width:clamp(13rem,72vw,19rem)}}@media(max-height:700px)and (orientation:landscape){.scene--center{padding:1rem 2rem}.scene__content--intro,.scene__content--choice,.scene__content--ending{gap:clamp(.75rem,2.6vh,1.15rem)}.script-heading,.scene__content--choice .script-heading,.scene__content--ending .script-heading{font-size:clamp(3rem,8.8vh,4.6rem)}.intro-copy,.ending-copy{font-size:1rem}.envelope-art{width:min(52vh,22rem)}.character{width:min(52vh,18rem)}.button{min-height:2.45rem;padding-block:.55rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0s!important}.character--multi .character__frame:first-child{opacity:1!important}.character--multi .character__frame:not(:first-child){opacity:0!important}.music-player__title-viewport.is-overflowing .music-player__title-text{max-width:100%;padding-right:0;overflow:hidden;text-overflow:ellipsis;animation:none!important}}html.workspace-root{background:#f4ece8;color-scheme:light}body.workspace-page{--workspace-ink: #2f2022;--workspace-muted: #746468;--workspace-line: #e8d9d8;--workspace-paper: #fffdf9;--workspace-blush: #f6e7e5;--workspace-accent: #7d1824;overflow:auto;color:var(--workspace-ink);background:radial-gradient(circle at 8% 5%,rgba(143,32,48,.08),transparent 28rem),linear-gradient(180deg,#fbf5f1,#f4ece8);font-family:Nunito Sans,system-ui,sans-serif;color-scheme:light}.workspace-page *,.workspace-page *:before,.workspace-page *:after{box-sizing:border-box}.workspace-page #app{min-height:100dvh;height:auto}.workspace-page button,.workspace-page input,.workspace-page textarea,.workspace-page select{font:inherit}.workspace-page button:focus-visible,.workspace-page input:focus-visible,.workspace-page textarea:focus-visible,.workspace-page select:focus-visible{outline:3px solid rgba(125,24,36,.25);outline-offset:3px}.eyebrow{display:block;color:var(--workspace-accent);font-size:.72rem;font-weight:800;letter-spacing:.17em;text-transform:uppercase}.ui-button,.text-button,.step-button,.visual-choice,.palette-choice,.player-button{border:0;cursor:pointer}.ui-button{min-height:3rem;padding:.75rem 1.25rem;border:1px solid var(--workspace-accent);border-radius:999px;color:#fff;background:var(--workspace-accent);font-weight:800;transition:transform .16s ease,box-shadow .16s ease,opacity .16s ease}.ui-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 9px 22px #4d151c2e}.ui-button:disabled{cursor:not-allowed;opacity:.45}.ui-button--secondary{color:var(--workspace-ink);background:#fff;border-color:var(--workspace-line)}.ui-button--light{color:#3a292b;background:#fff;border-color:transparent}.ui-button--danger{background:#9c1f2e;border-color:#9c1f2e}.text-button{padding:.45rem .25rem;color:var(--workspace-accent);background:transparent;font-weight:800}.text-button:disabled{opacity:.35;cursor:not-allowed}.text-button--danger{color:#b32031}.text-input{width:100%;min-height:3.2rem;padding:.82rem .95rem;border:1px solid #dac9c8;border-radius:.8rem;color:var(--workspace-ink);background:#fffefa;outline:none}.text-input:focus{border-color:#a84551;box-shadow:0 0 0 4px #7d182414}.text-area{resize:vertical;line-height:1.65}.form-field{display:grid;align-content:start;gap:.45rem;min-width:0}.form-field--full{grid-column:1 / -1}.form-field__label{font-size:.83rem;font-weight:800}.form-field__hint{color:var(--workspace-muted);line-height:1.5}.language-switcher{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;padding:.35rem;border:1px solid #dac9c8;border-radius:.85rem;background:#fffefa}.language-pill{display:flex;align-items:center;justify-content:center;min-height:2.75rem;padding:.5rem .85rem;border:1px solid transparent;border-radius:.65rem;color:var(--workspace-muted);background:transparent;font-family:inherit;font-size:.84rem;font-weight:700;cursor:pointer;transition:background-color .15s ease,color .15s ease,border-color .15s ease,box-shadow .15s ease}.language-pill.is-active{color:#fff;background:var(--workspace-accent);border-color:var(--workspace-accent);box-shadow:0 4px 12px #7d182429}.language-pill:hover:not(.is-active){background:#7d18240d;color:var(--workspace-ink)}.language-switcher__select{position:absolute;opacity:0;width:1px;height:1px;padding:0;margin:-1px;border:0;clip:rect(0,0,0,0);pointer-events:none}.form-grid{display:grid;gap:1rem;margin-top:1.25rem}.form-grid--two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-subheading{margin:2.2rem 0 .8rem;font-size:1rem}.form-subheading-copy{margin:-.45rem 0 .8rem;color:var(--workspace-muted);font-size:.82rem;line-height:1.55}.form-error{color:#a31629;font-weight:700}.access-state{display:grid;place-content:center;justify-items:center;min-height:100dvh;padding:2rem;text-align:center}.access-state h1{margin:.7rem 0;font-family:Sacramento,cursive;font-size:clamp(3rem,8vw,5.5rem);font-weight:400}.access-state p{max-width:34rem;margin:0 0 1.5rem;color:var(--workspace-muted);line-height:1.7}.access-state--gift{color:#fff8f4;background:linear-gradient(145deg,#65070d,#360106)}.access-state--gift p{color:#f0d2d4}.access-state--gift .eyebrow{color:#f6c3cb}.loading-mark{width:2.2rem;height:2.2rem;border:3px solid rgba(125,24,36,.16);border-top-color:var(--workspace-accent);border-radius:50%;animation:workspace-spin .8s linear infinite}.studio-shell{min-height:100dvh}.studio-header{position:sticky;z-index:20;top:0;display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:5.2rem;padding:.8rem max(1rem,calc((100vw - 78rem)/2));border-bottom:1px solid rgba(91,53,55,.12);background:#fffcf8e6;box-shadow:0 9px 32px #3f1e200d;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.studio-brand{display:grid;gap:.2rem}.studio-brand strong{font-family:Nunito Sans,system-ui,sans-serif;font-size:1.4rem}.status-pill{padding:.5rem .75rem;border:1px solid var(--workspace-line);border-radius:999px;color:var(--workspace-muted);background:#fff;font-size:.76rem;font-weight:800}.status-pill[data-status=saving]{color:#6b4c0d;background:#fff7dc}.status-pill[data-status=error]{color:#9c1f2e;background:#fff0f1}.status-pill[data-status=published]{color:#17613f;background:#eaf8f1}.status-pill[data-status=dirty]{color:#81550d;background:#fff8e8}.status-pill[data-status=unpublished]{color:#81550d;background:#fff1c9}.studio-layout{display:grid;grid-template-columns:17rem minmax(0,1fr);gap:1.4rem;width:min(100% - 2rem,78rem);margin:0 auto;padding:1.6rem 0 3rem}.studio-steps{position:sticky;top:6.8rem;align-self:start;display:grid;gap:.55rem}.step-button{display:grid;grid-template-columns:2rem 1fr;gap:.7rem;align-items:center;width:100%;padding:.75rem;border:1px solid transparent;border-radius:.85rem;color:var(--workspace-muted);background:transparent;text-align:left}.step-button:hover{background:#fff9}.step-button.is-active{border-color:var(--workspace-line);color:var(--workspace-ink);background:#fff;box-shadow:0 8px 24px #371b1d0f}.step-button__number{display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;color:#fff;background:#ae8e8f;font-weight:800}.step-button.is-active .step-button__number{background:var(--workspace-accent)}.step-button__copy{display:grid;gap:.12rem}.step-button__copy strong{font-size:.83rem}.step-button__copy small{font-size:.69rem}.studio-panel{min-width:0;padding:clamp(1.2rem,3vw,2.4rem);border:1px solid var(--workspace-line);border-radius:1.5rem;background:#fffdf9f5;box-shadow:0 18px 60px #411e2012}.studio-section-heading{position:relative;max-width:none;padding-right:12.5rem}.studio-section-heading h2{margin:.55rem 0;font-family:Nunito Sans,system-ui,sans-serif;font-size:clamp(2.2rem,5vw,3.5rem);line-height:1}.studio-section-heading p{max-width:44rem;margin:0;color:var(--workspace-muted);line-height:1.65}.live-preview-trigger{position:absolute;top:0;right:0;min-height:2.7rem;padding:.65rem 1rem}.studio-panel>.form-field{margin-top:1rem}.studio-panel-footer{display:flex;justify-content:space-between;gap:1rem;margin-top:2.5rem;padding-top:1.3rem;border-top:1px solid var(--workspace-line)}.choice-grid{display:grid;gap:.85rem}.choice-grid--mascot,.choice-grid--palette{grid-template-columns:repeat(2,minmax(0,1fr))}.visual-choice,.palette-choice{position:relative;display:flex;gap:1rem;align-items:center;min-width:0;padding:.9rem;border:1px solid var(--workspace-line);border-radius:1rem;color:var(--workspace-ink);background:#fff;text-align:left}.visual-choice.is-selected,.palette-choice.is-selected{border-color:var(--workspace-accent);box-shadow:0 0 0 3px #7d182414}.visual-choice img{width:5.2rem;height:5.2rem;object-fit:contain}.visual-choice>span,.palette-choice>span:last-child{display:grid;gap:.35rem}.visual-choice small,.palette-choice small{color:var(--workspace-muted);line-height:1.45}.palette-swatches{display:flex;overflow:hidden;flex:0 0 5.2rem;height:3.2rem;border-radius:.7rem}.palette-swatches i{flex:1}.style-preview{position:relative;isolation:isolate;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;min-height:12.5rem;margin-top:1.5rem;padding:1.6rem 2rem;overflow:hidden;border:1px solid rgba(255,255,255,.18);border-radius:1.4rem;color:var(--preview-text);background:radial-gradient(circle at 10% 20%,rgba(255,255,255,.08),transparent 22rem),radial-gradient(circle at 85% 80%,rgba(255,255,255,.05),transparent 26rem),linear-gradient(135deg,var(--preview-bg),var(--preview-surface));box-shadow:inset 0 1px #ffffff38,0 16px 40px #230c1029}.style-preview__content{display:grid;gap:.5rem;min-width:0;flex:1;max-width:38rem}.style-preview__badge{display:inline-flex;align-items:center;gap:.45rem;width:fit-content;padding:.32rem .75rem;border:1px solid rgba(255,255,255,.18);border-radius:999px;color:var(--preview-accent);background:#00000038;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:.68rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.style-preview__pulse{width:.45rem;height:.45rem;border-radius:50%;background:var(--preview-accent);box-shadow:0 0 8px var(--preview-accent);animation:preview-pulse 2s ease-in-out infinite}@keyframes preview-pulse{0%,to{opacity:.9;transform:scale(1)}50%{opacity:.4;transform:scale(.85)}}.style-preview__title{font-family:Sacramento,cursive;font-size:clamp(2.1rem,4.2vw,3.4rem);font-weight:400;line-height:1.15;text-wrap:balance;text-shadow:0 2px 14px rgba(0,0,0,.32)}.style-preview__meta{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem;margin-top:.2rem}.style-preview__recipient{display:inline-flex;align-items:center;gap:.3rem;padding:.3rem .75rem;border-radius:.65rem;background:#ffffff1f;font-size:.8rem;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.style-preview__recipient-label{opacity:.8;font-size:.74rem}.style-preview__theme-pill{padding:.3rem .75rem;border:1px solid rgba(255,255,255,.14);border-radius:.65rem;font-size:.74rem;opacity:.85}.style-preview__mascot-frame{position:relative;flex:0 0 clamp(8rem,22vw,13rem);display:flex;align-items:flex-end;justify-content:center}.style-preview__mascot-frame:before{content:"";position:absolute;bottom:0;width:90%;height:90%;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.16),transparent 70%);filter:blur(10px);pointer-events:none}.style-preview__image{position:relative;z-index:1;width:100%;max-height:11rem;object-fit:contain;filter:drop-shadow(0 12px 24px rgba(0,0,0,.35));transition:transform .3s cubic-bezier(.16,1,.3,1)}.style-preview:hover .style-preview__image{transform:scale(1.04) translateY(-3px)}.storyline-tracker{display:grid;gap:.75rem;margin-top:1.25rem;padding:1rem 1.25rem;border:1px solid #ebd9dc;border-radius:1.15rem;background:#fffbfa}.storyline-tracker__title{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem}.storyline-tracker__title span{font-size:.82rem;font-weight:800;color:var(--workspace-accent);letter-spacing:.04em}.storyline-tracker__title small{color:var(--workspace-muted);font-size:.72rem}.storyline-tracker__steps{display:flex;align-items:center;gap:.45rem;overflow-x:auto;padding-bottom:.2rem;scrollbar-width:thin}.storyline-step{display:flex;align-items:center;gap:.5rem;flex:1 0 auto;padding:.45rem .65rem;border:1px solid var(--workspace-line);border-radius:.75rem;background:#fff}.storyline-step__badge{display:grid;place-items:center;width:1.5rem;height:1.5rem;border-radius:50%;background:var(--workspace-blush);color:var(--workspace-accent);font-size:.72rem;font-weight:800;flex-shrink:0}.storyline-step__copy{display:grid;line-height:1.25}.storyline-step__copy strong{font-size:.75rem;color:var(--workspace-ink);white-space:nowrap}.storyline-step__copy small{font-size:.66rem;color:var(--workspace-muted);white-space:nowrap}.storyline-step__arrow{color:#ccaeb2;font-size:.85rem;flex-shrink:0}.letter-group-card{display:grid;gap:1rem;margin-top:1.15rem;padding:1.2rem;border:1px solid var(--workspace-line);border-radius:1.2rem;background:#fff;box-shadow:0 4px 14px #411e2008;transition:border-color .16s ease,box-shadow .16s ease}.letter-group-card:hover{border-color:#dcc8ca;box-shadow:0 6px 18px #411e200d}.letter-group-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding-bottom:.85rem;border-bottom:1px solid rgba(0,0,0,.06)}.letter-group-card__title-wrap{display:grid;gap:.2rem;min-width:0}.letter-group-card__title{margin:0;font-size:1.02rem;font-weight:800;color:var(--workspace-ink)}.letter-group-card__copy{margin:0;font-size:.78rem;color:var(--workspace-muted);line-height:1.45}.letter-group-card__preview-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;min-height:2.2rem;padding:.4rem .85rem;border:1px solid #ebd9dc;border-radius:999px;background:#fff7f8;color:var(--workspace-accent);font-size:.74rem;font-weight:800;cursor:pointer;white-space:nowrap;transition:transform .14s ease,background-color .14s ease,border-color .14s ease}.letter-group-card__preview-btn:hover{transform:translateY(-1px);background:#fdebed;border-color:var(--workspace-accent)}.letter-group-card__body{display:grid;gap:.9rem}.letter-group-card__body .form-grid{margin-top:0}.music-editor{display:grid;grid-template-columns:minmax(16rem,20rem) minmax(0,1fr);gap:1.4rem;margin-top:1.4rem}.music-editor--stacked{grid-template-columns:minmax(0,1fr)}.studio-player{align-self:start;display:grid;grid-template-columns:5rem 1fr;gap:1rem;padding:1rem;border-radius:1.2rem;color:#fff;background:#171717;box-shadow:0 16px 36px #120c0d29}.studio-player__cover{display:grid;place-items:center;width:5rem;height:5rem;overflow:hidden;border-radius:.55rem;color:#aaa;background:#2d2d2d;font-size:.75rem}.studio-player__cover img{width:100%;height:100%;object-fit:cover}.studio-player__meta{display:grid;align-content:center;gap:.15rem;min-width:0}.studio-player__meta small{color:#1ed760;font-size:.66rem;font-weight:800;letter-spacing:.1em}.studio-player__title-viewport,.studio-player__meta span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.studio-player__title-viewport{display:block;min-width:0}.studio-player__title-text{display:inline-block;min-width:max-content;will-change:transform}.studio-player__title-viewport.is-overflowing .studio-player__title-text{padding-right:1.75rem;animation:music-title-marquee var(--marquee-duration, 8s) ease-in-out infinite alternate}.studio-player__meta span{color:#bcbcbc;font-size:.82rem}.studio-player__controls{grid-column:1 / -1;display:flex;align-items:center;gap:.7rem}.studio-player__time{flex:0 0 auto;color:#bcbcbc;font-size:.72rem;font-variant-numeric:tabular-nums}.studio-player__status{grid-column:1 / -1;margin:0;padding:.65rem .85rem;border-radius:.65rem;background:#ffffff0d;border:1px dashed rgba(255,255,255,.12);color:#a8a8a8;font-size:.78rem;line-height:1.45;text-align:center;word-break:normal;overflow-wrap:break-word}.studio-player__status:empty{display:none}.player-button{display:grid;place-items:center;flex:0 0 auto;width:3rem;height:3rem;padding:0;border:0;border-radius:50%;color:#0e0e0e;background:#1ed760;cursor:pointer;transition:transform .14s ease,background-color .14s ease,box-shadow .14s ease}.player-button svg{display:block;pointer-events:none}.player-button:hover:not(:disabled){transform:scale(1.06);background:#1fdf64;box-shadow:0 0 16px #1ed76066}.player-button:active:not(:disabled){transform:scale(.96)}.player-button:disabled{opacity:.45;cursor:not-allowed}.player-nav-button{display:grid;place-items:center;flex:0 0 auto;width:2.2rem;height:2.2rem;padding:0;border:1px solid rgba(255,255,255,.2);border-radius:50%;color:#ddd;background:#ffffff14;font-size:.85rem;cursor:pointer;transition:transform .14s ease,background-color .14s ease}.player-nav-button:hover{transform:scale(1.08);background:#ffffff2e;color:#fff}.player-nav-button:active{transform:scale(.94)}.player-nav-button svg{display:block;pointer-events:none}.player-seek{width:100%;accent-color:#1ed760}.selected-playlist{display:grid;gap:.9rem;padding:1.15rem 1.25rem;border:1px solid var(--workspace-line);border-radius:1.2rem;background:#fffdfa;box-shadow:0 4px 16px #2d12160a}.selected-playlist__header{display:flex;justify-content:space-between;align-items:center;gap:1rem}.selected-playlist__title-wrap{display:grid;gap:.2rem}.selected-playlist__caption{margin:0;color:var(--workspace-muted);font-size:.78rem;line-height:1.4}.selected-playlist__count-badge{padding:.28rem .65rem;border-radius:999px;background:var(--workspace-blush);color:var(--workspace-accent);font-size:.74rem;font-weight:800;white-space:nowrap}.selected-playlist__count-badge.is-full{background:#e7f6ed;color:#17613f}.selected-playlist__list{display:grid;gap:.6rem}.selected-playlist__item{display:grid;grid-template-columns:auto 3.2rem minmax(0,1fr) auto;align-items:center;gap:.85rem;padding:.65rem .85rem;border:1px solid var(--workspace-line);border-radius:.95rem;background:#fff;transition:border-color .16s ease,box-shadow .16s ease}.selected-playlist__item:hover{border-color:#d8c3c5}.selected-playlist__item.is-active{border-color:var(--workspace-accent);background:#fff9f9;box-shadow:0 0 0 2px #7d182414}.selected-playlist__slot-badge{display:inline-flex;align-items:center;justify-content:center;padding:.22rem .5rem;border-radius:.5rem;background:#f2e9e6;color:var(--workspace-ink);font-size:.68rem;font-weight:800;white-space:nowrap}.selected-playlist__slot-badge.is-primary{background:var(--workspace-accent);color:#fff}.selected-playlist__thumb{display:grid;place-items:center;width:3.2rem;height:3.2rem;overflow:hidden;border-radius:.6rem;background:#eee4df;flex-shrink:0}.selected-playlist__thumb img{width:100%;height:100%;object-fit:cover}.selected-playlist__info{display:flex;flex-direction:column;justify-content:center;gap:.15rem;min-width:0;width:100%}.selected-playlist__track-title{color:var(--workspace-ink);font-size:.86rem;font-weight:700;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-word;overflow-wrap:break-word;line-height:1.3;min-width:0}.selected-playlist__track-artist{color:var(--workspace-muted);font-size:.74rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.selected-playlist__actions{display:flex;align-items:center;gap:.35rem;flex-shrink:0}.selected-playlist__play-btn,.selected-playlist__order-btn,.selected-playlist__remove-btn{display:inline-flex;align-items:center;justify-content:center;padding:.35rem .65rem;border-radius:999px;font-size:.72rem;font-weight:800;cursor:pointer;transition:transform .14s ease,background-color .14s ease,color .14s ease}.selected-playlist__play-btn{min-height:2.1rem;border:1px solid var(--workspace-line);background:#fff;color:var(--workspace-accent)}.selected-playlist__play-btn:hover{background:#fff4f5;border-color:var(--workspace-accent)}.selected-playlist__play-btn.is-playing{background:#17613f;border-color:#17613f;color:#fff}.selected-playlist__order-btn{width:2.1rem;height:2.1rem;padding:0;border:1px solid var(--workspace-line);border-radius:50%;background:#faf6f4;color:var(--workspace-ink);font-size:.85rem}.selected-playlist__order-btn:hover{background:#f0e6e2}.selected-playlist__remove-btn{min-height:2.1rem;border:1px solid #ecc9cd;background:#fff5f6;color:#a31629}.selected-playlist__remove-btn:hover{background:#fcebed;border-color:#a31629}.selected-playlist__empty-slot{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border:1px dashed #d9c5c7;border-radius:.85rem;background:#fffbfa;color:var(--workspace-muted);font-size:.78rem}.empty-slot-plus{display:grid;place-items:center;width:1.6rem;height:1.6rem;border-radius:50%;background:var(--workspace-blush);color:var(--workspace-accent);font-weight:800;font-size:.9rem;flex-shrink:0}.selected-playlist__empty{padding:1.5rem;border:1px dashed var(--workspace-line);border-radius:.85rem;color:var(--workspace-muted);font-size:.82rem;text-align:center}.music-fields{display:grid;gap:1rem}.music-fields{display:grid;gap:1.25rem}.upload-field{display:grid;gap:1rem;padding:1.2rem;border:1.5px dashed #d9c4c6;border-radius:1.2rem;background:#fffdfa;transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}.upload-field:hover{border-color:#c7a4a8}.upload-field.is-uploaded{border-style:solid;border-color:#dfcecf;background:linear-gradient(180deg,#fff,#fdf9f7);box-shadow:0 4px 20px #371b1d0a}.upload-field__top{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding-bottom:.45rem;border-bottom:1px solid rgba(223,206,207,.4)}.upload-field__top strong{font-size:.95rem;font-weight:800;color:var(--workspace-ink)}.upload-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.28rem .75rem;border-radius:999px;font-size:.75rem;font-weight:800;letter-spacing:.02em;white-space:nowrap}.upload-badge--success{color:#17613f;background:#eaf8f1;border:1px solid #b9dec9;box-shadow:0 2px 8px #17613f14}.upload-badge--empty{color:#8c7375;background:#f4eaec;border:1px solid #e3d2d4}.upload-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.7rem;padding:1.6rem 1rem;text-align:center}.upload-dropzone__icon{display:grid;place-items:center;width:3.4rem;height:3.4rem;border-radius:50%;color:var(--workspace-accent);background:var(--workspace-blush);box-shadow:0 4px 12px #7d182414}.upload-dropzone__title{font-size:.92rem;font-weight:800;color:var(--workspace-ink)}.upload-dropzone__hint{max-width:26rem;margin:0;color:var(--workspace-muted);font-size:.8rem;line-height:1.5}.upload-dropzone__btn{margin-top:.3rem}.upload-progress-wrap{display:grid;gap:.4rem;padding:.6rem 0}.upload-progress-wrap[hidden]{display:none!important}.upload-progress-label{font-size:.78rem;font-weight:800;color:var(--workspace-accent)}.upload-progress{height:.45rem;overflow:hidden;border-radius:999px;background:#eedede}.upload-progress i{display:block;width:0;height:100%;border-radius:999px;background:linear-gradient(90deg,#7d1824,#b43545);transition:width .16s ease}.upload-showcase{display:grid;gap:1rem}.upload-track-strip{display:flex;align-items:center;gap:.95rem;padding:.85rem 1rem;border:1px solid #eddcd9;border-radius:1rem;background:#fff;box-shadow:0 2px 10px #371b1d08}.upload-track-vinyl{display:grid;place-items:center;flex-shrink:0;width:3rem;height:3rem;border-radius:50%;color:#ffd9df;background:linear-gradient(135deg,#2b181a,#160c0d);box-shadow:0 4px 12px #00000038}.upload-track-meta{display:flex;flex-direction:column;gap:.2rem;min-width:0}.upload-track-meta strong{font-size:.92rem;font-weight:800;color:var(--workspace-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-track-meta span{font-size:.78rem;color:var(--workspace-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-state-tag{display:inline-flex;align-items:center;width:fit-content;margin-top:.2rem;padding:.16rem .55rem;border:1px solid #bce6c9;border-radius:999px;color:#17613f;background:#ebf9ef;font-size:.7rem;font-weight:800;letter-spacing:.02em}.upload-mini-player{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:1rem;color:#fff;background:#231618;box-shadow:0 6px 18px #23161829}.upload-mini-player__play-btn{display:grid;place-items:center;flex-shrink:0;width:2.5rem;height:2.5rem;padding:0;border:0;border-radius:50%;color:#0e0e0e;background:#1ed760;cursor:pointer;transition:transform .14s ease,background-color .14s ease,box-shadow .14s ease}.upload-mini-player__play-btn:hover{transform:scale(1.08);background:#1fdf64;box-shadow:0 0 16px #1ed76073}.upload-mini-player__play-btn.is-playing{background:#1ed760;box-shadow:0 0 14px #1ed76080}.upload-mini-player__seek{flex:1;min-width:4rem;height:.35rem;border-radius:999px;background:#3d2c2f;accent-color:#1ed760;cursor:pointer}.upload-mini-player__time{flex-shrink:0;font-size:.74rem;font-variant-numeric:tabular-nums;color:#bda6a8}.upload-cover-showcase{display:flex;align-items:center;gap:1.1rem;padding:.85rem 1rem;border:1px solid #eddcd9;border-radius:1rem;background:#fff}.upload-cover-preview{flex-shrink:0;width:5.6rem;height:5.6rem;overflow:hidden;border:1px solid #dcc9c6;border-radius:.85rem;background:#f3eceb;box-shadow:0 4px 14px #371b1d14}.upload-cover-preview img{width:100%;height:100%;object-fit:cover;display:block}.upload-cover-meta{display:flex;flex-direction:column;gap:.25rem;min-width:0}.upload-cover-meta strong{font-size:.92rem;font-weight:800;color:var(--workspace-ink)}.upload-cover-meta span{font-size:.78rem;color:var(--workspace-muted);line-height:1.4}.upload-guide-callout{display:flex;gap:.8rem;padding:.85rem 1rem;border:1px solid rgba(125,24,36,.14);border-radius:.95rem;background:#7d18240a}.upload-guide-callout__icon{font-size:1.15rem;flex-shrink:0;line-height:1.3}.upload-guide-callout__text{display:grid;gap:.2rem}.upload-guide-callout__text strong{font-size:.82rem;font-weight:800;color:var(--workspace-accent)}.upload-guide-callout__text p{margin:0;font-size:.78rem;color:var(--workspace-ink);line-height:1.55}.upload-action-bar{display:grid;grid-template-columns:1fr 1fr;gap:.65rem;width:100%;padding-top:.35rem;box-sizing:border-box}.upload-action-bar .ui-button{width:100%;min-width:0;min-height:2.75rem;display:inline-flex;align-items:center;justify-content:center;gap:.35rem;padding:.55rem .65rem;font-size:.82rem;font-weight:800;text-align:center;border-radius:999px;box-sizing:border-box;white-space:nowrap}.ui-button--danger-outline{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;min-height:2.75rem;padding:.55rem .65rem;border:1px solid #e7bac1;border-radius:999px;color:#a31629;background:#fff;font-size:.82rem;font-weight:800;cursor:pointer;transition:all .16s ease;white-space:nowrap;box-sizing:border-box}.ui-button--danger-outline:hover:not(:disabled){border-color:#a31629;background:#fdf1f3;color:#8c1020;transform:translateY(-1px);box-shadow:0 4px 12px #a316291f}.two-step-modal__backdrop{position:fixed;z-index:1200;inset:0;display:grid;place-items:center;padding:1rem;background:#1a0c0ead;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);animation:two-step-fade-in .18s ease forwards}.two-step-modal__card{width:min(100%,32rem);max-height:min(92dvh,42rem);overflow:auto;border-radius:1.5rem;background:#fffdf9;border:1px solid rgba(125,24,36,.16);box-shadow:0 28px 75px #19080b5c,0 4px 16px #7d182414;animation:two-step-card-in .22s cubic-bezier(.16,1,.3,1) forwards}.two-step-modal__header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.1rem 1.3rem .9rem;border-bottom:1px solid var(--workspace-line)}.two-step-stepper{display:flex;align-items:center;gap:.75rem}.two-step-stepper__badge{display:inline-flex;align-items:center;padding:.28rem .65rem;border:1px solid rgba(125,24,36,.15);border-radius:999px;background:var(--workspace-blush);color:var(--workspace-accent);font-size:.73rem;font-weight:800}.two-step-stepper__badge.is-danger{background:#fde8eb;color:#9c1f2e;border-color:#f6b5bf}.two-step-stepper__dots{display:flex;align-items:center;gap:.35rem}.two-step-dot{display:grid;place-items:center;width:1.45rem;height:1.45rem;border-radius:50%;font-size:.68rem;font-weight:800;background:#ebd8d6;color:#8c7375}.two-step-dot.is-active{background:var(--workspace-accent);color:#fff;box-shadow:0 0 0 2px #7d182438}.two-step-dot.is-done{background:#17613f;color:#fff}.two-step-dot.is-danger{background:#9c1f2e;color:#fff;box-shadow:0 0 0 2px #9c1f2e40}.two-step-modal__close-btn{display:grid;place-items:center;width:2rem;height:2rem;padding:0;border:1px solid var(--workspace-line);border-radius:50%;color:var(--workspace-muted);background:#fff;font-size:.9rem;cursor:pointer;transition:all .14s ease}.two-step-modal__close-btn:hover{background:#f8ebeb;color:var(--workspace-accent);border-color:var(--workspace-accent)}.two-step-modal__content{display:grid;gap:1.15rem;padding:1.3rem}.two-step-modal__title{margin:0;font-size:1.25rem;font-weight:800;color:var(--workspace-ink);line-height:1.3}.two-step-modal__title--danger{color:#9c1f2e}.two-step-item-card{display:flex;align-items:center;gap:.9rem;padding:.8rem 1rem;border:1px solid #ecd8d5;border-radius:1rem;background:#fbf5f2}.two-step-item-card__thumb{flex-shrink:0;width:3.2rem;height:3.2rem;overflow:hidden;border:1px solid #ddc7c5;border-radius:.65rem}.two-step-item-card__thumb img{width:100%;height:100%;object-fit:cover;display:block}.two-step-item-card__icon{display:grid;place-items:center;flex-shrink:0;width:3.2rem;height:3.2rem;border-radius:.65rem;color:#fff;background:var(--workspace-accent)}.two-step-item-card__info{display:flex;flex-direction:column;gap:.2rem;min-width:0}.two-step-item-card__info strong{font-size:.9rem;font-weight:800;color:var(--workspace-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.two-step-item-card__info span{font-size:.76rem;color:var(--workspace-muted)}.two-step-warning-callout{display:flex;gap:.85rem;padding:.95rem 1.1rem;border:1.5px solid #f6bac3;border-radius:1rem;background:#fff1f3}.two-step-warning-icon{font-size:1.45rem;flex-shrink:0;line-height:1.2}.two-step-warning-text{display:grid;gap:.25rem}.two-step-warning-text strong{font-size:.86rem;font-weight:800;color:#9c1f2e}.two-step-warning-text p{margin:0;font-size:.78rem;color:#632028;line-height:1.5}.two-step-modal__desc{margin:0;font-size:.84rem;color:var(--workspace-muted);line-height:1.6}.two-step-modal__actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.75rem;margin-top:.4rem}@keyframes two-step-fade-in{0%{opacity:0}to{opacity:1}}@keyframes two-step-card-in{0%{opacity:0;transform:scale(.95) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}.music-source-picker{overflow:hidden;border:1px solid var(--workspace-line);border-radius:1.2rem;background:#fff}.music-source-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:.45rem;border-bottom:1px solid var(--workspace-line);background:#f7efeb}.music-source-tab{min-height:2.9rem;border:0;border-radius:.8rem;color:var(--workspace-muted);background:transparent;font-weight:800;cursor:pointer}.music-source-tab.is-active{color:#fff;background:var(--workspace-accent);box-shadow:0 7px 18px #4a131a29}.music-source-panel{padding:clamp(.85rem,2.5vw,1.25rem)}.music-source-panel[hidden]{display:none}.music-source-help{margin:0 0 1rem;color:var(--workspace-muted);font-size:.82rem;line-height:1.6}.music-catalog{display:grid;overflow:hidden;border:1px solid var(--workspace-line);border-radius:1rem;background:#fffdf9}.music-catalog__toggle{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;min-height:4rem;padding:.85rem 1rem;border:0;color:var(--workspace-ink);background:#fffaf7;text-align:left;cursor:pointer}.music-catalog__toggle:hover,.music-catalog__toggle.is-expanded{background:#fff3f3}.music-catalog__toggle-copy{display:grid;gap:.15rem;min-width:0}.music-catalog__toggle-copy strong{font-size:.9rem}.music-catalog__toggle-copy small{overflow:hidden;color:var(--workspace-muted);font-size:.74rem;text-overflow:ellipsis;white-space:nowrap}.music-catalog__toggle-icon{display:grid;place-items:center;flex:0 0 2rem;width:2rem;height:2rem;border-radius:50%;color:var(--workspace-accent);background:var(--workspace-blush);font-size:1.05rem;font-weight:900}.music-catalog__content{display:grid;gap:.85rem;padding:1rem;border-top:1px solid var(--workspace-line)}.music-catalog__content[hidden]{display:none}.music-catalog__search{max-width:100%}.music-catalog__status{min-height:1.2rem;margin:0;color:var(--workspace-muted);font-size:.78rem;line-height:1.5}.music-catalog__status[data-state=playing]{color:#17613f;font-weight:700}.music-catalog__status[data-state=error]{color:#a31629;font-weight:700}.music-catalog__list{display:grid;gap:.65rem;max-height:32rem;overflow-y:auto;overflow-x:hidden;padding:.25rem .35rem .25rem .15rem;overscroll-behavior:contain}.catalog-track{display:grid;grid-template-columns:3.6rem minmax(0,1fr) auto;gap:.85rem;align-items:center;padding:.75rem .95rem;border:1px solid var(--workspace-line);border-radius:1rem;background:#fffdf9;box-shadow:0 2px 8px #411e2008;transition:border-color .18s ease,background-color .18s ease,box-shadow .18s ease}.catalog-track:hover{border-color:#d8c3c5;box-shadow:0 4px 14px #411e200f}.catalog-track.is-selected{border-color:var(--workspace-accent);background:#fff5f4;box-shadow:0 0 0 3px #7d182414}.catalog-track.is-playing{border-color:#17613f;background:#f4fbf7;box-shadow:0 0 0 3px #17613f17}.catalog-track__cover{display:grid;place-items:center;width:3.6rem;height:3.6rem;overflow:hidden;border-radius:.75rem;background:#eee4df;box-shadow:0 3px 8px #230c1014;flex-shrink:0}.catalog-track__cover img{width:100%;height:100%;object-fit:cover}.catalog-track__copy{display:flex;flex-direction:column;justify-content:center;gap:.25rem;min-width:0;width:100%}.catalog-track__title-wrap{display:flex;align-items:flex-start;gap:.4rem;min-width:0;width:100%}.catalog-track__copy strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-word;overflow-wrap:break-word;font-size:.88rem;font-weight:700;line-height:1.3;color:var(--workspace-ink);min-width:0;flex:1 1 auto}.catalog-track__badge{display:inline-flex;align-items:center;justify-content:center;padding:.15rem .45rem;border-radius:.4rem;background:var(--workspace-accent);color:#fff;font-size:.65rem;font-weight:800;white-space:nowrap;flex-shrink:0;margin-top:.1rem}.catalog-track__copy small{display:block;font-size:.76rem;color:var(--workspace-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;line-height:1.25}.catalog-track__actions{display:flex;align-items:center;gap:.45rem;flex-shrink:0}.catalog-track__preview,.catalog-track__select{display:inline-flex;align-items:center;justify-content:center;min-height:2.45rem;padding:.5rem .9rem;border-radius:999px;font-size:.76rem;font-weight:800;white-space:nowrap;cursor:pointer;transition:transform .16s ease,background-color .16s ease,box-shadow .16s ease,color .16s ease,border-color .16s ease}.catalog-track__preview{border:1px solid var(--workspace-line);background:#fff;color:var(--workspace-accent)}.catalog-track__preview:hover{background:#fff3f5;border-color:var(--workspace-accent)}.catalog-track__preview.is-active{background:#17613f;border-color:#17613f;color:#fff;box-shadow:0 4px 12px #17613f38}.catalog-track__select{border:1px solid var(--workspace-accent);background:var(--workspace-accent);color:#fff;box-shadow:0 4px 12px #7d182429}.catalog-track__select:hover:not(:disabled){transform:translateY(-1px);background:#961d2b;box-shadow:0 6px 16px #7d18243d}.catalog-track__select:disabled{cursor:default;color:#17613f;border-color:#b9dec9;background:#e7f6ed;box-shadow:none;transform:none}.music-catalog__empty{padding:2rem 1rem;border:1px dashed var(--workspace-line);border-radius:.8rem;color:var(--workspace-muted);text-align:center}.music-catalog__retry{justify-self:center}.publish-barcode-card{position:relative;margin-top:1.2rem;padding:1.6rem 1.2rem 1.4rem;border:1px solid var(--workspace-line);border-radius:1.25rem;background:radial-gradient(circle at 10% 12%,rgba(255,255,255,.98),transparent 16rem),linear-gradient(160deg,#fff,#faf7f5 68%,#f5eeec);box-shadow:0 10px 30px #371b1d0d,inset 0 1px #fffffff2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.2rem;text-align:center;overflow:hidden;transition:border-color .2s ease,box-shadow .2s ease}.publish-barcode-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--ticket-color, var(--workspace-accent)),var(--ticket-accent, #f6c3cb))}.publish-barcode-frame{display:flex;align-items:center;justify-content:center;padding:.95rem;border-radius:1.15rem;background:#fff;border:1px solid rgba(55,27,29,.08);box-shadow:0 12px 28px #371b1d12,0 2px 6px #371b1d0a;transition:transform .2s ease,box-shadow .2s ease}.publish-barcode-frame:hover{transform:translateY(-2px);box-shadow:0 16px 36px #371b1d1a,0 4px 10px #371b1d0d}.publish-barcode-canvas{display:block;width:210px;height:210px;max-width:100%;border-radius:.4rem}.publish-barcode-download-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:2.85rem;padding:.7rem 1.6rem;border-radius:.85rem;font-size:.85rem;font-weight:700;letter-spacing:.02em;color:var(--ticket-color, var(--workspace-accent));background:#fff;border:1px solid rgba(55,27,29,.14);box-shadow:0 2px 8px #371b1d0a;cursor:pointer;transition:transform .14s ease,background-color .14s ease,border-color .14s ease,box-shadow .14s ease}.publish-barcode-download-btn:hover{background:#faf6f5;border-color:var(--ticket-color, var(--workspace-accent));box-shadow:0 4px 14px #371b1d14;transform:translateY(-1px)}.publish-barcode-download-btn:active{transform:translateY(0)}@media(max-width:480px){.publish-barcode-card{padding:1.3rem .9rem}.publish-barcode-canvas{width:185px;height:185px}.publish-barcode-download-btn{width:100%}}.publish-summary{margin-top:1.2rem;padding:1.15rem 1.25rem;border:1px solid;border-radius:1.15rem;box-shadow:0 4px 14px #371b1d08}.publish-summary.has-issues{border-color:#e8c7a3;background:#fff9ec}.publish-summary.is-ready{border-color:#b9dec9;background:#f1fbf6}.publish-summary strong{display:block;font-size:.95rem;font-weight:700;color:var(--workspace-ink);line-height:1.35}.publish-summary ul{margin:.75rem 0 0;padding-left:1.25rem;color:var(--workspace-muted);line-height:1.6}.publish-summary p{margin:.4rem 0 0;font-size:.84rem;line-height:1.5;color:var(--workspace-muted)}.publish-actions{display:grid;grid-template-columns:1fr 1fr;gap:.65rem;margin-top:1rem;width:100%}.publish-actions .ui-button{width:100%;min-width:0;min-height:2.85rem;display:inline-flex;align-items:center;justify-content:center;padding:.7rem .65rem;font-size:.84rem;font-weight:700;text-align:center;border-radius:999px;box-sizing:border-box;white-space:nowrap}.published-link{display:grid;gap:.75rem;margin-top:1.2rem;padding:1.15rem 1.25rem;border-radius:1.15rem;background:radial-gradient(circle at 10% 12%,rgba(255,255,255,.96),transparent 16rem),linear-gradient(160deg,#fff,#faf7f5 68%,#f5eeec);border:1px solid var(--workspace-line);box-shadow:0 4px 18px #371b1d0a}.published-link__header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.published-link__label{font-size:.66rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--ticket-color, var(--workspace-accent))}.published-link__status{display:inline-flex;align-items:center;gap:.3rem;font-size:.65rem;font-weight:700;letter-spacing:.04em;color:#17613f;background:#eaf8f1;border:1px solid #b9dec9;border-radius:999px;padding:.18rem .55rem}.published-link__box{display:flex;align-items:center;gap:.5rem;width:100%}.published-link__input{flex:1;min-width:0;height:2.6rem;padding:0 .85rem;font-family:Nunito Sans,system-ui,sans-serif;font-size:.78rem;color:var(--workspace-ink);background:#fff;border:1px solid rgba(55,27,29,.14);border-radius:.75rem;outline:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.published-link__input:focus{border-color:var(--ticket-color, var(--workspace-accent))}.published-link__copy-btn,.published-link__open-btn{display:inline-flex;align-items:center;justify-content:center;height:2.6rem;padding:0 .95rem;font-size:.8rem;font-weight:700;border-radius:.75rem;white-space:nowrap;cursor:pointer;text-decoration:none;transition:transform .14s ease,background-color .14s ease,border-color .14s ease;box-sizing:border-box}.published-link__copy-btn{color:var(--workspace-ink);background:#fff;border:1px solid rgba(55,27,29,.15);box-shadow:0 1px 4px #371b1d0a}.published-link__copy-btn:hover{background:#faf6f5;border-color:var(--ticket-color, var(--workspace-accent));transform:translateY(-1px)}.published-link__copy-btn.is-copied{color:#17613f;background:#eaf8f1;border-color:#b9dec9}.published-link__open-btn{color:#fff;background:var(--ticket-color, var(--workspace-accent));border:1px solid transparent;box-shadow:0 2px 8px #371b1d1f}.published-link__open-btn:hover{filter:brightness(1.08);transform:translateY(-1px)}@media(max-width:480px){.publish-actions{grid-template-columns:1fr 1fr;gap:.5rem}.publish-actions .ui-button{font-size:.8rem;padding-inline:.4rem}.upload-action-bar{gap:.5rem}.upload-action-bar .ui-button{font-size:.8rem;padding-inline:.4rem}.published-link{padding:1rem .9rem}.published-link__box{flex-wrap:wrap;gap:.5rem}.published-link__input{width:100%;flex:1 1 100%}.published-link__copy-btn,.published-link__open-btn{flex:1;min-height:2.45rem;height:2.45rem;font-size:.76rem}}@media(max-width:360px){.publish-actions{grid-template-columns:1fr}.upload-action-bar{grid-template-columns:1fr;gap:.5rem}}.preview-modal{position:fixed;z-index:1000;inset:0;display:grid;grid-template-rows:auto minmax(0,1fr);color:#fff;background:#171113}.preview-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:4rem;padding:.6rem 1rem;background:#211719}.preview-viewport{min-height:0}.preview-viewport .gift-shell{height:calc(100dvh - 4rem)}.studio-live-preview{position:fixed;z-index:1200;inset:0;display:grid;place-items:center;padding:.75rem;color:#fff8f4;background:#181012e0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.studio-live-preview__card{display:flex;flex-direction:column;width:min(100%,86rem);height:calc(100dvh - 1.5rem);overflow:hidden;border:1px solid rgba(255,255,255,.18);border-radius:1.25rem;background:#211719;box-shadow:0 30px 100px #0a03058c}.studio-live-preview__header{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:1.25rem;padding:1rem 1.25rem;border-bottom:1px solid rgba(255,255,255,.12)}.studio-live-preview__heading{min-width:0;flex:1 1 auto}.studio-live-preview__heading .eyebrow{color:#f4bec6}.studio-live-preview__heading h2{margin:.25rem 0 0;font-family:Nunito Sans,system-ui,sans-serif;font-size:clamp(1.7rem,4vw,2.5rem);line-height:1}.studio-live-preview__heading p{margin:.25rem 0 0;color:#d5bfc2;font-size:.8rem;line-height:1.4}.studio-live-preview__header-actions{display:flex;align-items:center;gap:.65rem;flex:0 0 auto}.studio-live-preview__mode-toggle{display:inline-flex;align-items:center;gap:.4rem;justify-content:center;min-height:2.3rem;padding:.35rem .85rem;border:1px solid rgba(255,255,255,.25);border-radius:999px;background:#ffffff14;color:#fff;font-size:.74rem;font-weight:700;cursor:pointer;white-space:nowrap;transition:transform .14s ease,background-color .14s ease,border-color .14s ease}.studio-live-preview__mode-toggle svg{display:block;flex-shrink:0}.studio-live-preview__mode-toggle:hover{background:#ffffff2e;border-color:#fff6}.studio-live-preview__mode-toggle.is-animated{background:#7d1824;border-color:#f4bec6;color:#fff}.studio-live-preview__close{display:grid;place-items:center;flex:0 0 2.5rem;width:2.5rem;height:2.5rem;padding:0;border:1px solid rgba(255,255,255,.35);border-radius:50%;color:#fff;background:#ffffff0f;cursor:pointer;transition:background-color .14s ease,border-color .14s ease,transform .14s ease}.studio-live-preview__close svg{display:block;pointer-events:none}.studio-live-preview__close:hover{background:#ffffff29;border-color:#ffffff80;transform:scale(1.05)}.studio-live-preview__tabs{flex:0 0 auto;display:flex;flex-wrap:nowrap;align-items:center;gap:.35rem;padding:.55rem 1.25rem;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch}.studio-live-preview__tabs::-webkit-scrollbar{display:none}.studio-live-preview__tabs[hidden]{display:none}.studio-live-preview__tab{flex:0 0 auto;min-height:2.15rem;padding:.35rem .8rem;border:1px solid rgba(255,255,255,.22);border-radius:999px;color:#e8d5d8;background:#ffffff0a;font-size:.78rem;font-weight:800;white-space:nowrap;cursor:pointer;transition:background-color .14s ease,border-color .14s ease,color .14s ease}.studio-live-preview__tab:hover{background:#ffffff1a;border-color:#ffffff59;color:#fff}.studio-live-preview__tab[aria-selected=true]{color:#351b20;border-color:#f4bec6;background:#f4bec6}.studio-live-preview__stage{flex:1 1 0;display:grid;min-height:0;place-items:stretch;overflow:hidden;padding:.5rem .75rem .75rem;background:radial-gradient(circle at 50% 0,rgba(255,255,255,.08),transparent 48%),#130d0f}.studio-live-preview__device{min-width:0;min-height:0;overflow:hidden;border:6px solid #090909;border-radius:.8rem;background:#fff;box-shadow:0 18px 48px #0000007a}.studio-live-preview__device .gift-shell{height:100%;min-height:0}.admin-shell{width:min(100% - 2rem,80rem);margin:0 auto;padding:clamp(1.2rem,4vw,3.2rem) 0 4rem}.admin-login{display:grid;gap:1rem;width:min(100%,28rem);margin:12vh auto 0;padding:clamp(1.5rem,4vw,2.5rem);border:1px solid var(--workspace-line);border-radius:1.5rem;background:var(--workspace-paper);box-shadow:0 20px 70px #3e1d1f1a}.admin-login h1{margin:0;font-family:Nunito Sans,system-ui,sans-serif;font-size:3rem}.admin-login p{margin:0;color:var(--workspace-muted);line-height:1.65}.admin-header{display:flex;justify-content:space-between;align-items:end;gap:2rem}.admin-header h1{margin:.4rem 0 0;font-family:Nunito Sans,system-ui,sans-serif;font-size:clamp(2.8rem,6vw,4.6rem);line-height:1}.admin-header p{max-width:43rem;margin:.8rem 0 0;color:var(--workspace-muted);line-height:1.6}.admin-header__actions{display:flex;flex:0 0 auto;gap:.7rem}.admin-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;margin-top:2rem}.admin-stats>div{display:grid;gap:.2rem;padding:1rem;border:1px solid var(--workspace-line);border-radius:1rem;background:#ffffffbf}.admin-stats span{font-family:Nunito Sans,system-ui,sans-serif;font-size:2.2rem;font-weight:700}.admin-stats small{color:var(--workspace-muted)}.admin-toolbar{display:grid;grid-template-columns:minmax(0,1fr) 13rem;gap:.8rem;margin:1rem 0}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.project-card{min-width:0;overflow:hidden;border:1px solid var(--workspace-line);border-radius:1.2rem;background:var(--workspace-paper);box-shadow:0 10px 32px #3d1d1f0d}.project-card>header{display:flex;justify-content:space-between;gap:.7rem;padding:1rem;border-bottom:1px solid var(--workspace-line);background:#fff8f5}.project-card h3{margin:.5rem 0 .2rem;font-size:1rem}.project-card code{color:var(--workspace-muted);font-size:.68rem;overflow-wrap:anywhere}.project-card header img{width:4.5rem;height:4.5rem;object-fit:contain}.status-badge{padding:.25rem .55rem;border-radius:999px;color:#6b4c0d;background:#fff1bd;font-size:.62rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.status-badge--published{color:#17613f;background:#dff5e8}.status-badge--archived{color:#6e6264;background:#ece7e7}.project-meta{display:grid;grid-template-columns:auto 1fr;gap:.5rem .8rem;padding:1rem;margin:0;font-size:.76rem}.project-meta dt{color:var(--workspace-muted)}.project-meta dd{margin:0;text-align:right;overflow-wrap:anywhere}.project-actions{display:flex;flex-wrap:wrap;gap:.3rem .7rem;padding:.8rem 1rem 1rem;border-top:1px solid var(--workspace-line)}.project-actions .text-button{font-size:.72rem}.empty-state{grid-column:1 / -1;padding:3rem;border:1px dashed #cdbbbc;border-radius:1rem;text-align:center}.empty-state h2{margin:0}.empty-state p{color:var(--workspace-muted)}.admin-modal{position:fixed;z-index:1100;inset:0;display:grid;place-items:center;padding:1rem;background:#1e0f11a6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.admin-modal__card{width:min(100%,36rem);max-height:min(90dvh,46rem);overflow:auto;border-radius:1.4rem;background:#fffdf9;box-shadow:0 30px 100px #14080a59}.admin-modal__card>header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.2rem;border-bottom:1px solid var(--workspace-line)}.admin-modal__card h2{margin:0;font-family:Nunito Sans,system-ui,sans-serif;font-size:2rem}.admin-modal__content{display:grid;gap:1rem;padding:1.2rem}.admin-modal__content p{margin:0;color:var(--workspace-muted);line-height:1.65}.project-code{padding:.7rem;border-radius:.6rem;background:#f2e9e7;overflow-wrap:anywhere}.modal-actions{display:flex;flex-wrap:wrap;gap:.7rem}.has-modal{overflow:hidden!important}@keyframes workspace-spin{to{transform:rotate(360deg)}}@media(max-width:960px){.studio-layout{grid-template-columns:1fr}.studio-steps{position:static;grid-template-columns:repeat(5,minmax(4.8rem,1fr));overflow-x:auto;padding-bottom:.3rem}.step-button{grid-template-columns:1fr;justify-items:center;text-align:center}.step-button__copy small{display:none}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.music-editor{grid-template-columns:1fr}}@media(max-width:640px){.studio-header{min-height:4.7rem}.studio-layout{width:min(100% - 1rem,78rem);padding-top:.7rem}.studio-steps{grid-template-columns:repeat(5,4.3rem)}.step-button{padding:.55rem .35rem}.step-button__copy strong{font-size:.64rem}.studio-panel{padding:1rem;border-radius:1.1rem}.studio-section-heading{padding-right:0}.live-preview-trigger{position:static;width:100%;margin-top:.9rem}.form-grid--two,.choice-grid--mascot,.choice-grid--palette{grid-template-columns:1fr}.storyline-tracker{padding:.85rem}.storyline-tracker__title{flex-direction:column;align-items:flex-start;gap:.2rem}.letter-group-card{padding:.95rem}.letter-group-card__header{flex-direction:column;align-items:stretch;gap:.65rem}.letter-group-card__preview-btn{width:100%;min-height:2.5rem}.style-preview{flex-direction:row;align-items:center;min-height:9.5rem;padding:1.15rem 1.2rem;gap:.85rem}.style-preview__content{flex:1;min-width:0;gap:.35rem}.style-preview__badge{padding:.25rem .6rem;font-size:.62rem}.style-preview__title{font-size:clamp(1.75rem,6vw,2.3rem);line-height:1.1}.style-preview__meta{gap:.35rem}.style-preview__recipient,.style-preview__theme-pill{padding:.22rem .55rem;font-size:.72rem}.style-preview__mascot-frame{flex:0 0 6.5rem;max-width:6.5rem}.style-preview__image{max-height:7.5rem}.studio-panel-footer .ui-button{flex:1;padding-inline:.6rem}.admin-shell{width:min(100% - 1rem,80rem);padding-top:1rem}.admin-header{align-items:stretch;flex-direction:column}.admin-header__actions .ui-button{flex:1}.admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-toolbar,.project-grid{grid-template-columns:1fr}.music-editor{min-width:0}.studio-player{grid-template-columns:4rem 1fr}.studio-player__cover{width:4rem;height:4rem}.studio-player__controls{gap:.45rem}.player-button{width:2.65rem;height:2.65rem;font-size:.72rem}.studio-player__time{font-size:.65rem}.studio-player__status{padding:.55rem .75rem;font-size:.74rem}.music-source-tabs{grid-template-columns:1fr;gap:.3rem}.selected-playlist{padding:.95rem}.selected-playlist__header{flex-direction:column;align-items:flex-start;gap:.5rem}.selected-playlist__item{grid-template-columns:auto 2.8rem minmax(0,1fr);grid-template-rows:auto auto;gap:.5rem .75rem;padding:.75rem}.selected-playlist__slot-badge{grid-column:1;grid-row:1}.selected-playlist__thumb{grid-column:2;grid-row:1;width:2.8rem;height:2.8rem}.selected-playlist__info{grid-column:3;grid-row:1;align-self:center}.selected-playlist__actions{grid-column:1 / -1;grid-row:2;display:flex;justify-content:flex-end;gap:.45rem;width:100%;margin-top:.15rem;padding-top:.5rem;border-top:1px solid rgba(0,0,0,.05)}.selected-playlist__play-btn{flex:1;min-height:2.45rem;font-size:.78rem}.selected-playlist__order-btn{width:2.45rem;height:2.45rem;font-size:.95rem}.selected-playlist__remove-btn{min-height:2.45rem;padding-inline:.85rem;font-size:.78rem}.catalog-track{grid-template-columns:3.5rem minmax(0,1fr);gap:.75rem .85rem;padding:.85rem}.catalog-track__cover{grid-column:1;grid-row:1;width:3.5rem;height:3.5rem}.catalog-track__copy{grid-column:2;grid-row:1;align-self:center;min-width:0;width:100%}.catalog-track__copy strong{font-size:.86rem;line-height:1.3}.catalog-track__actions{grid-column:1 / -1;grid-row:2;display:flex;gap:.5rem;width:100%;margin-top:.2rem;padding-top:.45rem;border-top:1px solid rgba(0,0,0,.05)}.catalog-track__preview{flex:1;min-height:2.75rem;font-size:.8rem}.catalog-track__select{flex:1.25;min-height:2.75rem;font-size:.8rem}.studio-live-preview{padding:0;-webkit-backdrop-filter:none;backdrop-filter:none}.studio-live-preview__card{width:100%;height:100dvh;border:0;border-radius:0}.studio-live-preview__header{align-items:center;gap:.65rem;padding:max(.65rem,env(safe-area-inset-top)) .75rem .55rem}.studio-live-preview__heading{flex:1 1 auto;min-width:0}.studio-live-preview__heading h2{font-size:1.45rem;margin:.15rem 0 0;line-height:1.1}.studio-live-preview__heading p{max-width:100%;font-size:.72rem;margin:.15rem 0 0;line-height:1.35;overflow-wrap:break-word}.studio-live-preview__header-actions{flex:0 0 auto;display:flex;align-items:center;gap:.35rem}.studio-live-preview__mode-toggle{min-height:2.1rem;height:2.1rem;padding:.25rem .6rem;font-size:.7rem;gap:.3rem}.studio-live-preview__close{flex:0 0 2.1rem;width:2.1rem;height:2.1rem;min-height:2.1rem}.studio-live-preview__tabs{flex-wrap:nowrap;gap:.3rem;padding:.35rem .75rem .5rem;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch}.studio-live-preview__tabs::-webkit-scrollbar{display:none}.studio-live-preview__tab{flex:0 0 auto;min-height:2rem;padding:.25rem .65rem;font-size:.72rem;font-weight:700;white-space:nowrap}.studio-live-preview__stage{padding:0}.studio-live-preview__device{width:100%;height:auto;border:0;border-radius:0;box-shadow:none}.preview-toolbar strong{font-size:.8rem}}@media(prefers-reduced-motion:reduce){.workspace-page *,.workspace-page *:before,.workspace-page *:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}.studio-player__title-viewport.is-overflowing .studio-player__title-text{max-width:100%;padding-right:0;overflow:hidden;text-overflow:ellipsis;animation:none!important}}
