/* v25 visual system: art-backed surfaces, polished tactile buttons */
:root{--ink:#23355d;--gold:#ffcd45}body{background:linear-gradient(180deg,#78d9fa 0%,#d8f7ff 55%,#7fd6a1 100%);background-attachment:fixed}body:before{content:"";position:fixed;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.50),rgba(255,255,255,.15)),url('assets/adventure-art.webp') center center/cover no-repeat;opacity:.55;z-index:-2;pointer-events:none}.world{opacity:.22}.glass,.panel,.card{backdrop-filter:blur(12px);background:rgba(255,255,255,.95)!important;border:3px solid rgba(255,255,255,.98)!important;box-shadow:0 12px 32px #233d7c29,0 5px 0 #a2b5d2!important}.tile,.choice,.btn,.pill{transition:transform .16s ease,filter .16s ease;box-shadow:0 6px 0 #7896bd55,0 10px 20px #263f7020!important}.tile:hover,.choice:hover:not(:disabled),.btn:hover{filter:brightness(1.035);transform:translateY(-3px)}.tile:focus-visible,.choice:focus-visible,.btn:focus-visible{outline:4px solid #ffb72c;outline-offset:3px}.heroArt{background:linear-gradient(180deg,#c4eaff33,#71cda444),url('assets/castle-land.webp') center/cover no-repeat!important}.heroArt .castle{opacity:.2}.brand h1,h1{letter-spacing:-.035em}.audio-tools{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:12px 0;padding:12px 15px;border-radius:20px;background:#ffffffdf;border:2px solid #d4e8fa}.audio-tools button{border:0;background:#ffe180;border-radius:14px;padding:11px 16px;font-weight:900;color:#253159;cursor:pointer}.audio-tools .audio-status{font-size:14px;font-weight:750;line-height:1.5}.audio-tools button:focus-visible{outline:4px solid #fd9e29}.tile{overflow:hidden}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* v28 royal UI refinement */
:root{--royal:#4936a6;--ink:#23345b;--gold:#ffd457;--mint:#69e7ba}
body{font-family:system-ui,'Arial',sans-serif!important}
button,a{touch-action:manipulation}
button:focus-visible,a:focus-visible,input:focus-visible{outline:4px solid #ffbd29!important;outline-offset:3px}
.panel,.card,.glass{border-radius:26px!important;box-shadow:0 18px 42px #1b397a32,0 5px 0 #7c8ebc50!important}
.btn,.choice,.tile{border-radius:19px!important;min-height:54px;transition:transform .17s,filter .17s!important}
.btn:active,.choice:active,.tile:active{transform:scale(.97)!important}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}
