/* Grimwood V20.4 · Interface pass: tactile Android controls + coherent desktop buttons */
:root{--ui-gold:#c9a55f;--ui-paper:#eee2ca;--ui-ink:#090909;--ui-red:#8d2a31;--ui-cyan:#7faea9;--tap:54px}
*{-webkit-tap-highlight-color:transparent}
html,body{overscroll-behavior:none}
button,a,select,input{touch-action:manipulation}
button,.title-discord,.discord-join{-webkit-user-select:none;user-select:none}
button{min-height:42px;border-radius:4px;letter-spacing:.035em}
button:not(:disabled){cursor:pointer}
button:active:not(:disabled){transform:translateY(1px) scale(.985)!important;filter:brightness(1.18)}
.primary,.secondary,.demo-enter,.device-card,.profile-card,.save-slot,.choice,.menu-grid button,#panel-footer button{position:relative;overflow:hidden}
.primary:after,.secondary:after,.demo-enter:after,.device-card:after,.profile-card:after,.save-slot:after,.choice:after,.menu-grid button:after,#panel-footer button:after{content:'';position:absolute;inset:auto 12% 0;height:1px;background:linear-gradient(90deg,transparent,#d5b66f88,transparent);opacity:.55}
.primary:hover,.primary:focus-visible,.demo-enter:hover,.demo-enter:focus-visible{box-shadow:0 10px 35px #0007,inset 0 0 0 1px #e4c77d55,0 0 24px #a8793c18!important}
.icon-button{min-width:44px;min-height:44px;display:grid;place-items:center}
#close-panel{font-size:24px!important;line-height:1;width:46px;height:46px}
#toast{max-width:min(560px,82vw);border:1px solid #b4945b55;box-shadow:0 14px 44px #000b;background:linear-gradient(105deg,#120f0deb,#070706f2)!important}
#room-banner{border-top:1px solid #b7955855;border-bottom:1px solid #b7955833;background:linear-gradient(90deg,transparent,#0d0b09e8 20%,#0d0b09e8 80%,transparent)!important}
#boss-hud{overflow:hidden}
#boss-hud:after{content:'';position:absolute;inset:0;background:linear-gradient(110deg,transparent 0 40%,#fff1 49%,transparent 58%);transform:translateX(-120%);animation:bossSheen 5.2s ease-in-out infinite;pointer-events:none}
@keyframes bossSheen{0%,70%{transform:translateX(-120%)}88%,100%{transform:translateX(120%)}}

/* Touch controls: readable under the thumbs, clear hierarchy, no accidental text selection. */
#touch-controls{touch-action:none;-webkit-user-select:none;user-select:none}
#touch-controls [data-action]{display:grid!important;grid-template-rows:1fr auto;align-content:center;justify-items:center;gap:1px;border:1px solid #d5bd8957!important;background:radial-gradient(circle at 42% 30%,#4b4336d9,#171512e8 58%,#070706ef)!important;color:#f4e2bd!important;text-shadow:0 2px 5px #000;box-shadow:0 7px 23px #000b,inset 0 0 0 1px #fff1,inset 0 -8px 18px #0007!important}
#touch-controls [data-action] .touch-glyph{font:700 clamp(20px,5.4vw,32px)/1 Georgia,serif;align-self:end}
#touch-controls [data-action] .touch-label{font:800 clamp(6px,1.8vw,9px)/1.1 Arial,sans-serif;letter-spacing:.09em;color:#bfb49f;align-self:start}
#touch-controls [data-action=attack]{border-color:#d8b46d88!important;background:radial-gradient(circle at 42% 30%,#704d2fdc,#251914ed 58%,#090706f4)!important;box-shadow:0 10px 30px #000c,0 0 0 1px #c8954530,inset 0 0 24px #bd7a321c!important}
#touch-controls [data-action=attack] .touch-glyph{font-size:clamp(30px,8vw,46px)}
#touch-controls [data-action=block]{border-color:#7ba4a06b!important}
#touch-controls [data-action=cast]{border-color:#9277ad70!important}
#touch-controls [data-action]:active{filter:brightness(1.35);box-shadow:0 3px 11px #000b,inset 0 0 0 2px #f2d99b75!important}
#joystick{border:1px solid #c9a86d42!important;box-shadow:0 8px 30px #000b,inset 0 0 28px #000b!important}
#joystick:after{content:'MOVER';position:absolute;left:50%;top:105%;transform:translateX(-50%);font:800 7px Arial,sans-serif;letter-spacing:.18em;color:#a89a82;white-space:nowrap}

.rotate-hint{display:none;position:fixed;z-index:80;left:50%;top:max(12px,env(safe-area-inset-top));transform:translateX(-50%);padding:8px 12px;border:1px solid #8d784f66;background:#080807e8;color:#d7c5a0;font:800 9px Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase;pointer-events:none;box-shadow:0 8px 25px #0008}
.profile-mobile.portrait-mobile .rotate-hint{display:block}
#title-screen:not([hidden])~#hud[hidden]~#touch-controls[hidden]~.rotate-hint{display:none}

@media(pointer:coarse),(max-width:820px){
 :root{--tap:54px}
 button,.text-button,.title-discord,.discord-join,select{min-height:var(--tap)}
 .title-content .primary,.title-content .secondary{min-height:58px!important;padding:14px 18px!important}
 .title-links{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px!important;width:min(96vw,540px)}
 .title-links .text-button,.title-links .title-discord{display:flex;align-items:center;justify-content:center;text-align:center;padding:9px 8px!important;border:1px solid #6f604633!important;background:#090908a8!important;border-radius:5px!important;font-size:12px!important}
 .mobile-layout .top-actions{display:flex!important;align-items:center;gap:6px}.mobile-layout .top-actions .icon-button{width:46px;height:46px;border-radius:12px!important;background:#0b0b0be6!important;box-shadow:0 7px 22px #0008!important}
 .mobile-layout .top-actions .currency{min-height:43px;display:flex;align-items:center;padding:6px 9px!important;border-radius:12px!important;background:#090909d9!important}
 .mobile-layout .player-vitals{border-radius:12px!important;padding:7px 9px!important;background:#090909d8!important;border:1px solid #6d5e463f!important;box-shadow:0 8px 24px #0008!important}
 .mobile-layout .room-heading{pointer-events:none}.mobile-layout .room-heading h2{font-size:clamp(14px,3.9vw,19px)!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-layout .room-heading p{font-size:8px!important}
 .mobile-layout #boss-hud{top:max(68px,calc(env(safe-area-inset-top) + 62px))!important;width:min(86vw,620px)!important;border-radius:9px!important}
 .mobile-layout #objective{border-radius:10px!important;padding:8px 10px!important;background:#080808d0!important;border:1px solid #77644232!important}
 .mobile-layout #abilities{display:none!important}
 .touch-mode #toast{bottom:max(154px,calc(env(safe-area-inset-bottom) + 146px))!important;font-size:12px!important}
 .touch-mode #room-banner{top:22%!important;width:86vw!important;left:7vw!important}
 .touch-mode #interact-prompt{min-height:46px;padding:9px 12px!important;border-radius:12px!important;background:#090909e6!important;border:1px solid #9d85574d!important}
 .touch-mode #reward-action{bottom:max(160px,calc(env(safe-area-inset-bottom) + 154px))!important;border-radius:14px!important;box-shadow:0 8px 28px #000a!important}
 .mobile-layout #panel{border:1px solid #7c67453d!important;border-bottom:0!important;box-shadow:0 -18px 70px #000d!important}
 .mobile-layout #panel:before{content:'';display:block;position:sticky;top:6px;z-index:20;width:42px;height:4px;border-radius:4px;background:#a9936d55;margin:0 auto 8px}
 .mobile-layout #panel-footer button{min-height:52px!important;border-radius:8px!important;font-size:14px!important}
 .mobile-layout .menu-grid button{min-height:54px!important;border-radius:0!important;padding:13px 11px!important}
 .mobile-layout .choice,.mobile-layout .profile-card,.mobile-layout .save-slot{min-height:64px!important;border-radius:9px!important}
 .android-device #panel::backdrop,.android-device .player-vitals,.android-device .top-actions .currency,.android-device #objective,.android-device #touch-controls [data-action]{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
 .android-device #touch-controls [data-action]{box-shadow:0 6px 18px #000a,inset 0 0 0 1px #fff1!important}
}
@media(max-height:520px) and (orientation:landscape) and (pointer:coarse){
 #touch-controls [data-action] .touch-label{display:none}.mobile-layout .room-heading{top:max(4px,env(safe-area-inset-top))!important}.mobile-layout .player-vitals{max-width:34vw!important}.mobile-layout #boss-hud{top:max(55px,calc(env(safe-area-inset-top) + 48px))!important;height:58px!important}.touch-mode #toast{bottom:max(82px,calc(env(safe-area-inset-bottom) + 76px))!important}.touch-mode #reward-action{bottom:max(88px,calc(env(safe-area-inset-bottom) + 82px))!important}
}
@media(prefers-reduced-motion:reduce){#boss-hud:after{animation:none}.rotate-hint{transition:none}}
