@font-face { font-family:'Cinzel'; font-style:normal; font-weight:600; font-display:swap; src:url('/fonts/cinzel-600.ttf') format('truetype'); }
/* Duotine UI polish — additive, no framework or service changes. */
:root { --polish-ease: cubic-bezier(.22,1,.36,1); }
html, body, #__nuxt { min-height:100%; user-select:auto; }
body { overflow:auto; }
.scene { min-height:100svh; padding:48px 24px; overflow:hidden; }
.scene::after { z-index:1; background:radial-gradient(ellipse at center,transparent 35%,rgba(5,2,4,.55) 100%); }
.backdrop { filter:brightness(.72) saturate(.75); }
.card { width:min(100%,57.5rem); padding:48px 40px 32px; animation:polish-arrive .8s var(--polish-ease) both; }
.avatar-shell { width:192px; margin-bottom:36px; }
.avatar { filter:saturate(.9) contrast(1.02); }
.avatar-shell::before { box-shadow:0 0 0 5px #181016,0 0 0 6px rgba(209,177,142,.2),0 0 40px rgba(164,75,106,.15); }
.avatar-orbit { inset:-18px; animation:orbit 11s linear infinite; }
.identity-row h1 { font-family:'Cinzel',Georgia,serif; font-size:76px; font-weight:600; line-height:1.1; letter-spacing:.01em; text-shadow:0 2px 24px rgba(231,168,151,.12); }
.age { color:#cfc0bd; font:400 16px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace; letter-spacing:0; margin:16px 0 32px; }
.age span { min-width:0; letter-spacing:0; }
.contacts { width:min(100%,51.25rem); gap:12px; }
.contact-link { min-height:76px; padding:20px 20px; gap:12px; border-radius:14px; font:500 18px/1.5 Manrope,system-ui,sans-serif; letter-spacing:0; background:rgba(94,44,59,.2); border-color:rgba(219,154,163,.34); color:#f5e8e2; box-shadow:inset 0 1px rgba(255,255,255,.025); transition:transform .22s var(--polish-ease),background .22s,border-color .22s; }
.contact-link svg { width:22px; height:22px; color:#dfbcb6; filter:none; }
.contact-link:hover { transform:translateY(-3px); background:rgba(135,65,80,.28); border-color:#c08a94; box-shadow:none; }
.donate-link { min-width:192px; min-height:56px; margin-top:20px; border-radius:14px; background:transparent; border-color:rgba(219,154,163,.24); box-shadow:none; color:#d9bbb6; font:500 16px/1.5 Manrope,system-ui,sans-serif; letter-spacing:0; }
.donate-link:hover { box-shadow:none; transform:translateY(-2px); }
.donate-dialog { padding:28px; border-radius:20px; max-height:calc(100svh - 32px); overflow-y:auto; }
.donate-heading { padding-right:44px; }
.donate-heading h2 { font-family:'Cormorant Garamond',Georgia,serif; font-weight:600; font-size:28px; line-height:1.1; }
.donate-heading p { color:#c6aaa6; font-size:14px; line-height:1.5; }
.donate-close { width:44px; height:44px; top:16px; right:16px; }
.donate-method { min-height:80px; border-radius:12px; }
.donate-method-copy strong { font:600 16px/1.5 Manrope,system-ui,sans-serif; letter-spacing:0; }
.donate-method-copy small { font-size:14px; line-height:1.4; color:#c6aaa6; }
a:focus-visible,button:focus-visible { outline:2px solid #f0caba; outline-offset:4px; }
.scene[data-dimension=other] h1 { text-shadow:0 0 30px rgba(199,58,64,.3); }
@keyframes polish-arrive { from { opacity:0; transform:translateY(16px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:640px) {
 .scene { padding:32px 20px; padding-top:max(32px,env(safe-area-inset-top)); padding-bottom:max(32px,env(safe-area-inset-bottom)); }
 .card { width:100%; padding:48px 0 24px; }
 .avatar-shell { width:160px; margin-bottom:32px; }
 .identity-row { gap:12px; }
 .identity-row h1 { font-size:48px; }
 .age { font-size:14px; margin:16px 0 24px; }
 .age span { min-width:0; }
 .contacts { grid-template-columns:1fr; gap:8px; }
 .contact-link { justify-content:flex-start; gap:14px; min-height:68px; padding:18px 20px; font-size:18px; }
 .contact-link::after { content:'↗'; margin-left:auto; color:#caa9a7; font:400 20px/1 system-ui,sans-serif; }
 .donate-link { margin-top:16px; }
 .donate-dialog { padding:24px 20px; }
 .donate-heading h2 { font-size:26px; }
 .donate-heading { gap:12px; }
 .donate-heading-mark { width:40px; height:40px; }
 .donate-method { gap:12px; padding:12px; }
}
@media(max-width:350px) { .scene { padding-inline:16px; } .card { padding-inline:0; } .identity-row h1 { font-size:40px; } .contact-link { flex-direction:row; font-size:18px; } }
@media(max-height:600px) and (min-width:641px) { .scene { padding-block:24px; } .card { padding-top:40px; padding-bottom:24px; } .avatar-shell { width:144px; margin-bottom:28px; } .identity-row h1 { font-size:48px; } .age { margin-block:12px 20px; } }
@media(hover:none) { .contact-link:hover,.donate-link:hover { transform:none; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } .avatar-orbit { animation:orbit 14s linear infinite!important; } }

.sound-toggle { z-index:3; position:absolute; right:16px; top:12px; display:grid; place-items:center; width:44px; height:44px; padding:0; color:#d9bbb6; background:transparent; border:1px solid transparent; border-radius:12px; cursor:pointer; transition:background .2s,border-color .2s; }
.sound-toggle:hover { background:rgba(229,187,173,.08); border-color:rgba(229,187,173,.24); }
.sound-toggle svg { width:20px; height:20px; }
.sound-toggle .sound-off,.sound-toggle[aria-pressed="true"] .sound-wave { display:none; }
.sound-toggle[aria-pressed="true"] .sound-off { display:block; }

/* Optical alignment: slightly below the line-box center, above the old offset. */
.identity-row .dimension-toggle,.identity-row .dimension-toggle:hover,.identity-row .dimension-toggle:active { transform:translateY(8px); }
