@import"https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400&family=DM+Sans:wght@400;500;600;700&family=UnifrakturMaguntia&display=swap";:root{font-family:DM Sans,sans-serif;color:#e6e6e9;background:#08090b;font-synthesis:none;--silver:#c6c8cf;--muted:#96969f;--line:#2b2c33;--gothic:"UnifrakturMaguntia","Cormorant Garamond",Georgia,serif;--serif:"Cormorant Garamond",Georgia,serif;color-scheme:dark}*{box-sizing:border-box}body{margin:0;min-width:320px;background:radial-gradient(ellipse at 50% 16%,#17181f55,transparent 55%),#08090b}body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.08;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='72'%3E%3Cpath d='M36 0C36 19 55 36 72 36M0 36c19 0 36 17 36 36M36 0C36 19 17 36 0 36M72 36C53 36 36 53 36 72' fill='none' stroke='%23888995' stroke-width='.4'/%3E%3C/svg%3E");-webkit-mask-image:linear-gradient(to right,#000,transparent 22%,transparent 78%,#000);mask-image:linear-gradient(to right,#000,transparent 22%,transparent 78%,#000)}button,input,textarea{font:inherit}button,a,input,textarea,summary{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.38}button,a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid #ececf1;outline-offset:5px}button svg{flex-shrink:0}h1,h2,h3,p{margin:0}h2,h3{font-weight:400}button{border:0}input,textarea{width:100%;background:#0b0c10;color:#eee;border:1px solid #383940;border-radius:7px;padding:13px 14px;min-height:48px;transition:border-color .2s}input:focus,textarea:focus{border-color:#bfc1cb}input:disabled{opacity:.5}textarea{resize:vertical;line-height:1.8}label{display:flex;flex-direction:column;gap:9px;font-size:13px;font-weight:500;letter-spacing:.01em}label+label{margin-top:20px}form{display:flex;flex-direction:column;gap:18px}form label+label{margin-top:0}::selection{background:#d0d1db;color:#0b0b0e}.page{max-width:864px;padding:0 32px;margin:0 auto}.topbar{height:68px;border-bottom:1px solid #ffffff0d;display:flex;align-items:center;justify-content:space-between;padding:0 42px;font-size:10px;letter-spacing:2px;position:relative}.topbar-brand,.topbar-right{display:flex;align-items:center;gap:12px}.topbar-brand{color:#aaaab5}.topbar-brand .bat{width:20px}.topbar-right{gap:18px}.connection{display:flex;align-items:center;gap:8px;font-size:11px;letter-spacing:.02em;color:#aaaab3}.status-dot{width:5px;height:5px;border-radius:50%;background:#74747f;display:inline-block;flex-shrink:0}.status-dot.live{background:#e2e2ea;box-shadow:0 0 7px #e2e2ea55}.demo-banner{text-align:center;padding:10px 16px;background:#1b1c23;font-size:11px;line-height:1.7;color:#bdbdc7;border-bottom:1px solid #33343d}.demo-banner button{background:none;text-decoration:underline;margin-left:8px;padding:4px 8px}.hero{text-align:center;padding:64px 0 34px;position:relative}.hero-eyebrow{display:flex;align-items:center;justify-content:center;gap:13px;letter-spacing:2.6px;font-size:9px;color:#93939f}.hero-eyebrow>span{height:1px;width:25px;background:#414149}.title-bats{position:relative;display:flex;align-items:center;justify-content:center;gap:32px;margin-top:26px}.title-bats>.bat{transform:rotate(-18deg);color:#747480;width:25px;align-self:flex-start;margin-top:36px}.title-bats>.bat:last-child{transform:rotate(18deg) scaleX(-1);align-self:flex-end;margin-bottom:36px}.hero h1{font-family:var(--gothic);font-weight:400;font-size:56px;line-height:1.13;letter-spacing:.01em;color:#eeeef3;text-shadow:0 2px 18px #dddddd16}.hero h1>span:not(.title-emoji){font-size:1.19em}.hero .title-emoji{font-size:22px;display:inline-block;vertical-align:middle;filter:grayscale(1);margin-left:2px}.hero>p{font-family:var(--serif);font-style:italic;font-size:19px;color:#aaaab6;margin-top:19px}.bat{width:32px;height:auto;display:block}.bat.small{width:22px}.ornament{display:flex;align-items:center;justify-content:center;gap:16px;color:#6f707d}.ornament>span{height:1px;width:90px;background:linear-gradient(to right,transparent,#595966)}.ornament>span:last-child{transform:rotate(180deg)}.ornament svg{width:95px;height:28px}.hero>.ornament{margin-top:27px}.eyebrow{font-size:9px;letter-spacing:2px;color:#9797a2;font-weight:500}.score-section{padding:29px 30px 27px;border:1px solid #3b3c47;border-radius:12px;position:relative;background:linear-gradient(135deg,#18191f,#101116);box-shadow:0 16px 50px #0004;margin-top:8px}.score-section:before,.score-section:after{content:"✧";position:absolute;color:#858692;font-family:serif;font-size:23px;background:#15161b;line-height:1;top:-12px;padding:0 7px}.score-section:before{left:22px}.score-section:after{right:22px}.score-heading{display:flex;align-items:center;gap:17px;margin-bottom:26px}.score-heading h2{font-family:var(--gothic);font-size:39px;line-height:1.4;color:#e3e3ec}.score-value{margin-left:auto;display:flex;align-items:baseline;gap:7px;position:relative}.score-value strong{font-family:var(--serif);font-weight:500;font-size:55px;line-height:1;font-variant-numeric:tabular-nums;min-width:35px;text-align:right}.score-value>span:not(.floating-five){font-size:12px;color:#92939f}.add-five{border:1px solid #666775;background:linear-gradient(140deg,#d2d3db,#9c9ea9);color:#16171d;padding:10px 19px;border-radius:6px;font-size:17px;font-weight:600;min-height:45px;margin-left:9px}.add-five:disabled{background:#1e1f26;border-color:#494a55;color:#a5a5b2;opacity:.6}.floating-five{position:absolute;left:5px;top:0;font-size:18px;color:#fff;pointer-events:none;animation:float-five 1.5s ease-out forwards}.progress-row{display:flex;align-items:center;gap:17px}.progress-start{color:#8a8b99;font-size:11px}.progress-frame{flex:1;border:1px solid #5f606f;padding:5px;border-radius:20px;position:relative;box-shadow:0 0 0 3px #2b2c3666}.progress-frame:before,.progress-frame:after{content:"◇";position:absolute;top:50%;transform:translateY(-50%);font-size:14px;color:#a1a2ae;z-index:2;background:#15161b;line-height:1}.progress-frame:before{left:-6px}.progress-frame:after{right:-6px}.progress-track{height:13px;background:#08090e;border-radius:20px;position:relative;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#666976,#b5b8c5 60%,#e7e7ee);border-radius:20px;position:relative;transition:width .8s cubic-bezier(.18,.7,.25,1);box-shadow:0 0 15px #cbced555}.progress-fill:after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent,#ffffff50,transparent);animation:silver-shimmer 5s ease-in-out infinite}.progress-ticks{position:absolute;inset:0}.progress-ticks>span{position:absolute;top:3px;bottom:3px;background:#ffffff16;width:1px}.progress-ticks>.reached{background:#08090b44}.final-marker{font-family:var(--gothic);font-size:37px;color:#9596a3;width:30px;text-align:center;transition:color .5s,text-shadow .5s}.final-marker.illuminated{color:#fff;text-shadow:0 0 16px #eeeeee88,0 0 30px #eeeeee44}.progress-caption{display:flex;justify-content:space-between;padding:12px 5px 0 29px;font-size:10px;line-height:1.7;color:#9a9aa6;gap:25px}.progress-caption>span:last-child{min-width:30px;text-align:center}.rewards-section{margin-top:46px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.section-heading h2{font-family:var(--serif);font-size:30px;margin-top:6px;line-height:1.2}.reward-count{border:1px solid #34353e;font-size:10px;white-space:nowrap;color:#a7a7b2;padding:7px 11px;border-radius:20px}.section-subtitle{font-size:12px;color:#9595a1;margin:12px 0 23px;line-height:1.7}.reward-list{display:grid;gap:10px}.reward-card{display:flex;align-items:center;gap:20px;min-height:92px;padding:20px 22px;border:1px solid #2b2c34;border-radius:8px;background:linear-gradient(100deg,#14151a,#0e0f13);position:relative}.reward-card:before{content:"";position:absolute;width:1px;left:-1px;top:24px;bottom:24px;background:#4e4f5e}.reward-index{font-family:var(--serif);font-size:23px;color:#767784;width:31px;text-align:center;flex-shrink:0}.reward-body{flex:1;min-width:0}.reward-name-row{display:flex;justify-content:space-between;align-items:center;gap:20px}.reward-name-row h3{font-family:var(--gothic);font-size:26px;color:#d9d9e2;line-height:1.15;overflow-wrap:anywhere}.threshold{color:#b4b4c0;font-family:var(--serif);font-size:19px;white-space:nowrap}.threshold>span{font-family:DM Sans,sans-serif;font-size:10px;color:#91919e;margin-left:3px}.reward-status{font-size:10px;color:#9898a6;margin-top:10px;letter-spacing:.1px}.reward-lock{color:#777886;display:flex;margin-left:3px}.reward-action{border:1px solid #383944!important;border-radius:50%!important;background:#1e1f27!important;flex-shrink:0}.reward-card.available{border-color:#686978;background:linear-gradient(100deg,#202128,#15161c);box-shadow:0 0 25px #eeeeee04}.reward-card.available:before{background:#d0d1dd}.reward-card.available .reward-index,.reward-card.available .reward-status{color:#d0d0df}.reward-card.opened{border-color:#474851}.reward-card.opened .reward-status{color:#a9a9b8}.preparing-message{font-size:11px;color:#bcbcc6;line-height:1.7;margin-top:9px;max-width:420px}.final-reward .reward-index{font-family:var(--gothic);font-size:32px;color:#bfc0cb}.closing-note{text-align:center;margin-top:38px}.closing-note .ornament{opacity:.65}.closing-note>p{font-family:var(--serif);font-size:21px;color:#d1d1dd;line-height:1.8;margin-top:18px;font-style:italic}.closing-note>p>span{font-size:17px;color:#9696a5}footer{display:flex;align-items:center;flex-direction:column;gap:12px;text-align:center;margin-top:50px;padding:24px 0 32px;border-top:1px solid #292a3333;color:#787986}footer>.bat{opacity:.6;width:18px}footer>p{font-size:10px;letter-spacing:.6px}footer>span{font-size:8px;letter-spacing:2px;color:#62636f}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;border-radius:6px;padding:13px 17px;min-height:46px;font-size:12px;font-weight:500;text-decoration:none;transition:background .2s,border-color .2s;line-height:1.5}.button.primary{background:linear-gradient(130deg,#e4e5ec,#b6b8c3);color:#101116;border:1px solid #d8d9e1}.button.primary:hover:not(:disabled){background:#f1f1f6}.button.secondary{background:#1c1d24;border:1px solid #44454f;color:#dddde7}.button.secondary:hover:not(:disabled){background:#272831;border-color:#888996}.text-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;background:none;font-size:11px;color:#b6b6c4;padding:9px 4px;min-height:38px}.text-button:hover:not(:disabled){color:#fff}.icon-button{width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;background:none;border:1px solid transparent;border-radius:7px;color:#a7a8b5}.icon-button:hover:not(:disabled){color:#f0f0f5;background:#ffffff0a}.admin-nav{display:flex;align-items:center;justify-content:space-between;margin:0 0 26px;padding-bottom:18px;border-bottom:1px solid #30313c;gap:20px}.admin-nav>span{display:flex;align-items:center;gap:8px;font-size:11px;color:#b4b5c2}.tabs{display:flex;background:#121318;padding:3px;border:1px solid #33343f;border-radius:6px}.tabs>button{background:none;border-radius:4px;font-size:11px;padding:10px 13px;color:#9697a5;min-height:39px}.tabs>button.active{background:#33343e;color:#ededf5}.admin-tools{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px;margin-top:15px;padding:0 5px}.available-callout{display:flex;align-items:center;gap:18px;border:1px solid #656673;border-radius:9px;background:linear-gradient(110deg,#24252d,#13141b);padding:23px;margin-top:25px}.mini-seal{display:flex;align-items:center;justify-content:center;width:43px;height:43px;border:1px solid #a5a6b3;border-radius:50%;background:linear-gradient(130deg,#b1b3bd,#656875);color:#191a22;flex-shrink:0}.mini-seal>.bat{width:23px}.available-callout h3{font-family:var(--serif);font-size:25px;margin-top:6px}.available-callout p{font-size:11px;color:#b5b6c3;margin-top:6px;line-height:1.6}.callout-actions{margin-left:auto;display:flex;align-items:center;gap:8px}.callout-actions>.button{white-space:nowrap}.modal-backdrop{position:fixed;inset:0;z-index:20;background:#000c;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);display:flex;align-items:center;justify-content:center;padding:28px;overflow-y:auto}.modal-backdrop:has(.preview-label){z-index:30}.modal{position:relative;width:100%;max-width:570px;padding:38px 32px;background:linear-gradient(140deg,#1b1c23,#111218);border:1px solid #555664;border-radius:13px;max-height:calc(100dvh - 56px);overflow-y:auto;box-shadow:0 30px 120px #000;outline:none}.modal-close{position:absolute;right:10px;top:10px;z-index:5}.modal h2{font-family:var(--serif);font-size:34px;margin:8px 0 13px;color:#ededf4}.modal>p,.modal form>p{font-size:13px;line-height:1.85;color:#bbbbc8}.modal>.ornament{margin:18px 0 25px}.modal form{margin-top:25px}.modal .eyebrow{padding-right:25px}.muted{color:#999aa7!important;font-size:12px;line-height:1.7}.muted>.spin{vertical-align:middle;margin-right:5px}.error{font-size:12px!important;line-height:1.7;color:#f1f1f6!important;border-left:2px solid #b6b7c2;background:#ffffff0a;padding:12px!important;text-align:left}.error-banner{border:1px solid #696976;padding:14px 18px;background:#22232b;border-radius:7px;margin-bottom:20px;font-size:12px;line-height:1.8}.error-banner .text-button{margin-top:5px;text-decoration:underline}.success{display:flex;align-items:flex-start;gap:8px;background:#ffffff09;border:1px solid #53545f;padding:12px;font-size:12px!important;color:#dedee8!important}.success svg{flex-shrink:0;margin-top:2px}.notice{border:1px solid #3b3c48;padding:14px;font-size:11px!important;line-height:1.85;background:#ffffff04;border-radius:6px;margin:12px 0;color:#bcbcc9!important}.spin{animation:spin 1.2s linear infinite}.initial-loader{min-height:100dvh;display:flex;align-items:center;justify-content:center;gap:12px;font-size:13px}.loading-card{min-height:250px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:20px;border:1px solid #393a44;border-radius:12px;padding:30px;text-align:center}.loading-card h2{font-family:var(--serif);font-size:32px}.loading-card>.error{max-width:500px}.welcome-card{border:1px solid #3e3f4d;border-radius:12px;padding:40px;text-align:center;background:linear-gradient(130deg,#1c1d24,#101116);margin:8px auto 0;max-width:620px}.welcome-symbol{width:56px;height:56px;border:1px solid #616271;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 25px;color:#c1c2cf}.welcome-card h2{font-family:var(--serif);font-size:35px;line-height:1.2;margin:14px 0 19px}.welcome-card>p{font-size:12px;line-height:1.85;color:#b1b2c1}.welcome-card>.button{margin:25px 0 5px}.welcome-card>.setup-note{font-size:10px;max-width:380px;margin:20px auto 0}.demo-entry{display:flex;margin:15px auto 0;font-size:10px}.landing>.hero{padding-top:75px}.login-modal .button{margin-top:6px}.login-modal .notice{margin:0}.confirm-modal>svg{color:#a2a3b2}.confirm-modal label{margin-top:20px}.confirm-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:25px}.share-state{display:flex;align-items:center;gap:9px;margin:24px 0 16px;font-size:11px}.share-modal>label{margin-bottom:15px}.share-modal>label input{font-size:11px}.share-modal>.button{margin:0 7px 10px 0}.share-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:24px;flex-wrap:wrap}.editor-modal{max-width:690px}.editor-modal form{gap:18px;margin-top:0}.editor-fields{display:grid;grid-template-columns:1fr 140px;gap:18px}.editor-fields label+label{margin:0}.field-help{font-size:10px!important;color:#aaaab8!important;line-height:1.8!important;margin-top:-8px}.message-count{text-align:right;font-size:9px;letter-spacing:.5px;color:#858694;margin-top:-8px}.editor-suggestion{border:1px solid #343540;border-radius:7px;padding:13px 15px;background:#0c0d1233}.editor-suggestion summary{font-size:11px;color:#bdbdca;cursor:pointer;min-height:25px;line-height:25px}.editor-suggestion p{font-size:11px;color:#a7a8b5;line-height:1.9;margin-top:12px}.upload-section{border-top:1px solid #353642;padding-top:20px}.upload-section h3{display:flex;align-items:center;gap:9px;font-family:DM Sans,sans-serif;font-size:12px;margin-bottom:16px}.upload-section .field-help{margin:0 0 15px}.upload-section>.text-button{margin-top:8px}.upload-progress{margin-top:12px;display:flex;align-items:center;gap:12px;font-size:10px}.upload-progress progress{height:6px;accent-color:#d0d1db;flex:1}.save-state{font-size:10px;display:flex;align-items:center;gap:7px;color:#adadba}.editor-actions{display:flex;justify-content:space-between;gap:10px;border-top:1px solid #393a46;padding-top:20px;flex-wrap:wrap}.editor-actions .button{font-size:11px;padding:11px 13px}.audio-player{border:1px solid #454651;border-radius:8px;padding:16px;margin-top:15px;background:#ffffff06}.audio-label{display:flex;align-items:center;gap:8px;font-size:11px;color:#b5b6c5;margin-bottom:12px;overflow-wrap:anywhere}.audio-label span{min-width:0}.audio-player audio{width:100%;height:40px;display:block}.audio-player p{font-size:11px;line-height:1.8}.audio-download{display:inline-block;font-size:10px;margin-top:12px;color:#9d9eac}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;padding:0;border:0}.letter-modal{max-width:610px;padding:32px 24px;text-align:center;overflow-x:hidden}.envelope-scene{padding:20px 0 8px;display:flex;flex-direction:column;align-items:center}.envelope-scene .eyebrow{padding-right:0}.envelope-scene h2{font-family:var(--gothic);font-size:39px;margin-top:13px}.envelope-scene>p{font-family:var(--serif);font-size:21px;color:#aaabb9;margin-top:3px}.envelope-instruction{font-size:11px;color:#a5a6b5;margin:20px 0 11px;min-height:18px}.envelope-scene>.error{margin-bottom:10px;width:100%;font-family:DM Sans,sans-serif!important;font-size:12px!important}.envelope{position:relative;width:290px;height:190px;max-width:100%;margin:62px 0 25px;perspective:900px;background:transparent;isolation:isolate}.envelope:disabled{opacity:1}.envelope-back{position:absolute;inset:0;z-index:1;border-radius:6px;background:#242630;border:1px solid #727581;box-shadow:0 12px 35px #000a}.envelope-front{position:absolute;inset:0;z-index:4;clip-path:polygon(0 0,50% 53%,100% 0,100% 100%,0 100%);background:linear-gradient(160deg,#262832,#111219);border:1px solid #727581;border-radius:5px}.envelope-front:after{content:"";position:absolute;inset:0;border:1px solid #5d5e6a;margin:9px;border-radius:2px;background-image:radial-gradient(circle,#9798a035 .6px,transparent .7px);background-size:5px 5px;opacity:.35}.envelope-flap{position:absolute;inset:0;z-index:5;clip-path:polygon(0 0,100% 0,50% 54%);background:linear-gradient(180deg,#30323d,#191b24);transform-origin:50% 0;backface-visibility:visible;border-top:1px solid #878997;transition:transform .65s ease .15s}.envelope-letter{position:absolute;inset:8px 15px 10px;background:#f1f1f4;border:1px solid #c4c5ce;color:#1d1e27;z-index:2;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:15px;font-family:var(--serif);font-style:italic;font-size:23px;transition:transform .65s cubic-bezier(.2,.5,.2,1) .7s}.envelope-letter svg{stroke-width:1}.seal{position:absolute;width:53px;height:53px;left:calc(50% - 26.5px);top:calc(48% - 15px);display:flex;align-items:center;justify-content:center;z-index:6;color:#30333e;background:radial-gradient(circle at 35% 30%,#e0e1e7,#989ca9 60%,#737887);border:3px double #bfc2cc;box-shadow:0 3px 10px #0008,inset 0 0 0 3px #575c6a44;border-radius:50%;transition:transform .4s ease,opacity .35s ease}.seal .bat{width:25px}.envelope:not(:disabled):hover .seal{transform:scale(1.05);box-shadow:0 0 20px #ffffff25}.envelope.opening .seal{transform:scale(1.15) translateY(-15px);opacity:0}.envelope.opening .envelope-flap{transform:rotateX(180deg);z-index:1}.envelope.opening .envelope-letter{transform:translateY(-100px)}.envelope-spark{position:absolute;color:#d9dbe5;font-size:24px;opacity:0;z-index:7;pointer-events:none}.spark-one{top:10px;left:-10px}.spark-two{top:-30px;right:20px;font-size:13px}.spark-three{bottom:0;right:-12px}.envelope.opening .envelope-spark{animation:sparkle 1.3s ease .2s}.envelope.opening .spark-two{animation-delay:.4s}.envelope.opening .spark-three{animation-delay:.6s}.preview-label{font-size:8px;letter-spacing:1.1px;display:block;padding-right:20px;color:#b7b8c5;text-align:left}.letter-modal.show-letter{background:#f3f3f5;color:#17181f;border-color:#dfdfe6;padding:0;box-shadow:0 25px 100px #000}.show-letter .modal-close{color:#545561}.show-letter .modal-close:hover{background:#0000000a}.letter{padding:48px 35px 30px;position:relative;animation:letter-appear .55s ease}.letter:before{content:"";position:absolute;inset:10px;border:1px solid #c9cad2;pointer-events:none;border-radius:3px}.letter .eyebrow{color:#696a79;padding-right:0}.letter h2{font-family:var(--gothic);color:#15161d;font-size:37px;line-height:1.2;margin:15px 0 27px;overflow-wrap:anywhere}.letter>.ornament{margin:14px 0;color:#9c9eaa}.letter .ornament>span{background:linear-gradient(to right,transparent,#b4b5c0)}.letter .letter-message{font-size:14px;line-height:2;color:#2b2c35;white-space:pre-wrap;overflow-wrap:anywhere;text-align:left}.letter .audio-player{color-scheme:light;background:#e9e9ee;border-color:#c9cad5;text-align:left;margin:25px 0}.letter .audio-label{color:#474955}.letter .audio-download{color:#555767}.letter .audio-player>.muted{color:#5f606e!important}.letter .error{color:#23242e!important;background:#00000008;border-color:#555866}.letter-signature{font-family:var(--serif);font-style:italic;font-size:24px;display:flex;justify-content:center;align-items:center;gap:8px;margin:9px 0 25px}.letter-done{background:#252630;color:#ededf3;border:1px solid #41434f}.show-letter>.preview-label{padding:18px 48px 0 24px;color:#626372}@keyframes spin{to{transform:rotate(360deg)}}@keyframes float-five{0%{opacity:0;transform:translateY(0)}20%{opacity:1}to{opacity:0;transform:translateY(-50px)}}@keyframes silver-shimmer{0%,40%{transform:translate(-100%)}75%,to{transform:translate(110%)}}@keyframes sparkle{0%{opacity:0;transform:scale(.3)}35%{opacity:.9}to{opacity:0;transform:scale(1.1) translateY(-25px)}}@keyframes letter-appear{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}@media(min-width:1100px){.page{max-width:864px}.hero{padding-top:70px}.hero h1{font-size:61px}.title-bats{gap:44px}.score-section{margin-top:13px}.topbar{padding:0 max(42px,calc((100vw - 1060px)/2))}}@media(max-width:640px){.page{padding:0 20px}.topbar{padding:0 20px;height:56px}.topbar-brand{font-size:8px;letter-spacing:1px;gap:8px}.topbar-right{gap:10px}.connection{font-size:9px}.hero{padding:43px 0 28px}.hero-eyebrow{font-size:7px;letter-spacing:1.6px;gap:9px}.hero-eyebrow>span{width:14px}.title-bats{gap:7px;margin-top:24px}.title-bats>.bat{width:14px;margin-top:23px}.title-bats>.bat:last-child{margin-bottom:20px}.hero h1{font-size:40px}.hero .title-emoji{font-size:15px}.hero>p{font-size:17px;margin-top:17px}.hero>.ornament{margin-top:22px}.ornament>span{width:60px}.ornament svg{width:80px}.score-section{padding:24px 18px 22px}.score-heading{gap:11px;margin-bottom:21px}.score-heading .eyebrow{font-size:7px;letter-spacing:1.3px}.score-heading h2{font-size:34px}.score-value{gap:4px}.score-value strong{font-size:47px}.score-value>span:not(.floating-five){font-size:10px}.add-five{font-size:15px;padding:8px 14px;margin-left:1px;min-height:44px}.progress-row{gap:13px}.progress-track{height:12px}.progress-caption{padding-left:23px;font-size:9px;gap:15px}.final-marker{font-size:33px;width:22px}.progress-caption>span:last-child{min-width:22px}.rewards-section{margin-top:35px}.section-heading h2{font-size:25px}.section-heading .eyebrow{font-size:8px}.reward-count{font-size:9px;padding:6px 9px}.section-subtitle{font-size:11px;margin-bottom:20px}.reward-card{padding:17px 14px;gap:12px;min-height:94px}.reward-index{font-size:19px;width:24px}.reward-name-row{align-items:flex-start;flex-direction:column;gap:6px}.reward-name-row h3{font-size:25px;line-height:1.16}.threshold{font-size:15px;line-height:1}.threshold>span{font-size:9px}.reward-status{font-size:9px;margin-top:9px}.reward-action{width:42px;height:42px}.preparing-message{font-size:10px}.final-reward .reward-name-row{flex-direction:row;align-items:center;gap:12px}.final-reward .reward-name-row h3{font-size:35px}.closing-note{margin-top:32px}.closing-note>p{font-size:20px}.closing-note>p>span{font-size:16px}.admin-nav{flex-direction:column;align-items:stretch;gap:12px}.admin-nav>span{justify-content:center}.tabs{justify-content:center}.tabs button{flex:1}.admin-tools{gap:2px 10px;justify-content:center;margin-top:10px}.admin-tools .text-button{font-size:10px;min-height:40px}.available-callout{padding:19px 15px;gap:12px;flex-wrap:wrap}.available-callout h3{font-size:23px}.available-callout .eyebrow{font-size:8px}.callout-actions{width:100%;justify-content:flex-end;margin-top:8px}.callout-actions .button{font-size:11px}.modal-backdrop{padding:14px}.modal{padding:34px 23px 26px;max-height:calc(100dvh - 28px)}.modal h2{font-size:30px}.modal-close{top:6px;right:6px}.editor-fields{grid-template-columns:1fr 98px;gap:12px}.editor-fields label{font-size:11px}.editor-fields input{font-size:13px;padding:11px}.editor-actions{display:grid;grid-template-columns:1fr 1fr}.editor-actions>.button:last-child{grid-column:1/-1}.editor-actions .button{font-size:10px;min-height:45px}.share-actions{flex-direction:column;align-items:stretch}.share-modal>.button{display:flex;margin-right:0}.letter-modal{padding:34px 18px 24px}.envelope{width:260px;height:175px;margin:62px 0 22px}.envelope-scene h2{font-size:35px}.envelope-scene>p{font-size:19px}.envelope-scene .eyebrow{font-size:8px}.letter{padding:44px 24px 28px}.letter h2{font-size:32px}.letter .letter-message{font-size:13px;line-height:1.95}.letter .audio-player{padding:12px}.preview-label{font-size:7px}.welcome-card{padding:32px 22px}.welcome-card h2{font-size:30px}.welcome-card>.button{font-size:11px;gap:8px;width:100%}.landing>.hero{padding-top:50px}.demo-banner{font-size:9px}.confirm-actions .button{flex:1}.topbar .icon-button{width:36px;height:36px}}@media(max-width:360px){.page{padding:0 14px}.hero h1{font-size:35px}.title-bats>.bat{width:12px}.score-section{padding:22px 14px}.score-heading{gap:8px}.score-value strong{font-size:43px}.add-five{padding:8px 12px}.topbar-brand{font-size:7px}.topbar .connection{font-size:8px}.reward-name-row h3{font-size:23px}.reward-card{gap:9px;padding:16px 12px}.section-heading h2{font-size:23px}.editor-fields{grid-template-columns:1fr}.envelope{width:235px;height:160px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.spin{animation:none!important}.progress-fill:after{display:none}.envelope.opening .envelope-letter{transform:none}.floating-five{animation:none;opacity:0}.envelope.opening .envelope-spark{display:none}}.reciprocal-page{max-width:1260px}.reciprocal-page>.hero{max-width:800px;margin:0 auto}.tracks-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:start}.track-card{min-width:0;scroll-margin-top:24px;border:1px solid #30313c;border-radius:13px;background:linear-gradient(145deg,#111218,#0c0d11);padding:22px}.track-card .score-section{margin-top:10px;padding:24px 20px}.track-card .score-heading{gap:12px}.track-card .score-heading>div:first-child{min-width:0}.track-card .score-heading h2{font-size:30px;line-height:1.25;margin-top:7px}.track-card .score-heading .eyebrow{font-size:7px;letter-spacing:1.3px;line-height:1.8}.track-card .score-value strong{font-size:45px}.track-card .score-value>span:not(.floating-five){font-size:10px}.track-card .add-five{padding:8px 13px;margin-left:0;min-height:44px}.track-permissions{min-height:54px;display:flex;justify-content:center;align-items:center}.track-permissions>p{font-size:10px;line-height:1.9;color:#a2a3b1;padding:16px 0;text-align:center}.track-card .admin-tools{width:100%;gap:3px 12px;margin-top:9px;padding:0}.track-card .admin-tools .text-button{font-size:10px}.track-card .section-heading h3{font-family:var(--serif);font-size:29px;margin-top:7px}.track-card .section-subtitle{min-height:36px;margin-bottom:19px}.track-card .reward-card{padding:17px 14px;gap:12px;min-height:108px}.track-card .reward-name-row{flex-direction:column;align-items:flex-start;gap:7px}.track-card .reward-name-row h3{font-size:26px}.track-card .threshold{font-size:16px}.track-card .reward-index{width:24px;font-size:20px}.track-card .final-reward .reward-index{font-size:31px}.track-card .final-reward .reward-name-row{flex-direction:row;align-items:center;justify-content:space-between}.track-card .final-reward .reward-name-row h3{font-size:32px}.track-card .available-callout{flex-wrap:wrap;margin:0 0 18px;padding:18px;gap:13px}.track-card .callout-actions{width:100%;justify-content:flex-end}.track-card .available-callout h3{font-size:25px}.reciprocal-page .admin-nav{flex-wrap:wrap;margin-bottom:27px}.personal-tabs{display:flex;border:1px solid #41424f;background:#14151c;border-radius:6px;padding:3px}.personal-tabs a{text-decoration:none;font-size:11px;padding:12px 15px;border-radius:4px;line-height:1.5;color:#c4c5d1}.personal-tabs a:hover{background:#282a34;color:#fff}.personal-actions{display:flex;align-items:center;gap:14px}.session-name{color:#e3e4eb;font-size:11px;letter-spacing:.5px}.demo-banner a{display:inline-block;margin:0 10px;text-underline-offset:3px}.demo-choice{display:flex;flex-wrap:wrap;justify-content:center;margin-top:20px;gap:5px 14px}.demo-choice>span{width:100%;font-size:9px;line-height:1.8;color:#9293a2}.invitation-gate form{margin-top:25px;text-align:left}@media(max-width:900px){.tracks-grid{grid-template-columns:1fr;max-width:670px;margin:0 auto}.reciprocal-page .admin-nav{max-width:670px;margin-left:auto;margin-right:auto;justify-content:center}.track-card .score-heading h2{font-size:35px}}@media(max-width:640px){.reciprocal-page{padding:0 14px}.track-card{padding:15px 12px}.track-card .score-section{padding:22px 14px}.track-card .score-heading{gap:9px}.track-card .score-heading h2{font-size:27px}.track-card .score-value strong{font-size:40px}.track-card .score-value{gap:3px}.track-card .score-value>span:not(.floating-five){font-size:9px}.track-card .add-five{font-size:14px;padding:8px 12px}.track-card .score-heading .eyebrow{font-size:6px;letter-spacing:1px}.track-card .reward-name-row h3{font-size:25px}.track-card .reward-card{padding:16px 12px;min-height:104px}.track-card .section-heading h3{font-size:26px}.track-card .section-subtitle{font-size:10px;margin-bottom:17px}.track-card .admin-tools{justify-content:center}.track-card .available-callout{padding:16px 12px}.track-card .available-callout .eyebrow{font-size:7px}.reciprocal-page .admin-nav{gap:10px}.personal-tabs{justify-content:center}.personal-tabs a{flex:1;font-size:10px;text-align:center}.personal-actions{justify-content:center;gap:13px}.topbar .session-name{font-size:9px}.topbar .connection{font-size:8px}.topbar{padding:0 14px}.topbar-right{gap:7px}}.attachments-editor,.voice-recorder{border-top:1px solid #3a3b47;padding-top:22px}.attachments-editor>h3,.voice-recorder>h3{font-family:var(--serif);font-size:25px;margin-bottom:15px;display:flex;align-items:center;gap:9px}.attach-buttons{display:flex;flex-wrap:wrap;gap:9px;margin:17px 0}.attach-buttons .button{font-size:11px}.attachment-list{display:grid;gap:14px}.attachment-task{border:1px solid #41424f;border-radius:9px;padding:12px;background:#0b0c1144;min-width:0}.attachment-order{display:flex;align-items:center;justify-content:flex-end;gap:4px}.attachment-order>span{margin-right:auto;font-family:var(--serif);font-size:23px;color:#b8bac7;padding-left:5px}.attachment-order .icon-button{width:38px;height:38px}.attachment-complete{display:flex;align-items:center;gap:7px;font-size:10px;color:#bbbcca;margin:12px 0 0}.media-view{min-width:0;margin:12px 0;padding:14px;border:1px solid #444653;border-radius:8px}.media-caption{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;font-size:10px;line-height:1.7;color:#b6b8c8;margin-bottom:12px}.media-caption>span:first-child{min-width:0;overflow-wrap:anywhere}.media-caption>span:last-child{white-space:nowrap}.media-view audio,.media-view video,.voice-recorder audio{display:block;width:100%;max-width:100%}.media-view audio,.voice-recorder audio{height:45px}.media-view video{border-radius:6px;max-height:470px;object-fit:contain;background:#050607}.image-preview{display:block;position:relative;width:100%;background:#08090d;padding:0;border-radius:7px;overflow:hidden}.image-preview img{width:100%;max-height:440px;object-fit:contain;display:block}.image-preview>span{position:absolute;bottom:10px;right:10px;display:flex;gap:6px;align-items:center;background:#08090bd9;color:#fff;border:1px solid #9396a0;padding:8px;border-radius:5px;font-size:10px}.media-error{font-size:11px;line-height:1.8;margin-top:12px}.image-modal{max-width:900px;text-align:center}.image-modal>img{width:100%;max-height:72dvh;object-fit:contain}.image-modal>p{margin-top:15px;overflow-wrap:anywhere}.letter-media{text-align:left;margin:25px 0}.letter .media-view{background:#eaeaef;border-color:#c2c4ce;color-scheme:light}.letter .media-caption,.letter .audio-download{color:#484b58}.letter .media-view .muted{color:#535664!important}.recording-controls,.recorder-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px}.recording-controls{font-size:12px}.recording-dot{width:9px;height:9px;display:block;border-radius:50%;background:#fff;box-shadow:0 0 12px #ddd8;animation:recording-pulse 1.5s ease infinite}.voice-recorder>.field-help{margin:0 0 17px}.voice-recorder>audio{margin-top:18px}.recorder-actions .button{font-size:11px;flex:1}.avatar{width:37px;height:37px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;border-radius:50%;border:1px solid #717483;background:linear-gradient(145deg,#353946,#101218);color:#e5e6ec}.avatar>span{font-family:var(--gothic);font-size:25px;line-height:1}.avatar img{width:100%;height:100%;object-fit:cover;display:block}.avatar.large{width:90px;height:90px}.avatar.large>span{font-size:53px}.session-identity{display:flex;align-items:center;gap:10px;letter-spacing:0;font-size:11px}.score-recipient{display:flex;align-items:center;gap:12px;margin:0 0 25px}.score-recipient>div{display:flex;flex-direction:column;gap:5px}.score-recipient>div>span{font-size:7px;letter-spacing:1.7px;color:#9da0af}.score-recipient strong{font-family:var(--serif);font-weight:500;font-size:23px}.profile-modal>p{margin-bottom:20px}.profile-current{display:flex;align-items:center;gap:20px;margin:25px 0;font-family:var(--serif);font-size:30px}.profile-modal>.field-help{margin:0 0 20px}.crop-editor{margin-top:25px;display:flex;flex-direction:column;gap:16px}.crop-stage{position:relative;width:min(260px,100%);aspect-ratio:1;border:1px solid #a1a5b4;border-radius:50%;overflow:hidden;margin:0 auto;touch-action:none;background:#08090b;cursor:grab}.crop-stage>img{position:absolute;max-width:none;-webkit-user-select:none;user-select:none;pointer-events:none}.crop-editor input[type=range]{padding:0;accent-color:#c5c8d4;min-height:44px}.crop-actions{display:flex;gap:12px}.crop-actions>.button{flex:1}.profile-modal .success,.profile-modal .error{margin-top:17px}.pwa-controls{display:flex;flex-direction:column;align-items:center;gap:12px;margin:0 auto 25px;max-width:900px;padding:0 18px}.install-button{border:1px solid #3a3d49;border-radius:6px;padding:12px 18px}.offline-banner,.update-banner{padding:14px 18px;background:#1e2029;border:1px solid #565a68;border-radius:7px;display:flex;align-items:center;gap:13px;font-size:11px;line-height:1.8;width:100%}.update-banner{flex-wrap:wrap;justify-content:space-between}.offline-banner svg{flex-shrink:0}.install-modal p,.install-modal ol{font-size:13px;line-height:1.9}.install-modal ol{padding-left:20px}.install-modal li{margin:10px 0}@keyframes recording-pulse{50%{opacity:.4}}@media(max-width:740px){.topbar{height:auto;min-height:66px;flex-wrap:wrap;padding:12px 15px;gap:10px}.topbar-brand{flex:1}.topbar-right{flex-wrap:wrap;justify-content:flex-end}.session-identity{font-size:10px;gap:7px}.session-identity .avatar{width:30px;height:30px}.session-identity .avatar>span{font-size:21px}.topbar-right .connection{display:none}.topbar-right>.text-button{font-size:10px}.score-recipient{margin-bottom:23px}.attach-buttons{display:grid;grid-template-columns:1fr 1fr}.attach-buttons>.button:last-child{grid-column:1/-1}.media-view{padding:11px}.attachment-task{padding:8px}.media-caption{font-size:9px}.recorder-actions{flex-direction:column;align-items:stretch}.crop-actions .button{font-size:11px}}@media(prefers-reduced-motion:reduce){.recording-dot{animation:none}}body{isolation:isolate}.castle-environment{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none;contain:strict;background:#08090b}.castle-horizon{position:absolute;inset:0;background:url(/artwork/castle-night.svg) center 22% / cover no-repeat;opacity:.9}.castle-vignette{position:absolute;inset:0;background:linear-gradient(180deg,#08090b4d,#08090b20 35%,#08090b91 76%,#08090be8),radial-gradient(ellipse at 50% 30%,#08090b66 5%,transparent 55%,#08090b77)}.castle-mist{position:absolute;inset:55% -12% 0;background:radial-gradient(ellipse at 15% 50%,#c3c8d112,transparent 60%),radial-gradient(ellipse at 84% 25%,#b7bfce0f,transparent 65%);animation:castle-fog 46s ease-in-out infinite alternate}.hero:before{content:"";position:absolute;left:50%;top:28px;transform:translate(-50%);width:min(580px,90%);height:calc(100% - 50px);border:1px solid #8e96aa1d;border-bottom:0;border-radius:52% 52% 0 0;pointer-events:none}.hero:after{content:"♥";position:absolute;left:50%;bottom:32px;transform:translate(-50%);font-size:9px;color:#afb4c53b;pointer-events:none}.hero h1{text-shadow:0 3px 24px #000,0 1px 2px #000}.hero-eyebrow,.hero>p{text-shadow:0 2px 10px #000}.topbar{background:#08090bba}.admin-nav{background:linear-gradient(90deg,transparent,#08090b99,transparent)}.track-card{position:relative;box-shadow:0 20px 60px #0004}.track-card:after{content:"";position:absolute;inset:7px;border:1px solid #8a91a711;border-radius:10px;pointer-events:none}.closing-note{background:radial-gradient(ellipse,#08090b80,transparent 75%)}.gothic-portrait{margin:0;display:flex;flex-direction:column;align-items:center;flex-shrink:0;--portrait-size:150px;--portrait-tone:#9399aa}.portrait-frame{position:relative;width:calc(var(--portrait-size)*1.2);height:calc(var(--portrait-size)*1.34);display:flex;align-items:center;justify-content:center;color:var(--portrait-tone)}.portrait-filigree{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.portrait-avatar{width:var(--portrait-size);height:var(--portrait-size);border:1px solid #c0c5d1;border-radius:50%;box-shadow:0 0 0 4px #151822,0 0 0 5px #616879,0 8px 24px #0005;background:radial-gradient(circle,#303642,#0a0b10)}.portrait-avatar>span{font-family:var(--serif);font-weight:500;font-size:calc(var(--portrait-size)*.48)}.gothic-portrait figcaption{text-align:center;display:flex;flex-direction:column;gap:4px;padding:3px 0}.gothic-portrait figcaption>span{font-family:DM Sans,sans-serif;font-size:8px;letter-spacing:1.5px;text-transform:uppercase;color:#a8afc0}.gothic-portrait figcaption>strong{font-family:var(--serif);font-size:24px;font-weight:500;color:#e0e2ec}.envelope-portrait{--portrait-size:158px;margin:0 0 14px}.envelope-scene>h2{margin-bottom:4px}.envelope-scene>.envelope{margin-top:38px;margin-bottom:15px}.envelope-scene>p{font-size:19px}.envelope-scene{position:relative}.envelope-scene:before{content:"";position:absolute;inset:8px 3px 90px;border:1px solid #99a4bb1c;border-radius:48% 48% 0 0;pointer-events:none}.portrait-callout .reward-portrait{--portrait-size:112px}.track-card .portrait-callout{gap:13px;padding:20px 15px;background:linear-gradient(120deg,#222733,#10131b)}.portrait-callout .callout-copy{flex:1;min-width:140px}.portrait-callout .callout-copy .eyebrow{font-size:8px;letter-spacing:1.1px}.portrait-callout .callout-author{color:#c6cbd9;font-family:var(--serif);font-size:15px}.portrait-callout .callout-actions{position:relative;z-index:1}.envelope-flight{position:absolute;inset:0;z-index:7;pointer-events:none}.flight-particle{position:absolute;left:50%;top:32%;opacity:0;pointer-events:none;transform:translate(-50%,-50%)}.flight-bat .bat{width:35px;fill:#08090c;stroke:#aab2c5;stroke-width:1.4;stroke-linejoin:round}.flight-heart svg{fill:#141821;stroke:#b2b9c9;stroke-width:1.2}.flight-heart.tone-1 svg{fill:#8b94a9;stroke:#c0c6d2}.flight-heart.tone-2 svg{fill:#050609;stroke:#687187}.envelope.opening .flight-particle{animation:envelope-flight 1.13s cubic-bezier(.22,.58,.32,1) var(--flight-delay) both}.envelope.opening .flight-bat .bat{animation:bat-wing .44s ease-in-out var(--flight-delay) 3 alternate}.envelope.opening .seal{animation:seal-parting .38s ease-out both}.seal:after{content:"";position:absolute;left:48%;top:8%;width:1px;height:83%;background:#11151e;transform:rotate(17deg);opacity:0;pointer-events:none}.envelope.opening .seal:after{opacity:.7}.letter-correspondents{display:flex;align-items:center;justify-content:center;gap:20px;text-align:left;padding-top:5px}.letter-correspondents .author-portrait{--portrait-size:96px;--portrait-tone:#7d8394}.letter-correspondents .portrait-avatar{box-shadow:0 0 0 3px #f3f3f5,0 0 0 4px #b7bdcb,0 5px 16px #1112}.letter .gothic-portrait figcaption>span{color:#656b7c}.letter .gothic-portrait figcaption>strong{color:#262b37;font-size:22px}.correspondence-direction{font-family:var(--serif);font-size:23px;line-height:1.5;color:#1d2230;margin:7px 0}.correspondence-recipient{font-size:10px;line-height:1.8;color:#636979}.letter-footer-actions{display:flex;align-items:center;flex-direction:column;gap:12px;position:relative}.letter-footer-actions .text-button{color:#474e60;font-size:11px;min-height:44px}.letter-footer-actions .text-button:hover:not(:disabled){color:#08090b}.demo-inventory dl{display:grid;grid-template-columns:1fr auto;gap:12px;padding:20px 0;font-size:12px;line-height:1.7}.demo-inventory dt{color:#aeb5c4}.demo-inventory dd{margin:0;color:#e0e4ee}.demo-inventory-access{text-align:center;background:#08090b99}.demo-inventory-access .text-button{font-size:10px}.password-recovery-link{align-self:flex-start;text-decoration:underline;text-underline-offset:4px}@keyframes envelope-flight{0%{opacity:0;transform:translate(-50%,-50%) scale(.5) rotate(0)}18%{opacity:.92}68%{opacity:.7}to{opacity:0;transform:translate(calc(-50% + var(--flight-x)),calc(-50% + var(--flight-y))) scale(1.03) rotate(var(--flight-rotation))}}@keyframes bat-wing{0%{transform:scaleY(1)}to{transform:scaleY(.58)}}@keyframes seal-parting{0%{opacity:1;transform:scale(1)}45%{opacity:.8;transform:scale(1.08) rotate(6deg)}to{opacity:0;transform:translateY(-13px) scale(1.12) rotate(13deg)}}@keyframes castle-fog{0%{transform:translate(-2%)}to{transform:translate(3%)}}@media(max-width:640px){.castle-horizon{background-size:auto 100%;background-position:51% 0;opacity:.82}.castle-vignette{background:linear-gradient(#08090b55,#08090b4d 35%,#08090bbb 78%,#08090be8)}.hero:before{top:20px;width:90%;height:calc(100% - 35px)}.envelope-portrait{--portrait-size:138px}.envelope-scene>.envelope{margin-top:31px}.portrait-callout .reward-portrait{--portrait-size:102px}.track-card .portrait-callout{justify-content:center;text-align:center}.portrait-callout .callout-copy{min-width:125px}.portrait-callout .callout-actions{justify-content:center}.letter-correspondents{gap:13px}.letter-correspondents .author-portrait{--portrait-size:84px}.correspondence-direction{font-size:20px}.flight-bat .bat{width:28px}}@media(max-height:700px){.envelope-portrait{--portrait-size:116px}.envelope-scene>.envelope{margin-top:23px}}@media(prefers-reduced-motion:reduce){.castle-mist{animation:none}.envelope.opening .flight-particle{display:none;animation:none}.envelope.opening .seal{animation:none;opacity:0}}.disclosure{border:1px solid #434651;border-radius:9px;background:linear-gradient(130deg,#171920,#0e1016);overflow:hidden;margin-top:18px}.disclosure-toggle{display:flex;width:100%;align-items:center;justify-content:space-between;gap:16px;min-height:56px;padding:16px 19px;background:none;text-align:left;color:#dddfe9;font-family:var(--serif);font-size:23px}.disclosure-toggle svg{transition:transform .2s;flex-shrink:0}.disclosure.expanded>.disclosure-toggle svg{transform:rotate(180deg)}.disclosure-body{padding:0 18px 20px}.game-introduction{margin-top:24px}.game-introduction .disclosure-toggle{font-family:var(--gothic);font-size:29px}.game-introduction p{white-space:pre-wrap;font-size:13px;line-height:1.9;color:#c5c8d4}.track-card .disclosure-body{padding:0 12px 17px}.track-card .rewards-section{margin-top:15px}.track-card .rewards-section .section-heading h3{font-size:24px}.personal-tabs button{background:none;color:#babfcf;min-height:46px;padding:12px 16px;border-radius:4px;font-size:11px;text-align:center;line-height:1.7}.personal-tabs button.active{background:#363b48;color:#fff}.playground-layout{display:grid;grid-template-columns:310px minmax(0,1fr);gap:25px;align-items:start}.active-track{min-width:0}.area-explanation{font-size:12px;line-height:1.9;color:#c6c9d4;margin:0 0 18px;padding:15px 18px;border:1px solid #414550;border-radius:8px;background:#11141ccc}.my-character-card{border:1px solid #5b5f70;border-radius:14px;padding:25px 20px;background:linear-gradient(150deg,#242734ed,#10121bf0);text-align:center;position:sticky;top:20px}.my-character-card>.bat-character{width:100%;height:290px;display:block;margin:15px auto}.my-character-card>p{font-family:var(--serif);font-size:20px;margin-bottom:19px;line-height:1.6;overflow-wrap:anywhere}.my-character-card>.character-awards{font-family:DM Sans,sans-serif;font-size:11px;color:#c0c4d0;margin:19px 0 12px}.my-character-card>.field-help{font-family:DM Sans,sans-serif;font-size:10px}.joint-moment-button{margin-top:13px;width:100%}.bat-character{overflow:visible;max-width:100%}.character-closed-eyes{opacity:0}.character-editor{max-width:1000px}.character-editor>h2{font-family:var(--gothic);font-size:37px}.character-editor-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:25px;margin:25px 0}.character-preview{align-self:start;position:sticky;top:0;text-align:center;background:radial-gradient(ellipse,#323746,#12131c 70%);border:1px solid #575e70;border-radius:14px;padding:16px}.character-preview>.bat-character{height:300px;width:100%}.character-preview>p{font-family:var(--serif);font-size:25px;line-height:1.4;overflow-wrap:anywhere}.character-preview>span{font-size:10px;line-height:1.8;color:#aeb6c8;display:block;margin-top:12px}.character-controls{min-width:0}.character-controls fieldset{border:1px solid #444a59;border-radius:8px;margin:0 0 20px;padding:17px;display:flex;flex-direction:column;gap:14px}.character-controls legend{font-family:var(--serif);font-size:24px;padding:0 10px;color:#d6dbea}.character-controls label{font-size:12px}.character-controls label+label{margin-top:0}.character-controls select{width:100%;min-height:46px;padding:10px;background:#0e111a;color:#dddfe9;border:1px solid #62697c;border-radius:5px;font:inherit}.character-controls select:focus-visible{outline:2px solid #d7dbe5;outline-offset:3px}.character-colors{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.character-colors input{height:48px;padding:5px;cursor:pointer}.character-choices{display:grid;gap:10px}.character-choices label{display:flex;flex-direction:row;align-items:center;gap:11px;min-height:44px;line-height:1.7}.character-choices input[type=checkbox]{width:20px;height:20px;min-height:20px;accent-color:#afb6ca;flex-shrink:0}.character-choices small{display:block;color:#a4aec3;font-size:10px}.wardrobe-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:250px;overflow:auto}.wardrobe-item{display:flex;gap:7px;padding:9px;border:1px solid #3f4657;border-radius:4px;font-size:10px;line-height:1.6}.wardrobe-item>span{flex-shrink:0;align-self:center}.wardrobe-item.earned{border-color:#8894ab;background:#c0c6d20a}.wardrobe-item small{display:block;font-size:9px;color:#9eabc2}.joint-scene-modal{max-width:700px;text-align:center;overflow-x:hidden}.joint-scene-modal h2{font-family:var(--gothic);font-size:39px}.joint-scene{position:relative;width:100%;height:345px;margin:22px auto 12px;overflow:hidden;border:1px solid #525c70;border-radius:14px;background:radial-gradient(ellipse at 50% 70%,#3a4056,#171a28 55%,#080b13)}.scene-arch{position:absolute;inset:12px 20% 20px;border:1px solid #b4bed046;border-radius:50% 50% 0 0;box-shadow:0 0 0 9px #abb6ce0c;pointer-events:none}.scene-floor{position:absolute;bottom:0;left:0;right:0;height:35px;background:linear-gradient(#3c415459,#11141d);border-top:1px solid #69768e45}.scene-person{position:absolute;bottom:19px;width:170px;text-align:center;will-change:transform;animation-duration:9.2s;animation-fill-mode:both;animation-timing-function:linear}.scene-person .bat-character{display:block;width:100%;height:270px}.scene-person>span{font-family:var(--serif);font-size:20px}.scene-manu{left:calc(50% - 173px);animation-name:approach-left}.scene-korina{left:calc(50% + 3px);animation-name:approach-right}.scene-korina>.bat-character{transform:scaleX(-1)}.scene-person .character-leg{transform-box:fill-box;transform-origin:top center;animation:avatar-step .55s ease-in-out infinite alternate}.scene-person .leg-right{animation-delay:.26s}.scene-person .character-arm{transform-box:fill-box;transform-origin:top center;animation:avatar-step .6s ease-in-out infinite alternate-reverse}.phase-2 .character-open-eyes{opacity:0}.phase-2 .character-closed-eyes{opacity:1}.phase-2 .character-leg,.phase-3 .character-leg,.phase-2 .character-arm,.phase-3 .character-arm{animation-play-state:paused}.scene-kiss{position:absolute;width:26px;height:26px;left:calc(50% - 13px);top:66px;fill:#b4a8c7;stroke:#d8cfdf;opacity:0;transition:opacity .4s}.phase-2 .scene-kiss{opacity:.95}.scene-hands{position:absolute;top:227px;left:calc(50% - 22px);width:44px;height:5px;border-radius:5px;background:#a49cac;opacity:0}.phase-3 .scene-hands{opacity:1}.scene-caption{font-size:13px;line-height:1.8;min-height:34px;color:#d1d4e0;margin-bottom:15px}.joint-scene.reduced .scene-person{animation:none;transform:none!important}.joint-scene.reduced .scene-manu{left:calc(50% - 163px)}.joint-scene.reduced .scene-korina{left:calc(50% - 7px)}.joint-scene.reduced .character-leg,.joint-scene.reduced .character-arm{animation:none}.joint-scene.reduced .scene-kiss,.joint-scene.reduced .scene-hands{opacity:1}@keyframes avatar-step{0%{transform:rotate(-5deg)}to{transform:rotate(5deg)}}@keyframes approach-left{0%{opacity:0;transform:translate(-70px)}12%{opacity:1;transform:translate(-70px)}39%{transform:translate(82px)}60%{transform:translate(82px)}75%{opacity:1;transform:translate(82px)}to{opacity:0;transform:translate(600px)}}@keyframes approach-right{0%{opacity:0;transform:translate(70px)}12%{opacity:1;transform:translate(70px)}39%{transform:translate(-82px)}60%{transform:translate(-82px)}75%{opacity:1;transform:translate(-82px)}to{opacity:0;transform:translate(436px)}}@media(max-width:800px){.playground-layout{grid-template-columns:1fr}.my-character-card{position:static;display:grid;grid-template-columns:150px 1fr;gap:10px 15px;align-items:center;text-align:left;padding:18px}.my-character-card>.eyebrow{grid-column:1/-1}.my-character-card>.bat-character{grid-row:2/6;height:185px;margin:0}.my-character-card>p{font-size:18px;margin:0}.my-character-card>.character-awards{margin:0}.my-character-card>.joint-moment-button{grid-column:1/-1}.character-editor-layout{grid-template-columns:1fr}.character-preview{position:static}.character-preview>.bat-character{height:235px}.personal-tabs{width:100%}.personal-tabs button{flex:1;padding:9px;font-size:10px}.character-controls legend{font-size:23px}}@media(max-width:420px){.my-character-card{grid-template-columns:120px 1fr;gap:10px}.my-character-card>.bat-character{height:170px}.character-colors{grid-template-columns:repeat(2,1fr)}.wardrobe-grid{grid-template-columns:1fr}.scene-person{width:145px}.scene-manu{left:calc(50% - 158px)}.scene-korina{left:calc(50% + 13px)}.joint-scene{height:325px}.scene-person .bat-character{height:245px}.scene-hands{top:214px}}@media(prefers-reduced-motion:reduce){.disclosure-toggle svg{transition:none}.scene-person,.scene-person .character-leg,.scene-person .character-arm{animation:none}.scene-kiss{transition:none}}.mascot-v2 .rig-torso{transform-origin:120px 238px;animation:mascot-breathe 4.6s ease-in-out infinite}.mascot-v2 .rig-head,.mascot-v2 .rig-hair-back{animation:head-settle 4.6s ease-in-out infinite}.mascot-v2 .mascot-blink{transform-origin:120px 101px;animation:mascot-blink 6.7s infinite}.mascot-v2 .mascot-ear{transform-origin:0px 12px;animation:ear-listen 9.3s ease-in-out infinite}.mascot-v2 .ear-right{animation-delay:-4.6s}.mascot-v2 .rig-wing{transform-origin:95px 183px;animation:wing-rest 7.1s ease-in-out infinite}.mascot-v2 .right-wing{transform-origin:146px 183px;animation-delay:-1.8s}.mascot-v2[aria-label*=Korina] .mascot-blink{animation-delay:-2.3s}.mascot-v2 .garment-cape{transform-origin:120px 157px;animation:cape-drape 6.3s ease-in-out infinite}.mascot-v2 .garment-ribbon{transform-box:fill-box;transform-origin:40% 35%;animation:ribbon-soft 5.2s ease-in-out infinite}.mascot-v2 .earring-swing{transform-origin:0px 0px;animation:earring-sway 3.7s ease-in-out infinite}.mascot-v2 .jewelry-chain{transform-box:fill-box;transform-origin:50% 0%;animation:chain-sway 4.9s ease-in-out infinite}.mascot-v2 .jewel-reflection{animation:metal-reflection 8.2s ease-in-out infinite}.mascot-v2 .reward-aura{animation:reward-breath 6.5s ease-in-out infinite}.mascot-v2 .equip-reaction{transform-origin:120px 240px;animation:equip-delight .6s cubic-bezier(.25,.8,.32,1)}.mascot-v2.still *{animation:none!important}.joint-scene .rig-torso,.joint-scene .rig-head,.joint-scene .rig-hair-back,.joint-scene .mascot-blink,.joint-scene .phase-2 .mascot-blink{animation:none}.joint-scene .scene-person .character-leg{transform-origin:0px 0px}.joint-scene .character-arm{transform-origin:0px 0px!important}.joint-scene .character-wings{transform:none}.character-kiss-muzzle{opacity:0}.phase-2 .character-kiss-muzzle{opacity:1}.phase-2 .character-front-muzzle{opacity:.2}.joint-scene{--scene-width:170px;--scene-start:145px;--scene-contact:51px}.joint-scene .scene-person{width:var(--scene-width);left:calc(50% - var(--scene-width)/2)}.joint-scene .scene-manu{animation-name:atelier-approach-left}.joint-scene .scene-korina{animation-name:atelier-approach-right}.joint-scene .scene-hands{display:none}.phase-3 .arm-right{animation:none;transform:rotate(-12deg)}.joint-scene.reduced .scene-manu{left:calc(50% - var(--scene-width)/2 - var(--scene-contact))}.joint-scene.reduced .scene-korina{left:calc(50% - var(--scene-width)/2 + var(--scene-contact))}.joint-scene.reduced .arm-right{transform:rotate(-12deg)}.joint-scene.reduced .character-kiss-muzzle{opacity:1}.joint-scene.reduced .character-front-muzzle{opacity:.2}@keyframes atelier-approach-left{0%{opacity:0;transform:translate(calc(-1 * var(--scene-start)))}12%{opacity:1;transform:translate(calc(-1 * var(--scene-start)))}39%,60%,75%{opacity:1;transform:translate(calc(-1 * var(--scene-contact)))}to{opacity:0;transform:translate(600px)}}@keyframes atelier-approach-right{0%{opacity:0;transform:translate(var(--scene-start))}12%{opacity:1;transform:translate(var(--scene-start))}39%,60%,75%{opacity:1;transform:translate(var(--scene-contact))}to{opacity:0;transform:translate(calc(600px + 2 * var(--scene-contact)))}}@media(max-width:420px){.joint-scene{--scene-width:145px;--scene-start:110px;--scene-contact:43px}}.fashion-editor{max-width:1190px;padding:34px 26px 22px;background:radial-gradient(ellipse at 10% 15%,#2a2d3e,#151720 65%)}.fashion-editor>h2{font-family:var(--gothic);font-size:40px;margin-bottom:10px}.atelier-layout{display:grid;grid-template-columns:295px minmax(0,1fr);gap:25px;margin-top:22px}.atelier-preview{min-width:0;position:sticky;top:0;align-self:start;text-align:center;padding:20px 14px;border:1px solid #66748c;border-radius:16px;background:radial-gradient(ellipse at 50% 47%,#45475f,#242838 48%,#141820);box-shadow:inset 0 0 60px #11182b6b,0 10px 30px #0003}.atelier-preview-tag{font-size:8px;letter-spacing:1.9px;color:#bdc7db}.atelier-preview>.mascot-v2{height:355px;width:100%;margin:10px 0;filter:drop-shadow(0 5px 7px #0004)}.atelier-preview>p{font-family:var(--serif);font-size:26px}.atelier-preview>span:last-of-type{font-size:10px;color:#bac8de;display:block;margin:8px 0 16px}.atelier-preview>.button{font-size:10px;min-height:42px;margin:8px 0}.equipped-rack{display:grid;gap:6px;margin:15px 0}.equipped-rack button{display:flex;align-items:center;gap:8px;border:1px solid #657590;border-radius:6px;padding:5px 8px;background:#b7bed010;color:#d4deef;min-height:41px;font-size:9px;text-align:left}.equipped-rack svg.fashion-thumbnail{width:28px;height:33px;flex-shrink:0}.equipped-rack span{flex:1}.equipped-rack button:hover{background:#a7b7d325}.atelier-preview>.field-help{font-size:9px!important;line-height:1.8!important;margin-top:10px}.atelier-controls{min-width:0}.atelier-tabs{display:flex;padding:4px;border:1px solid #4c5b76;border-radius:8px;background:#101826;margin-bottom:18px;gap:3px}.atelier-tabs button{flex:1;background:none;font-size:12px;line-height:1.7;color:#aebbd3;border-radius:5px;padding:12px 10px;min-height:44px}.atelier-tabs button.active{background:linear-gradient(130deg,#49536b,#303c53);color:#fff;border:1px solid #8e9bb5}.fashion-filters{display:grid;grid-template-columns:1fr 1fr;gap:12px}.fashion-filters label{font-size:10px;color:#b5c5e0;gap:7px}.fashion-filters label>svg{display:none}.fashion-filters input,.fashion-filters select,.appearance-grid select{border-color:#526381;background:#0f1624;min-height:43px;font-size:11px;color:#d9e3f4}.fashion-filters select,.appearance-grid select{width:100%;padding:12px;border:1px solid #526381;border-radius:5px;font:inherit}.fashion-filters .owned-filter{grid-column:1/-1;display:flex;flex-direction:row;align-items:center;gap:8px;margin:0}.owned-filter input{width:17px;height:17px;min-height:17px;accent-color:#a9c4e2}.fashion-categories{display:flex;flex-wrap:wrap;gap:6px;margin:15px 0 10px}.fashion-categories button{border:1px solid #4f617e;border-radius:6px;background:#151f31;color:#b5c6e3;font-size:10px;padding:9px 10px;min-height:37px}.fashion-categories button[aria-pressed=true]{background:#bac6db;color:#111b2b;border-color:#c9d4e8;font-weight:600}.fashion-result-count{font-size:9px;line-height:1.8;color:#92a9cd;margin:12px 0}.fashion-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.fashion-card{border:1px solid #576782;border-radius:11px;overflow:hidden;background:linear-gradient(160deg,#262e40,#182232);box-shadow:0 4px 12px #0003;min-width:0}.fashion-card-art{height:155px;position:relative;background:radial-gradient(ellipse at 50% 70%,#4c5b75,#222d43 70%);border-bottom:1px solid #52647b;display:flex;align-items:center;justify-content:center;padding:20px 18px 26px}.fashion-thumbnail{width:100%;height:100%;overflow:visible;filter:drop-shadow(0 5px 4px #0005);display:block}.fashion-thumbnail *{animation:none!important}.fashion-status{position:absolute;top:8px;left:7px;display:inline-flex;align-items:center;gap:4px;border:1px solid #71809a;border-radius:4px;background:#0d1725df;font-size:8px;padding:4px 5px;color:#c9d9f2}.fashion-card.equipped{border:2px solid #c8d6ed;box-shadow:0 0 0 2px #86a3cf2e}.fashion-card.equipped .fashion-status{background:#c5d6ed;color:#112035}.fashion-card.locked{border-color:#414e69}.fashion-card.locked .fashion-card-art{background:radial-gradient(ellipse at 50% 70%,#3b465e,#161e30 80%)}.fashion-card.locked .fashion-status{color:#a5b7d7}.fashion-card-copy{padding:11px 10px 10px}.fashion-card-copy>small{font-size:7px;letter-spacing:1px;text-transform:uppercase;color:#93a8cb;display:block;line-height:1.8;margin-bottom:5px}.fashion-card-copy h3{font-family:var(--serif);font-size:18px;font-weight:600;line-height:1.2;min-height:43px;color:#e2e9f5}.fashion-card-copy>span{font-size:8px;color:#9cafd0;display:block;line-height:1.7;margin-top:7px}.fashion-card-copy>p{font-size:8px;color:#b7c8e4;line-height:1.7;margin:8px 0}.fashion-card-actions{display:flex;gap:5px}.fashion-card-actions button{flex:1;background:linear-gradient(#b7c8e0,#93abc9);color:#112039;border:1px solid #bacfe9;border-radius:4px;font-size:8px;min-height:34px;padding:7px 4px}.fashion-card-actions .fashion-preview-button{background:#17263b;border-color:#5a7295;color:#b9cdec;display:flex;align-items:center;justify-content:center;gap:4px}.fashion-card-actions button:disabled{opacity:.45}.appearance-grid{display:grid;gap:16px}.appearance-grid label+label{margin:0}.atelier-color-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.atelier-color-row input{height:45px;padding:4px;cursor:pointer}.fashion-savebar{position:sticky;bottom:-22px;margin:22px -26px -22px;padding:17px 26px;display:flex;align-items:center;justify-content:space-between;gap:18px;background:#101927f5;border-top:1px solid #7589a6;z-index:3}.fashion-savebar p{font-size:10px;line-height:1.8;color:#b9c9e3}.fashion-savebar .button{font-size:11px;white-space:nowrap}.my-character-card>.mascot-v2{height:320px}.my-character-card{background:radial-gradient(ellipse at 50% 42%,#41465a,#232938 48%,#111923);border-color:#67758e}.notification-bell{position:relative}.notification-bell>span{position:absolute;right:1px;top:1px;background:#c5cbd8;color:#152137;border:1px solid #e1e9f3;border-radius:12px;min-width:17px;padding:2px 4px;font-size:8px;font-weight:700;line-height:1.3}.notification-center{max-width:810px;background:linear-gradient(140deg,#232a3b,#131c2a)}.notification-center h2{display:flex;align-items:center;gap:11px;font-family:var(--gothic)}.notification-toolbar{display:flex;gap:9px;flex-wrap:wrap;margin:20px 0}.notification-toolbar button{font-size:10px;background:#172a42;color:#b7cde9;border:1px solid #5f789b;border-radius:5px;padding:9px 11px;min-height:40px;display:flex;align-items:center;gap:6px}.notification-toolbar button.active{background:#aebed9;color:#15203a}.notification-list{display:grid;gap:12px}.notification-row{border:1px solid #51607a;border-radius:9px;background:#182337;padding:17px}.notification-row.unread{border-color:#a8bedf;background:linear-gradient(130deg,#2d3b53,#1c293e)}.notification-row-heading{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.notification-row-heading h3{font-family:var(--serif);font-size:24px;line-height:1.3;flex:1;min-width:160px;color:#dee8f5}.notification-row-heading time{font-size:8px;color:#9eb3d3}.notification-dot{width:6px;height:6px;border-radius:50%;background:#b7cbe8;flex-shrink:0}.notification-row.read .notification-dot{opacity:.15}.notification-row>p{font-size:11px;line-height:1.8;color:#b2c7e4;margin:12px 0}.notification-actions{display:flex;align-items:center;gap:13px;flex-wrap:wrap;margin-top:14px}.notification-actions .button{font-size:10px}.notification-empty{padding:25px;border:1px solid #556786;border-radius:6px;font-family:var(--serif);font-size:23px;text-align:center;color:#a6bcde}.prize-presentation{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:20px 0 7px}.prize-piece{border:1px solid #b1c6e3;border-radius:10px;padding:16px 12px;background:radial-gradient(ellipse at 50% 25%,#475c7f,#1b2d49 70%);text-align:center;animation:prize-rise .55s ease both}.prize-piece .fashion-thumbnail{height:115px;margin:6px 0 17px}.prize-piece strong{display:block;font-family:var(--serif);font-size:20px;line-height:1.2;color:#e1eaf7}.prize-piece small{display:block;color:#9eb9df;font-size:8px;margin-top:8px;line-height:1.7}.live-prize-panel{position:relative;margin:0 0 25px;padding:22px;border:1px solid #a9c0e2;border-radius:12px;background:radial-gradient(ellipse,#304d70,#18273e 70%)}.live-prize-panel>.icon-button{position:absolute;right:8px;top:8px}.live-prize-panel>h3{font-family:var(--serif);font-size:28px;padding-right:30px}.live-prize-panel>.button{margin-top:17px}@keyframes mascot-breathe{0%,to{transform:translateY(0) scaleY(1)}50%{transform:translateY(-1.15px) scaleY(1.007)}}@keyframes head-settle{0%,to{transform:translateY(0)}50%{transform:translateY(-1.45px)}}@keyframes mascot-blink{0%,42%,45%,75%,78%,to{transform:scaleY(1)}43.4%,76.3%{transform:scaleY(.06)}}@keyframes ear-listen{0%,68%,82%,to{transform:rotate(0)}72%{transform:rotate(-4deg)}77%{transform:rotate(2deg)}}@keyframes wing-rest{0%,to{transform:rotate(0)}50%{transform:rotate(-1.6deg)}}@keyframes cape-drape{0%,to{transform:rotate(-.25deg) scaleX(1)}50%{transform:rotate(.45deg) scaleX(1.008)}}@keyframes ribbon-soft{0%,to{transform:rotate(-1deg)}50%{transform:rotate(1.5deg)}}@keyframes earring-sway{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}@keyframes chain-sway{0%,to{transform:rotate(-.4deg)}50%{transform:rotate(.7deg)}}@keyframes metal-reflection{0%,65%,to{opacity:1}75%{opacity:.78}85%{opacity:1}}@keyframes reward-breath{0%,to{opacity:.7}50%{opacity:1}}@keyframes equip-delight{0%{transform:scale(1)}30%{transform:translateY(-2px) scale(1.018)}70%{transform:scale(.998)}to{transform:scale(1)}}@keyframes prize-rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1000px){.fashion-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.atelier-layout{grid-template-columns:250px minmax(0,1fr)}}@media(max-width:740px){.atelier-layout{grid-template-columns:1fr}.atelier-preview{position:static}.atelier-preview>.mascot-v2{height:305px}.equipped-rack{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.equipped-rack button{font-size:8px;padding:5px}.fashion-editor{padding:32px 17px 22px}.fashion-card-grid{gap:10px}.fashion-card-art{height:140px;padding:23px 13px}.fashion-card-copy h3{font-size:19px}.fashion-savebar{margin-left:-17px;margin-right:-17px;padding:14px 17px;flex-direction:column;align-items:stretch;gap:10px}.fashion-categories{gap:5px}.fashion-categories button{font-size:9px;min-height:40px}.fashion-filters{grid-template-columns:1fr}.owned-filter{grid-column:auto}.atelier-color-row{grid-template-columns:repeat(2,1fr)}.my-character-card>.mascot-v2{height:225px}.prize-presentation{gap:7px}.prize-piece{padding:10px 7px}.prize-piece .fashion-thumbnail{height:82px}.prize-piece strong{font-size:16px}.notification-row{padding:14px}.notification-row-heading h3{font-size:22px}}@media(max-width:360px){.fashion-card-grid{gap:7px}.fashion-card-art{height:120px}.fashion-card-copy{padding:10px 8px}.fashion-card-copy h3{font-size:17px}.fashion-card-actions button{font-size:7px}}@media(prefers-reduced-motion:reduce){.mascot-v2 *,.prize-piece{animation:none!important;transition:none!important}.equip-reaction{transform:none!important}}.fashion-card-art{width:100%;cursor:pointer}.fashion-card-art:focus-visible{outline:3px solid #e0c2df;outline-offset:-4px}.fashion-card.previewed{border-color:#d6abd0;box-shadow:0 0 0 2px #b891b642}.preview-piece-label{padding:11px 7px;border:1px solid #9e8bab;border-radius:7px;margin:3px 0 16px;background:#40334d}.preview-piece-label strong{font-family:var(--serif);font-size:21px;display:block}.preview-piece-label span{font-size:10px;display:block;margin-top:7px}.garment-poncho{transform-origin:120px 158px}.atelier-preview>.mascot-v2{height:385px}@media(max-width:740px){.atelier-preview>.mascot-v2{height:380px}.fashion-card-actions button{font-size:10px;min-height:42px}.fashion-card-copy>small{font-size:8px}.fashion-card-copy>span,.fashion-card-copy>p{font-size:10px}.fashion-status{font-size:9px}}.hair-style-grid{grid-column:1/-1;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin:10px 0}.hair-style-grid button{padding:8px;border:1px solid #65758f;border-radius:8px;background:#253049;color:#d8cfe3;min-width:0}.hair-style-grid button[aria-pressed=true]{border:2px solid #d1b6db;background:#41324f}.hair-thumbnail{display:block;width:100%;height:85px}.hair-style-grid span{display:block;font-size:10px;margin-top:7px}.hair-style-grid button:focus-visible{outline-offset:2px}@media(max-width:740px){.hair-style-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.hair-thumbnail{height:75px}}.wardrobe-piece-colors{padding:12px 8px;border:1px solid #75819c;border-radius:8px;margin:15px 0;text-align:left}.wardrobe-piece-colors label{font-size:10px}.wardrobe-piece-colors select{width:100%;min-height:42px;background:#172137;color:#d8d0e2;border:1px solid #7c8a9e;border-radius:5px}.wardrobe-piece-colors .field-help{margin:10px 0 0}@media(min-width:741px){.atelier-preview{max-height:calc(100dvh - 280px);overflow-y:auto;overscroll-behavior:contain}}.avatar-views .orientation-host>.bat-character{display:block;width:100%;height:385px;margin:10px 0;filter:drop-shadow(0 5px 7px #0004)}.avatar-views nav{display:flex;justify-content:center;gap:6px;flex-wrap:wrap}.avatar-views nav button{min-height:42px;padding:8px 12px;border:1px solid #7188a5;border-radius:5px;background:#253950;color:#d2ddeb;font-size:11px}.avatar-views nav button[aria-pressed=true]{background:#aa96b7;color:#151b2b;border-color:#e0c5e0}.avatar-views .field-help{font-size:10px!important;line-height:1.7!important;margin:10px 0}@media(max-width:740px){.avatar-views .orientation-host>.bat-character{height:380px}}.tattoo-canvas{touch-action:none;-webkit-user-select:none;user-select:none}.tattoo-canvas>.bat-character{width:100%;height:430px;display:block}.tattoo-view-nav{display:flex;gap:7px;justify-content:center;margin:15px 0}.tattoo-view-nav button{min-height:42px;padding:8px 14px;background:#26384d;color:#ded4e9;border:1px solid #7e8ea5;border-radius:6px}.tattoo-view-nav button[aria-pressed=true]{background:#b39cba;color:#172034}.tattoo-controls input[type=range]{width:100%;min-height:42px}.tattoo-controls select{min-height:42px}.ink-swatch{display:inline-block;width:12px;height:12px;border:1px solid #d9d5df;border-radius:50%;margin-right:6px}.tattoo-selection-handle{cursor:grab}.tattoo-layer-list button{min-height:42px}.tattoo-workspace .tattoo-toolbar{gap:8px}.tattoo-canvas{position:relative;overflow:hidden}.tattoo-canvas>.bat-character{height:300px}.tattoo-canvas>svg{overflow:hidden}.tattoo-canvas .bat-character *{animation:none!important}.tattoo-edit-overlay{position:absolute;inset:0;width:100%;height:300px;pointer-events:none}.tattoo-touch-target{cursor:grab}.tattoo-touch-target:active{cursor:grabbing}.tattoo-placement-view{position:relative;background:#252a40;border-radius:8px}.tattoo-view-nav{flex-wrap:wrap;margin:8px 0}.tattoo-view-nav button{font-size:12px;padding:8px;min-height:44px}.tattoo-selection-status{font-size:12px;margin:0;padding:8px;min-height:42px;color:#f1d0ab}.tattoo-add-controls{display:grid;gap:10px}.tattoo-workspace .tattoo-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.tattoo-controls label{font-size:13px;overflow-wrap:anywhere}.tattoo-controls input,.tattoo-controls select,.tattoo-add-controls select{min-height:44px;max-width:100%;width:100%;min-width:0}.tattoo-controls input[type=color]{height:48px;cursor:pointer}.tattoo-controls input[type=range]{touch-action:none}.tattoo-layer-list{margin-top:15px}.tattoo-controls .text-button{min-height:44px}.tattoo-controls label,.tattoo-controls button,.tattoo-layer-list button{scroll-margin-top:10px;scroll-margin-bottom:100px}@media(max-width:740px){.tattoo-canvas>.bat-character,.tattoo-edit-overlay{height:220px}}.flaming-heart{position:fixed;inset:0;z-index:150;pointer-events:none;display:grid;place-items:center;background:transparent;animation:love-appearance 1.1s ease both}.flaming-heart>svg{width:min(370px,86vw);height:auto;filter:drop-shadow(0 0 24px #c5557659)}.love-flames{transform-origin:180px 260px;animation:love-fire 1.1s ease-in-out both}.love-ember{animation:love-spark .85s ease both;transform-box:fill-box;transform-origin:center}.score-character-strip{display:flex;align-items:center;justify-content:center;gap:20px;margin:5px 0 20px;padding:12px;border:1px solid #697089;border-radius:12px;background:radial-gradient(ellipse,#34394e,#141a29)}.score-character-strip>.bat-character{width:180px;height:270px;flex-shrink:0}.score-character-strip>.score-recipient{display:flex;flex-direction:column;align-items:center;gap:14px;margin:0;text-align:center}.score-character-strip .score-recipient strong{font-family:var(--serif);font-size:33px}.score-character-strip .score-recipient span{font-size:9px;letter-spacing:1px}@keyframes love-appearance{0%{opacity:0;transform:scale(.84)}18%,65%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.04)}}@keyframes love-fire{0%,to{transform:scaleY(.97)}50%{transform:scaleY(1.045)}}@keyframes love-spark{0%{opacity:0;scale:.4}30%{opacity:1;scale:1}to{opacity:0;scale:.7;translate:0 -17px}}@media(max-width:740px){.score-character-strip{gap:12px;padding:7px}.score-character-strip>.bat-character{width:145px;height:240px}.score-character-strip .score-recipient strong{font-size:27px}}@media(prefers-reduced-motion:reduce){.flaming-heart{animation:love-soft 1.1s ease both;transform:none}.love-flames,.love-ember{animation:none}.love-ember{opacity:.65}}@keyframes love-soft{0%,to{opacity:0}25%,70%{opacity:.9}}.game-session-tools{display:flex;gap:16px;justify-content:flex-end;margin:15px 0}.games-panel{max-width:850px}.games-list{display:grid;gap:12px;margin:24px 0}.games-list button{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap}.games-list small{font-size:10px}.game-create-box{padding:20px;border:1px solid #697e9d;border-radius:9px;margin:20px 0;background:#162437}.game-create-box h3{font-family:var(--serif);font-size:26px;margin-bottom:18px}.game-create-box .button{margin-top:15px}.volume-host{height:390px;width:100%;position:relative}.volume-host canvas{width:100%;height:100%;touch-action:pan-y;cursor:grab}.volume-host canvas:active{cursor:grabbing}.avatar-turntable nav{display:flex;flex-wrap:wrap;justify-content:center;gap:5px;margin:10px 0}.avatar-turntable nav button{min-height:38px;background:#253950;color:#d2ddeb;border:1px solid #7188a5;border-radius:5px;padding:7px;font-size:10px}.avatar-turntable>label{font-size:10px}.avatar-turntable small{font-size:9px;color:#acbcd1}.room-modal{max-width:1280px}.castle-room{position:relative;width:100%;aspect-ratio:1.5;overflow:hidden;border:1px solid #8a7b94;border-radius:10px;margin:22px 0;background:#2b2837}.room-background{position:absolute;inset:0;width:100%;height:100%}.room-object{position:absolute;-webkit-user-select:none;user-select:none;touch-action:none;transform-origin:50% 95%}.room-object>.furniture-art{width:100%;height:auto;filter:drop-shadow(0 7px 3px #0a10285c);display:block}.castle-room.editable .room-object{cursor:grab}.room-object.selected{outline:2px dashed #d6bdd9;outline-offset:3px}.room-resident{position:absolute;left:49%;top:82%;width:17%;transform:translate(-50%,-100%);pointer-events:none}.room-resident>.bat-character{display:block;width:100%;height:auto}.room-toolbar,.room-controls{display:flex;flex-wrap:wrap;gap:12px;margin:15px 0}.room-toolbar button{min-height:42px;display:flex;gap:6px;align-items:center;background:#253149;color:#d2c6df;padding:10px;border:1px solid #7b82a0;border-radius:6px}.room-controls label{max-width:150px;font-size:11px}.room-controls input[type=color]{height:42px}.furniture-inventory{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.furniture-inventory article{padding:10px;border:1px solid #68789b;border-radius:8px;background:#242d43;text-align:center;min-width:0}.furniture-inventory .furniture-art{height:130px;width:100%}.furniture-inventory strong{display:block;font-family:var(--serif);font-size:20px;line-height:1.2;min-height:48px}.furniture-inventory small{font-size:9px;display:block;margin:10px 0}.furniture-inventory button{min-height:38px;width:100%;background:#98aeca;color:#12223c;border-radius:5px}.furniture-inventory .locked{opacity:.6}.furniture-inventory a{font-size:8px;line-height:1.7;display:block;margin-top:12px}.room-save{position:sticky;bottom:0;margin-top:20px}.messages-panel,.gifts-panel,.album-panel{max-width:1000px}.message-thread{display:grid;gap:14px;max-height:45vh;overflow:auto;margin:25px 0;padding:4px}.message-thread article{max-width:83%;padding:18px;border:1px solid #7e7291;border-radius:12px;background:#282d44}.message-thread article.outgoing{justify-self:end;background:#3b3049}.message-thread article.incoming{justify-self:start;background:#24354c}.message-thread header{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;font-size:11px}.message-thread p{white-space:pre-wrap;font-size:13px;line-height:1.9;margin:12px 0}.message-thread time,.message-thread small{font-size:9px;color:#adb8d5}.gift-catalog{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin:22px 0}.gift-catalog button{padding:15px;border:1px solid #8090aa;background:#252d41;color:#d5dbea;border-radius:10px}.gift-catalog button[aria-pressed=true]{border:2px solid #d6b5d0}.gift-catalog svg{height:120px;width:100%;display:block}.gift-catalog span{display:block;font-family:var(--serif);font-size:22px;margin-top:12px}.received-gifts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin-top:20px}.received-gifts article{border:1px solid #7e7b95;border-radius:10px;padding:17px;background:#243047}.gift-image{height:135px;margin-bottom:15px}.gift-image svg{width:100%;height:100%}.received-gifts strong,.received-gifts time{display:block;font-size:11px;margin:10px 0}.received-gifts p{white-space:pre-wrap;font-size:13px;line-height:1.8}.gift-opening .gift-image{animation:gift-delight 1.3s ease}.memory-list{display:grid;gap:15px;margin-top:25px}.memory-list article{padding:20px;border:1px solid #78839e;border-radius:9px;background:#202b41}.memory-list time,.memory-list small{font-size:10px;color:#b3bdd3}.memory-list h3{font-family:var(--serif);font-size:28px;margin:12px 0}.memory-list .button{display:block;margin:18px 0 0}.memory-attachments{display:grid;gap:7px;margin:15px 0}.memory-attachments>div{display:flex;gap:12px;align-items:center}.memory-view{max-width:920px}.memory-view .letter-content{white-space:pre-wrap}.memory-view .media-view{margin:20px 0}.shared-encounter-modal{max-width:850px;text-align:center}.shared-encounter{height:370px;position:relative;margin:25px 0;border:1px solid #7984a1;border-radius:12px;overflow:hidden;background:radial-gradient(ellipse at 50% 65%,#48516b,#192239 65%,#101723)}.shared-arch{position:absolute;inset:15px 19% 20px;border:2px solid #929cb64a;border-radius:50% 50% 0 0}.encounter-character{position:absolute;bottom:20px;width:175px;left:calc(50% - 87px);transition:transform .65s}.encounter-character>svg{display:block;height:280px;width:100%}.encounter-character.right>svg{transform:scaleX(-1)}.encounter-character.left{transform:translate(-110px)}.encounter-character.right{transform:translate(110px)}.action-hug .left{transform:translate(-50px)}.action-hug .right{transform:translate(50px)}.action-hug .arm-right{transform:rotate(-58deg);transform-origin:0 0;animation:none}.action-hug .rig-head{animation:none;transform-origin:120px 144px;transform:rotate(8deg)}.action-kiss .left{transform:translate(calc(-1 * var(--contact)))}.action-kiss .right{transform:translate(var(--contact))}.action-kiss .character-open-eyes{opacity:0}.action-kiss .character-closed-eyes,.action-kiss .character-kiss-muzzle{opacity:1}.action-kiss .character-front-muzzle{opacity:.15}.action-dance .character-leg{animation:avatar-step .4s ease-in-out infinite alternate;transform-origin:0 0}.action-dance .left>svg{animation:dance-left 1.2s ease-in-out infinite}.action-dance .right>svg{animation:dance-right 1.2s ease-in-out infinite}.encounter-hearts{position:absolute;inset:0;pointer-events:none}.encounter-hearts svg{position:absolute;top:60%;width:25px;height:25px;stroke:#d4bfd9;fill:#957596;animation:encounter-heart 2.2s ease-in-out infinite}.encounter-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin:20px 0}@keyframes gift-delight{0%{opacity:.2;transform:scale(.75) rotate(-7deg)}40%{opacity:1;transform:scale(1.1) rotate(3deg)}to{transform:scale(1)}}@keyframes dance-left{0%,to{transform:rotate(-4deg) translateY(0)}50%{transform:rotate(4deg) translateY(-5px)}}@keyframes dance-right{0%,to{transform:scaleX(-1) rotate(4deg) translateY(-5px)}50%{transform:scaleX(-1) rotate(-4deg) translateY(0)}}@keyframes encounter-heart{0%{opacity:0;translate:0 0}25%{opacity:.85}to{opacity:0;translate:0 -150px}}@media(max-width:740px){.furniture-inventory{grid-template-columns:repeat(3,minmax(0,1fr))}.furniture-inventory .furniture-art{height:100px}.furniture-inventory strong{font-size:17px}.gift-catalog,.received-gifts{grid-template-columns:repeat(2,minmax(0,1fr))}.castle-room{min-height:270px;aspect-ratio:1.3}.encounter-character{width:135px;left:calc(50% - 67px)}.encounter-character>svg{height:240px}.encounter-character.left{transform:translate(-80px)}.encounter-character.right{transform:translate(80px)}.shared-encounter{height:325px}}@media(prefers-reduced-motion:reduce){.gift-opening .gift-image,.action-dance .character-leg,.action-dance .left>svg,.action-dance .right>svg,.encounter-hearts svg{animation:none}.encounter-character{transition:none}.encounter-hearts svg{opacity:.65}}.castle-sections{display:flex;flex-wrap:wrap;gap:10px;margin:25px 0}.castle-sections button{background:#24304a;border:1px solid #73809e;color:#d2c7df;min-height:44px;border-radius:6px;padding:12px;font-size:11px}.tattoo-workspace{padding:20px;border:1px solid #8c82a0;border-radius:10px;background:#252a40;margin:22px 0}.tattoo-workspace h3{font-family:var(--serif);font-size:29px}.tattoo-placement-view{max-width:390px;margin:auto}.tattoo-toolbar{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}.tattoo-layer-list{display:flex;flex-wrap:wrap;gap:8px}.tattoo-layer-list button{padding:11px;background:#29364f;color:#ccb9d4;border:1px solid #8b7c9c;border-radius:5px}.tattoo-layer-list button[aria-pressed=true]{background:#9e89b3;color:#171d32}.tattoo-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin-top:18px}.tattoo-controls label{font-size:11px}.tattoo-controls input[type=color]{height:43px}.renaissance-portrait{display:block;width:100%;height:auto}.room-object>.renaissance-portrait{filter:drop-shadow(0 4px 3px #0a10285c)}.castle-room{isolation:isolate}.room-save{z-index:2}.hero h1,.score-heading>div:first-child,.score-recipient,.session-identity{min-width:0}.hero h1,.score-heading h2,.score-recipient strong,.session-identity span,.eyebrow,.game-introduction p{overflow-wrap:anywhere}.score-heading{flex-wrap:wrap}.score-heading>div:first-child{flex:1}.score-recipient strong{display:block}
