/* Original reference pixels; fixed-aspect primary buttons, scalable nine-slice controls. */
:root{--ui-ink:#e0e3e9;--ui-muted:#9ba9ba;--ui-focus:#d3dbe9;--ui-panel:url('/assets/ui/panel.png');--ui-slot:url('/assets/ui/slot.png');--ui-small:url('/assets/ui/button-small.png');--ui-primary:url('/assets/ui/button-primary.png');--ui-status:url('/assets/ui/status-frame.png')}
.orn,.hall-controls button,.entry-music{border:solid transparent;border-width:13px 27px;border-image:var(--ui-small) 55 100 55 100 fill / 16px 29px / 0 stretch;background:none;box-shadow:none;border-radius:0;color:var(--ui-ink);font-family:'Cormorant Garamond',Georgia,serif;font-size:16px;line-height:1.05;letter-spacing:.035em;min-height:45px;padding:1px 4px;transition:filter .18s,transform .18s;touch-action:manipulation}
.orn:hover,.entry-enter:hover{filter:brightness(1.18)}.orn:active,.entry-enter:active{filter:brightness(.84);transform:translateY(1px)}.orn:focus-visible,.entry-enter:focus-visible{outline:1px solid #d5dce7;outline-offset:3px}.orn:disabled,.entry-enter:disabled{opacity:.42;filter:grayscale(.7);cursor:default}.orn.selected,.orn[aria-pressed=true]{filter:brightness(1.22);color:white}
.orn.primary,.entry-enter{border:0!important;box-shadow:none!important;background:var(--ui-primary) center/100% 100% no-repeat!important;aspect-ratio:1518/475;min-height:84px;position:relative;width:100%;height:auto;display:grid;place-content:center;padding:25px 45px!important;color:#e1e3e9;font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(15px,3.8vw,19px);line-height:1.1;text-align:center;letter-spacing:.03em}
.entry-enter{width:min(84%,390px);margin:auto;min-height:0}.entry-enter .entry-button-frame{display:none}.entry-enter>span{position:relative;margin-top:2px}.entry-music{width:44px!important;height:44px!important;min-width:44px;padding:7px!important;border-width:8px!important;border-image:var(--ui-slot) 55 fill / 9px / 0 stretch;display:grid;place-items:center}.entry-music svg{width:20px;height:20px}.entry-language{gap:9px}
.panel,.file,.account-letter,.academy-settings{border:solid transparent!important;border-width:25px!important;border-image:var(--ui-panel) 105 fill / 27px / 0 stretch!important;background:none!important;box-shadow:none!important;color:#d7dde7;padding:10px 9px!important;border-radius:0!important}.file label,.filehead{color:#c7d1e0!important}.file input,.file select{background:#0d121b!important;color:#dce3ee!important;border:1px solid #647184!important}.account-letter .tip{color:#adb8c8}.account-letter h2{font-family:'Cormorant Garamond',Georgia,serif!important;font-size:25px}.letter-heading,.letter-wax{color:#c6ceda}.letter-kicker{color:#a9b6c8}.house,.skill,.rpg-slot,.rpg-category{border:solid transparent;border-width:12px;border-image:var(--ui-slot) 55 fill / 13px / 0 stretch;background:none;box-shadow:none;border-radius:0}.house.selected,.rpg-slot.selected{outline:1px solid #d4c7ec;outline-offset:-9px;filter:brightness(1.16)}.house .sigil{filter:grayscale(1);opacity:.8}.skill i{filter:grayscale(1)}
.hall-controls button{font-size:20px;border-width:8px;min-width:44px;min-height:44px}.hall-controls button:nth-child(n+3){display:none}.hall-status{display:grid;gap:5px;width:min(65vw,340px)}.status-frame{height:30px;position:relative;border:solid transparent;border-width:7px 24px;border-image:var(--ui-status) 38 105 38 105 / 9px 27px / 0 stretch;background:#03050b;isolation:isolate}.status-fill{position:absolute;inset:2px 1px;transform-origin:left center;background:linear-gradient(#ab3149,#4d0f20);z-index:-1;transition:width .18s;width:100%}.status-fill.mana{background:linear-gradient(#3a70b2,#0e244d)}.status-frame strong{position:absolute;inset:0;display:grid;place-items:center;color:#eef0f5;font:12px/1 Georgia,serif;text-shadow:0 1px 2px #000}.hud{align-items:start}.hud>.chip{margin-top:8px}#gameScreen .skill{border-color:transparent;background:none}.academy-settings{padding:13px!important}.academy-settings fieldset{border-color:#3b4656}.academy-settings h2{font-family:'Cormorant Garamond',Georgia,serif}
.rpg-dialog{color:#dce3ed;width:min(1060px,96vw);max-width:none;max-height:94dvh;overflow:auto;overscroll-behavior:contain;border:solid transparent;border-width:26px;border-image:var(--ui-panel) 105 fill / 28px / 0 stretch;background:#080c13;padding:8px 8px 16px;box-shadow:0 20px 80px #000c;font-family:'Cormorant Garamond',Georgia,serif}.rpg-dialog::backdrop{background:#03060bd9;backdrop-filter:blur(3px)}.rpg-dialog[open]{animation:ui-panel-open .22s ease-out}.rpg-dialog header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.rpg-dialog h2{font-weight:500;letter-spacing:.1em;font-size:24px;margin:0}.rpg-dialog h3{font-size:18px;font-weight:500;margin:8px 0}.rpg-dialog .orn{min-width:95px}.rpg-dialog button.close{min-width:48px;width:48px;padding:0}.rpg-layout{display:grid;grid-template-columns:minmax(260px,.9fr) minmax(300px,1.25fr);gap:18px}.rpg-preview{height:360px;position:relative;overflow:hidden;touch-action:none;border:solid transparent;border-width:18px;border-image:var(--ui-panel) 105 fill / 18px / 0 stretch;background:radial-gradient(ellipse,#202b3b,#080b12 75%)}.rpg-preview canvas{width:100%;height:100%;display:block}.preview-message{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:20px;color:#adb9ca;font-size:15px;pointer-events:none}.preview-controls{display:flex;gap:4px;justify-content:center;flex-wrap:wrap;margin-top:5px}.preview-controls .orn{min-width:65px;font-size:13px}.rpg-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;max-height:360px;overflow:auto;padding:4px}.rpg-slot{position:relative;width:100%;aspect-ratio:1;min-height:54px;color:#c6d0e0;padding:7px;cursor:pointer;display:grid;place-items:center}.rpg-slot img{width:100%;height:100%;max-height:88px;object-fit:contain;pointer-events:none}.rpg-slot .stack-count{position:absolute;right:8px;bottom:6px;font:13px Georgia;color:#f0f0f3;text-shadow:0 1px 2px #000}.rpg-slot .slot-label{font:10px Georgia;line-height:1.15;text-align:center;overflow-wrap:anywhere}.rpg-slot.locked{opacity:.35}.rpg-slot[data-rarity=epic]{filter:drop-shadow(0 0 3px #7f4c9e)}.rpg-details{margin-top:8px;padding:12px;border-top:1px solid #4c5666;min-height:100px}.rpg-details p{font-size:15px;margin:5px 0;color:#aab8ca}.rpg-actions{display:flex;gap:7px;flex-wrap:wrap}.rpg-tabs{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:8px}.rpg-tabs button{font-size:13px;min-width:64px!important}.rpg-stats{display:grid;grid-template-columns:1fr auto;gap:5px 12px;font:13px Georgia,serif;color:#b6c2d2;margin:12px 0}.rpg-stats dd{margin:0;color:#e4e9f1}.rpg-coins{display:flex;gap:22px;align-items:center;justify-content:center;flex-wrap:wrap;border-top:1px solid #435068;padding-top:12px;margin-top:15px}.rpg-coins span{display:inline-flex;align-items:center;gap:7px;font:16px Georgia}.rpg-coins img{width:34px;height:34px;object-fit:contain}.equipment-slots{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;margin-top:8px}.equipment-slots .rpg-slot{min-height:52px}.rpg-note{color:#9cacc1;font-size:13px;line-height:1.4}.rpg-weapon-large{height:160px;display:grid;place-items:center;background:radial-gradient(ellipse,#35304940,transparent 65%)}.rpg-weapon-large img{max-height:155px;max-width:100%;object-fit:contain;animation:weapon-float 5s ease-in-out infinite}.weapon-choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.weapon-choice-grid .rpg-slot{aspect-ratio:.9}.character-create-layout{display:grid;grid-template-columns:minmax(230px,.9fr) minmax(260px,1fr);gap:15px}#create .file{transform:none}#create .rpg-preview{height:390px}#create .house{min-height:80px}#create .housegrid{grid-template-columns:repeat(3,1fr)}.variant-choice{display:flex;gap:6px}.variant-choice button{flex:1}.creation-form-controls{margin-bottom:8px}.rpg-bag{position:absolute;top:calc(116px + env(safe-area-inset-top));left:12px;z-index:7;font-size:14px!important;min-height:44px}.rpg-attack-label{font-size:10px!important;max-width:100%;text-align:center}.rpg-health-portrait{width:45px;height:55px;object-fit:cover;border:solid transparent;border-width:7px;border-image:var(--ui-slot) 55 fill / 8px / 0 stretch}.rpg-toast{min-height:23px;color:#c5d3e7;font:14px Georgia;padding:8px 0}
@keyframes ui-panel-open{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes weapon-float{50%{transform:translateY(-4px)}}
@media(max-width:680px){.rpg-layout,.character-create-layout{grid-template-columns:1fr}.rpg-dialog{padding:5px;max-height:94dvh;border-width:20px}.rpg-preview{height:280px}#create .rpg-preview{height:310px}.rpg-grid{grid-template-columns:repeat(5,minmax(0,1fr));max-height:280px}.equipment-slots{grid-template-columns:repeat(5,1fr)}.rpg-layout{gap:10px}.rpg-dialog h2{font-size:20px}.rpg-coins{gap:14px}.rpg-dialog .orn{font-size:15px;min-width:80px}.rpg-details{padding:9px 1px}.status-frame{height:27px}.hall-location{top:calc(87px + env(safe-area-inset-top))}.hall-controls{top:calc(126px + env(safe-area-inset-top))}.entry-language label{display:none}.rpg-bag{top:calc(126px + env(safe-area-inset-top))}}
@media(prefers-reduced-motion:reduce){.rpg-dialog,.rpg-weapon-large img{animation:none}.orn,.status-fill{transition:none}}
.entry-enter:before{content:none!important}.entry-enter>span{font-size:clamp(14px,3.7vw,19px)!important}#gameScreen .orn{background:none!important;border-color:transparent!important}.rpg-dialog button{touch-action:manipulation}

body:has(#create.active) #shell{max-width:1080px}.character-create-layout>div{min-width:0}.rpg-dialog [data-item=book],.rpg-dialog [data-item=wand],.rpg-dialog [data-item=scythe]{--weapon-glow:#7859a580}.rpg-slot.selected[data-item]{box-shadow:inset 0 0 16px var(--weapon-glow,#b9c7d322)}.academy-settings[open]{animation:ui-panel-open .2s ease-out}
.weapon-actions{position:absolute;right:10px;bottom:calc(154px + env(safe-area-inset-bottom));display:grid;grid-template-columns:1fr 1fr;gap:7px;z-index:8;width:min(54vw,240px)}.weapon-actions .skill{min-height:68px;position:relative}.weapon-actions img{height:30px;object-fit:contain}.weapon-actions strong{position:absolute;inset:0;display:grid;place-items:center;background:#050711d9;color:#dce3ef}#gameScreen .actionline{bottom:calc(229px + env(safe-area-inset-bottom))}#gameScreen .toast{bottom:calc(281px + env(safe-area-inset-bottom))}
@media(max-height:540px){.weapon-actions{bottom:115px}.weapon-actions .skill{min-height:47px}.weapon-actions img{height:21px}#gameScreen .actionline{bottom:169px}.weapon-actions .rpg-attack-label{font-size:9px}}
.weapon-actions [hidden]{display:none!important}.weapon-actions .skill{border-color:transparent!important;background:none!important}.rpg-dialog header .orn.close{border-image-width:12px 17px;min-width:44px}.rpg-preview canvas{animation:ui-panel-open .25s ease-out}

/* Inventory access: a visible, touch-sized Gothic button above the mobile controls. */
#gameScreen #inventoryBtn.rpg-bag{top:calc(116px + env(safe-area-inset-top));left:12px;z-index:12;min-height:44px;min-width:104px;padding:8px 12px!important;background:linear-gradient(160deg,#26354b,#0a1220)!important;border:1px solid #a8b7cd!important;border-radius:3px;color:#e7edf6;box-shadow:inset 0 0 0 2px #0b1523,0 4px 16px #000a;font:500 13px 'Cinzel',Georgia,serif!important;letter-spacing:.04em}
#gameScreen #inventoryBtn.rpg-bag:focus-visible{outline:2px solid #dce8f8;outline-offset:3px}
@media(max-width:680px){#gameScreen #inventoryBtn.rpg-bag{top:calc(126px + env(safe-area-inset-top));min-width:92px;padding:8px!important;font-size:12px!important}}


/* Gothic bookmark navigation for the inventory's abilities compendium. */
#inventoryDialog{position:relative}
#inventoryDialog [hidden]{display:none!important}
#inventoryDialog .inventory-bookmarks{position:sticky;top:0;z-index:3;display:flex;justify-content:flex-end;gap:8px;margin:-4px 6px 12px}
#inventoryDialog .inventory-bookmarks button{width:52px;min-width:52px;min-height:50px;padding:6px;border:1px solid #8094b0;border-radius:2px 2px 10px 10px;background:linear-gradient(160deg,#25364f,#080e1b);color:#c9d8f0;font:26px Georgia,serif;box-shadow:0 3px 12px #0008}
#inventoryDialog .inventory-bookmarks button[aria-pressed=true]{color:#f2f6ff;border-color:#d2e2ff;background:linear-gradient(160deg,#405c80,#14223a);box-shadow:0 0 12px #8bbaff66}
#inventoryDialog .inventory-bookmarks button:focus-visible{outline:2px solid #d2e2ff;outline-offset:3px}
#inventoryDialog .inventory-skills-page{padding:8px clamp(12px,4vw,40px) 24px;max-width:820px;margin:0 auto;min-height:280px}
#inventoryDialog .inventory-skills-page>h3{font:500 clamp(23px,4vw,32px) Cinzel,Georgia,serif;letter-spacing:.06em;color:#e2ebff;text-align:center}
#inventoryDialog .inventory-skills-intro{text-align:center;color:#aabbd3;margin:0 0 22px}
#inventoryDialog .inventory-skill-card{display:flex;gap:18px;align-items:flex-start;padding:20px;margin:0 0 16px;border:1px solid #7186a777;background:linear-gradient(145deg,#1b2c45e8,#080f1ff0);box-shadow:inset 0 0 25px #7599d313}
#inventoryDialog .inventory-skill-symbol{flex:none;width:64px;height:64px;display:grid;place-items:center;border:1px solid #8ba9d0;background:radial-gradient(circle,#37527e,#10182b 72%);color:#d5e9ff;text-shadow:0 0 13px #88baff;font:36px Georgia,serif}
#inventoryDialog .inventory-skill-card h4{margin:0 0 4px;color:#edf3ff;font:500 22px Cinzel,Georgia,serif}
#inventoryDialog .inventory-skill-card p{margin:8px 0;line-height:1.45;font-size:17px}
#inventoryDialog .inventory-skill-type,#inventoryDialog .inventory-skill-stats{color:#a9c0e1}
@media(max-width:600px){#inventoryDialog .inventory-skill-card{gap:12px;padding:13px}#inventoryDialog .inventory-skill-symbol{width:48px;height:48px;font-size:27px}#inventoryDialog .inventory-skill-card h4{font-size:17px}#inventoryDialog .inventory-skill-card p{font-size:15px}}
