:root{--ink: #000;--pink: #ff69b4;--rose: #f2b7c6;--cream: #f3e9dd;--mute: #6d6165;--display: ui-sans-serif, system-ui, -apple-system, "Helvetica Neue", sans-serif;--hand: "Antro Vectra", "Noteworthy", "Bradley Hand", cursive;color-scheme:dark}@font-face{font-family:Antro Vectra;font-display:swap;src:url(/fonts/antro-vectra.otf) format("opentype")}*{box-sizing:border-box}html,body{height:100%;padding:0;margin:0;overscroll-behavior:none;font-family:var(--display);color:var(--cream);background:var(--ink)}#root,main{height:100%}main{position:relative;overflow:hidden}.stage{position:absolute;inset:0;overflow:hidden;touch-action:pan-y;cursor:grab}.stage:active{cursor:grabbing}.desk-item{opacity:0;filter:drop-shadow(0 12px 20px rgba(0,0,0,.5));animation:settle .62s cubic-bezier(.22,1,.36,1) var(--reveal, 0s) both}@keyframes settle{0%{opacity:0;scale:.86}to{opacity:1;scale:1}}.portrait{position:absolute;z-index:3;padding:5px;overflow:hidden;font:inherit;background:#000;border:1px solid var(--pink);border-radius:2px;opacity:0;transition:opacity 1.6s ease;pointer-events:none}.portrait img{position:absolute;inset:5px;display:block;width:calc(100% - 10px);height:calc(100% - 10px);object-fit:cover}.portrait .ask{opacity:0;transition:opacity .9s ease}.portrait.asked .ask{opacity:1}.portrait.armed{cursor:pointer;pointer-events:auto;animation:waiting 2.6s ease-in-out 1.2s infinite}.portrait.armed:focus-visible{outline:2px solid var(--pink);outline-offset:4px}@keyframes waiting{0%,to{box-shadow:0 0 #ff69b400}50%{box-shadow:0 0 22px 3px #ff69b452}}.portrait.on{opacity:1}.caption{position:absolute;top:clamp(22px,4.5vh,46px);left:50%;z-index:5;width:min(90vw,34rem);margin:0;text-align:center;pointer-events:none;transform:translate(-50%)}.caption span{display:inline-block;font-family:var(--hand);font-size:clamp(16px,2.2vw,22px);line-height:1.4;color:var(--rose);text-wrap:balance;opacity:0;transform:translateY(5px);transition:opacity .34s ease,transform .34s ease}.caption span.on{opacity:1;transform:translateY(0)}.fate{position:absolute;left:50%;z-index:4;display:flex;flex-direction:column;gap:2px;align-items:center;width:max-content;pointer-events:none;transform:translate(-50%)}.fate svg{overflow:visible;color:var(--pink)}.fate-gloss{margin:0;font-family:var(--hand);font-size:15px;color:var(--rose);text-align:center;opacity:0;transform:translateY(4px);transition:opacity 1.2s ease,transform 1.2s ease}.fate-gloss.on{opacity:.75;transform:translateY(0)}.prior{position:absolute;bottom:clamp(12px,2.6vh,22px);left:0;z-index:6;display:flex;justify-content:space-between;width:100%;padding:0 clamp(14px,2.4vw,34px);font-family:var(--hand);font-size:clamp(10px,1.1vw,13px);opacity:0;transition:opacity 1.6s ease 1s}.prior a{color:var(--mute);text-decoration:none;transition:color .24s ease}.prior a:hover,.prior a:focus-visible{color:var(--pink)}.prior.on{opacity:1}.signoff{position:absolute;bottom:clamp(12px,2.6vh,22px);left:50%;z-index:5;display:flex;flex-direction:column;gap:1px;align-items:center;width:max-content;max-width:96vw;margin:0;font-family:var(--hand);font-size:clamp(13px,1.5vw,17px);line-height:1.45;color:var(--rose);text-align:center;pointer-events:none;opacity:0;transform:translate(-50%);transition:opacity 1.4s ease .9s}.signoff.on{opacity:.82}.signoff-line{display:block}.sign{opacity:0;transition:opacity 1.2s ease 1.1s}.sign.on{opacity:1}.struck{position:relative}.signoff.promote .struck:after{animation:strike .62s ease-out .12s forwards}.signoff.promote .promoted{animation:write .9s cubic-bezier(.4,0,.2,1) .78s forwards}.struck:after{position:absolute;top:44%;left:-2px;width:0;height:1.5px;content:"";background:var(--pink);animation:none}@keyframes strike{to{width:calc(100% + 4px)}}.promoted{display:inline-block;margin-left:.4em;color:var(--pink);clip-path:inset(0 100% -30% 0);animation:none}@keyframes write{to{clip-path:inset(0 -8% -30% 0)}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;white-space:nowrap;border:0;clip-path:inset(50%)}@media(prefers-reduced-motion:reduce){.desk-item{opacity:1;animation:none}.caption span,.signoff,.portrait{transition:none}.portrait.armed{animation:none}.struck:after,.promoted{animation:none}.struck:after{width:calc(100% + 4px)}.promoted{clip-path:none}.signoff,.portrait{opacity:1}}
