/* Shared finishing layer: crisp UI at any density, quiet decorative movement. */
:root{--hunt-ink:#163d30;--hunt-paper:#fff6dc;--hunt-emerald:#007b54;--hunt-purple:#7436bc;--hunt-brass:#d5a647}
body{font-family:'Nunito','DM Sans',sans-serif}.enchanted :is(.btn,.studio-small-button,.studio-camera-library){min-height:48px;line-height:1.25;border-radius:14px;border:1px solid #e2bd65;border-bottom:3px solid #075439;background:linear-gradient(160deg,#129d68,#00714d);color:#fffbea;box-shadow:inset 0 2px 0 #b4f2c780,0 4px 0 #004831,0 7px 12px #143d2925;text-shadow:0 1px 1px #004231;transition:translate .14s,box-shadow .14s,filter .14s;font-family:'Nunito',sans-serif;font-weight:900}.enchanted :is(.btn,.studio-small-button,.studio-camera-library):hover:not(:disabled){filter:brightness(1.06)}.enchanted :is(.btn,.studio-small-button,.studio-camera-library):active:not(:disabled){translate:0 3px;box-shadow:inset 0 1px 2px #133b3540,0 1px 0 #004831}.enchanted :is(.btn.secondary,.studio-small-button,.studio-camera-library){background:linear-gradient(#fffdf0,#f7e7bd);color:#264532;border-color:#cdb273;border-bottom-color:#9e7d37;box-shadow:inset 0 2px 0 white,0 3px 0 #a17c37,0 5px 9px #513b1620;text-shadow:none}.enchanted .btn.free-play{background:linear-gradient(150deg,#9456de,#6823b5);border-color:#d7a9f7;border-bottom-color:#48157e;box-shadow:inset 0 2px #caa2ec,0 4px 0 #48157e,0 7px 12px #39185b25;color:#fff}.enchanted button:disabled{cursor:not-allowed;filter:saturate(.35);opacity:.72}.enchanted :is(button,a,input,select,textarea,summary):focus-visible{outline:3px solid #5f41ce;outline-offset:4px}.enchanted :is(input,select,textarea){accent-color:#087951}.enchanted :is(.text-button,summary){min-height:44px;display:inline-flex;align-items:center}.enchanted .text-button{padding-top:8px;padding-bottom:8px}.enchanted button{touch-action:manipulation}.enchanted :is(h1,h2,h3){text-wrap:balance}.enchanted :is(p,li,label){text-wrap:pretty}
dialog:not(.rulebook-opening):not(.rulebook-reading){width:min(540px,calc(100vw - 24px));max-height:calc(100dvh - 32px);padding:22px;border:2px solid #d0a550;border-radius:23px;background:linear-gradient(120deg,#ffedbd,#fff9e9 50%,#f4e5bd);color:#173b2d;box-shadow:0 0 0 3px #fff3c5,0 9px 0 #7c5a2c,0 30px 80px #001c2c70;overflow:auto;overscroll-behavior:contain}dialog[open]:not(.rulebook-opening):not(.rulebook-reading){animation:hunt-panel-enter .24s cubic-bezier(.18,.7,.28,1) both}dialog::backdrop{background:#052b38a8;backdrop-filter:blur(5px)}dialog .dialog-top{display:flex;align-items:flex-start;gap:12px;justify-content:space-between;border-bottom:1px solid #cbaa67;padding:0 0 16px;margin-bottom:18px}dialog .dialog-top h2{font:800 clamp(25px,6.2vw,33px)/1.13 'Fraunces',Georgia,serif;margin:0;color:#153b2a;overflow-wrap:anywhere}dialog .close{min-width:44px;min-height:44px;flex-shrink:0;display:grid;place-items:center;border:1px solid #bfa36b;border-radius:50%;background:#fff9e8;color:#274a35;font:700 28px/1 'Nunito';box-shadow:0 2px 0 #ba9855}dialog p{font-size:16px;line-height:1.5}dialog :is(input:not([type=checkbox]):not([type=radio]),select,textarea){font-size:16px;min-height:48px;border-radius:10px;border:1px solid #b5b6a4;background:#fffef7;padding:11px;color:#173e31}dialog .check{gap:12px;align-items:flex-start}dialog .check input{width:22px;height:22px;flex-shrink:0}dialog .btn.wide{margin-top:14px}.town-admin-menu{animation:hunt-panel-enter .2s ease both}.town-admin-menu button{min-height:54px}.town-admin-menu button:hover{background:#e6efcc}.app-manager-link a{display:inline-flex;min-height:44px;align-items:center}
#toast{max-width:calc(100vw - 32px);background:#fff7df;color:#164b35;border:2px solid #d7b05b;border-radius:15px;font-weight:800;box-shadow:0 6px 22px #12382855}
/* A small independent foreground sits at panel edges; never over the reading area. */
.living-leaves{position:absolute;width:95px;height:80px;top:-15px;right:-12px;pointer-events:none;z-index:0;background:url('/assets/world/town-front.webp') right top/400px 120px no-repeat;opacity:.9;transform-origin:100% 0;animation:hunt-leaves 8s ease-in-out infinite alternate}.living-surface{position:relative;isolation:isolate}.living-surface>:not(.living-leaves){position:relative;z-index:1}.living-surface[data-living-awake=no] .living-leaves,html[data-world-hidden=yes] .living-leaves{animation-play-state:paused}
@keyframes hunt-leaves{from{transform:rotate(-.7deg) translateY(0)}to{transform:rotate(.7deg) translateY(2px)}}@keyframes hunt-panel-enter{from{opacity:0;transform:translateY(9px) scale(.985)}to{opacity:1;transform:none}}
@media(max-width:480px){dialog:not(.rulebook-opening):not(.rulebook-reading){padding:18px 16px}dialog .dialog-top{gap:8px}.enchanted .btn{font-size:17px}.living-leaves{width:60px;opacity:.6}}
@media(prefers-reduced-motion:reduce){.living-leaves,dialog[open],.town-admin-menu{animation:none!important}.enchanted :is(.btn,.studio-small-button,.studio-camera-library){transition:none;translate:none!important}}html[data-world-motion=off] .living-leaves{animation:none}
.legal-world body{margin:0;background:linear-gradient(#063f49aa,#063f49c9),url('/assets/world/norwich-day.webp') center top/cover fixed;color:#1a3f30;padding:24px 12px}.legal-world .legal-page{max-width:760px;margin:0 auto;padding:clamp(22px,5vw,48px);border:2px solid #d8b25a;border-radius:22px;background:#fff9e8;box-shadow:0 7px 0 #977333,0 20px 50px #00293866;font:400 17px/1.65 'Nunito',sans-serif}.legal-page h1{font:800 clamp(32px,6vw,46px)/1.1 'Fraunces',serif;color:#163f2e;margin:25px 0}.legal-page h2{font:800 25px/1.2 'Fraunces',serif;margin-top:30px}.legal-page a{font-weight:800;color:#155a43;text-underline-offset:3px}.legal-page>a:first-child{min-height:44px;display:inline-flex;align-items:center}
