:root{--paper:#f4f0e6;--white:#fffdf7;--ink:#26291f;--muted:#797b6e;--line:#d7d6c8;--lime:#d7ee83;--pink:#ed5ba3;--blue:#9fcef0;--shadow:0 5px 0 rgba(38,41,31,.12);font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;min-width:340px}button,a,input{touch-action:manipulation}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.42}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #e7559b;outline-offset:4px}button{transition:background .16s,transform .16s,box-shadow .16s}button:not(:disabled):active{transform:translateY(2px)}a{color:inherit;text-decoration:none}img{object-fit:contain}h1,h2,h3,p{margin:0}button img{pointer-events:none}.site-header{height:105px;max-width:1700px;margin:auto;padding:20px 40px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:18px}.wordmark{display:flex;align-items:center;gap:11px;font-weight:950;font-size:19px;letter-spacing:-.7px;line-height:1.05}.brand-second{display:block;font-size:23px}.brand-dot{color:#86ab32}.brand-stamp{width:53px;height:56px;display:grid;place-items:center;border:2px solid var(--ink);border-radius:13px 13px 3px 3px;transform:rotate(-5deg);background:var(--white);box-shadow:3px 3px 0 var(--ink)}.brand-stamp img{width:38px;height:38px}.header-middle{font:700 10px ui-monospace,SFMono-Regular,monospace;letter-spacing:1.5px;display:flex;align-items:center;gap:13px}.little-star{font-size:25px;color:#70913c}.site-header nav{display:flex;align-items:center;gap:17px}.icon-button,.quiet-button{border:0;background:transparent;padding:8px;font-size:14px;font-weight:700}.icon-button{font-size:20px;position:relative}.sound-off{position:absolute;left:12px;top:5px;font-size:26px}.quiet-button span{margin-left:8px}.eyebrow{font:700 10px ui-monospace,SFMono-Regular,monospace;letter-spacing:1.7px;text-transform:uppercase;color:var(--muted)}.pill{display:inline-flex;align-items:center;gap:5px;padding:6px 9px;border-radius:5px;font:700 10px ui-monospace,SFMono-Regular,monospace;background:#e8e8dd;white-space:nowrap}.pill.green{background:#e9f3d0;color:#536627}.primary-button{border:2px solid var(--ink);background:var(--lime);padding:13px 20px;border-radius:9px;font-weight:800;box-shadow:0 4px 0 var(--ink);display:inline-flex;justify-content:center;align-items:center;gap:10px;min-height:49px}.primary-button:not(:disabled):hover{background:#e2f69f;transform:translateY(-1px);box-shadow:0 5px 0 var(--ink)}.secondary-button{border:1px solid #bfc0ad;border-radius:7px;background:var(--white);padding:10px 14px;font-weight:700;font-size:12px}.secondary-button:not(:disabled):hover{border-color:var(--ink);background:#edeedf}.text-button{border:0;background:transparent;padding:7px 3px;text-decoration:underline;text-underline-offset:4px;font-size:12px;color:var(--muted)}
/* Start screen */
.welcome{max-width:1420px;margin:auto;padding:58px 42px 30px}.welcome-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:35px;gap:25px}.welcome h1{font-size:clamp(42px,5vw,68px);font-weight:950;letter-spacing:-3.5px;line-height:.99;max-width:650px;margin:14px 0 18px}.welcome h1 em{font-style:normal;position:relative;display:inline-block;z-index:0}.welcome h1 em:after{content:"";position:absolute;left:-4px;right:-7px;bottom:2px;height:18px;background:var(--lime);z-index:-1;transform:rotate(-2deg)}.welcome-description{max-width:470px;font-size:15px;line-height:1.65;color:#6b6e60}.starter-note{font:12px ui-monospace,SFMono-Regular,monospace;border:1px dashed #a8ab94;transform:rotate(3deg);padding:19px;background:#faf8e8;line-height:1.8;margin-bottom:9px;white-space:nowrap}.welcome-grid{display:grid;grid-template-columns:1.45fr 1fr;gap:24px}.class-section{background:var(--white);border:1px solid var(--line);border-radius:14px;padding:27px}.section-label{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:21px}.section-label h2{font-size:17px;font-weight:850;letter-spacing:-.4px}.class-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.class-card{position:relative;text-align:left;background:#f8f7ef;border:1px solid var(--line);border-radius:10px;padding:19px;min-height:145px;overflow:hidden}.class-card.selected{border:2px solid var(--ink);padding:18px;background:#edf3da;box-shadow:3px 3px 0 var(--ink)}.class-card:hover{background:#eff0e3}.class-card h3{font-size:19px;font-weight:850;margin-top:12px}.class-card p{color:#727564;font-size:11px;margin-top:6px;line-height:1.5;max-width:175px}.class-icon{height:34px;display:flex;gap:2px}.class-icon img{width:35px;height:35px}.class-tick{position:absolute;right:15px;top:15px;width:19px;height:19px;border:1px solid #b4b8a0;border-radius:50%;background:var(--white);font-size:12px;text-align:center;line-height:18px}.selected .class-tick{background:var(--ink);color:var(--lime);border-color:var(--ink)}.begin-row{display:flex;align-items:center;gap:18px;margin-top:25px}.begin-row .primary-button{flex:1}.begin-note{font-size:11px;color:var(--muted);max-width:125px;line-height:1.5}.welcome-board{position:relative;border:1px solid var(--line);border-radius:14px;background-color:#e5ebd4;background-image:linear-gradient(#cdd5bb 1px,transparent 1px),linear-gradient(90deg,#cdd5bb 1px,transparent 1px);background-size:40px 40px;min-height:395px;overflow:hidden}.welcome-board:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse,transparent 30%,#e5ebd4bb 85%)}.sample-map{display:grid;grid-template-columns:repeat(8,45px);position:absolute;top:65px;left:50%;transform:translateX(-50%) rotate(-7deg);z-index:1;box-shadow:12px 15px 0 #aeb9922a}.sample-cell{width:45px;height:45px;background:#f8f9e7;border:1px solid #7b8761;display:grid;place-items:center}.sample-cell.empty{opacity:0}.sample-cell img{width:32px;height:32px;filter:drop-shadow(1px 2px 0 #0001)}.sample-cell.current{background:var(--lime);border:2px solid var(--ink)}.board-note{position:absolute;z-index:2;bottom:20px;left:22px;font:12px ui-monospace,SFMono-Regular,monospace;line-height:1.6;background:#fff9de;padding:13px 17px;transform:rotate(-3deg);box-shadow:3px 4px 0 #aeb99277}.sample-die{position:absolute;right:30px;bottom:32px;z-index:3;transform:rotate(12deg);width:67px;height:67px;border:2px solid var(--ink);border-radius:14px;background:var(--white);box-shadow:5px 6px 0 #26291f44;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);padding:12px;gap:6px}.sample-die i{width:9px;height:9px;background:var(--ink);border-radius:50%}.welcome-footer{display:flex;justify-content:space-between;margin-top:28px;padding:0 3px;font:10px ui-monospace,SFMono-Regular,monospace;color:var(--muted);gap:15px}.welcome-footer span:first-child{display:flex;gap:7px;align-items:center}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#87a650}
/* Game */
.game-shell{max-width:1700px;margin:auto;padding:27px 34px}.game-topline{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:21px}.game-topline h1{font-size:25px;font-weight:900;letter-spacing:-1px;margin-top:7px}.topline-right{display:flex;align-items:center;gap:12px}.saved-label{font:10px ui-monospace,SFMono-Regular,monospace;color:var(--muted);display:flex;align-items:center;gap:6px}.game-layout{display:grid;grid-template-columns:242px minmax(360px,1fr) 292px;gap:20px;align-items:start}.panel{background:var(--white);border:1px solid var(--line);border-radius:12px;overflow:hidden}.panel-top{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid #e8e7db}.panel-top h2{font-size:12px;font-weight:800}.small-index{font:10px ui-monospace,SFMono-Regular,monospace;color:#999d88}.hero-body{padding:18px}.hero-identity{display:flex;align-items:center;gap:12px}.hero-portrait{width:48px;height:48px;border:1px solid #ced3bc;border-radius:9px;background:#edf1de;display:grid;place-items:center}.hero-portrait img{width:36px;height:36px}.hero-name{font-size:22px;font-weight:900;letter-spacing:-.8px}.hero-sub{font:10px ui-monospace,SFMono-Regular,monospace;color:var(--muted);margin-top:4px}.health-block{margin-top:21px}.stat-heading{display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:700}.stat-heading strong{font:800 16px ui-monospace,SFMono-Regular,monospace}.health-track{height:8px;background:#eed9df;border-radius:3px;margin-top:9px;overflow:hidden}.health-fill{height:100%;background:var(--pink);border-radius:3px;transition:width .35s}.gold-row{display:flex;align-items:center;justify-content:space-between;margin-top:18px;padding-top:16px;border-top:1px dashed var(--line);font-size:12px}.gold-row span{display:flex;align-items:center;gap:8px}.gold-row img{width:23px;height:23px}.gold-row strong{font:800 22px ui-monospace,SFMono-Regular,monospace}.gear-heading{font-size:10px;font-weight:800;letter-spacing:1.2px;margin:23px 0 10px;color:var(--muted)}.gear-row{display:flex;align-items:center;gap:9px;border:1px solid #e4e4d7;border-radius:6px;margin-bottom:7px;padding:8px;background:#f7f7ef;min-height:44px}.gear-row>img{width:25px;height:26px}.gear-details{flex:1;min-width:0}.gear-details strong{display:block;font-size:11px;font-weight:750}.gear-details span{display:block;font-size:9px;color:var(--muted);margin-top:2px}.gear-bonus{font:800 12px ui-monospace,SFMono-Regular,monospace;min-width:27px;text-align:center;background:#e8eddb;padding:4px 5px;border-radius:4px}.gear-row.empty{border-style:dashed;background:transparent;color:#a1a590}.gear-row.empty .gear-bonus{background:transparent}.inventory-panel{margin-top:15px}.inventory-grid{padding:15px;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.inventory-slot{height:61px;border:1px solid #dce0ce;border-radius:7px;background:#f4f6ea;position:relative;display:grid;place-items:center}.inventory-slot:hover{background:#edf3d5}.inventory-slot.empty{background:transparent;border-style:dashed;cursor:default}.inventory-slot img{width:33px;height:35px}.item-value{position:absolute;right:4px;bottom:3px;background:#fff9ef;font:700 9px ui-monospace,SFMono-Regular,monospace;border-radius:3px;padding:1px 3px}.inventory-hint{padding:0 15px 15px;font-size:10px;color:var(--muted);line-height:1.5}.run-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:14px}.run-stat{text-align:center;border:1px solid var(--line);padding:10px 5px;border-radius:7px}.run-stat strong{font:700 17px ui-monospace,SFMono-Regular,monospace;display:block}.run-stat span{font-size:9px;color:var(--muted);display:block;margin-top:5px}.map-panel{border-color:#bbc4a7;background:#eff2e7}.map-panel .panel-top{background:var(--white);gap:10px;flex-wrap:wrap}.map-panel .panel-top h2{display:flex;align-items:center;gap:8px}.map-panel .panel-top h2 img{width:19px;height:19px}.map-tools{display:flex;gap:4px}.map-tools button{border:1px solid #d8dccb;border-radius:4px;background:var(--white);font-size:14px;width:27px;height:26px;display:grid;place-items:center}.map-window{height:520px;overflow:auto;position:relative;overscroll-behavior:contain;background-color:#f2f4ec;background-image:radial-gradient(#d5ddc9 .7px,transparent .7px);background-size:8px 8px;scrollbar-width:thin;scrollbar-color:#bac4a7 transparent}.map-grid{display:grid;width:max-content;min-width:100%;padding:32px;gap:0;justify-content:center}.tile{position:relative;width:var(--cell,44px);height:var(--cell,44px);border:0;border-right:1px solid #d5dacb;border-bottom:1px solid #d5dacb;border-radius:0;background:#fafbf6;display:grid;place-items:center;padding:5px;transition:background .16s;cursor:default}.tile:before{content:"";position:absolute;inset:0;border-left:1px solid transparent;border-top:1px solid transparent;pointer-events:none}.tile img{width:78%;height:78%;max-width:38px;max-height:38px;filter:drop-shadow(1px 1px 0 #0001)}.tile.visited{background:var(--tile-color,#e0ead0);border-color:#b4c1a0}.tile.frontier{background:#f4f8e8;cursor:pointer}.tile.frontier:hover{background:#d7ee83;box-shadow:inset 0 0 0 2px #778a4b;z-index:1}.tile.frontier .tile-plus{font:400 19px ui-monospace,SFMono-Regular,monospace;color:#9eaf7b}.tile.current{box-shadow:inset 0 0 0 2px var(--ink);background:var(--lime);z-index:2}.tile.current:after{content:"";position:absolute;left:calc(50% - 3px);bottom:3px;width:6px;height:6px;background:var(--ink);border-radius:50%}.tile.finished{cursor:pointer}.tile.active-encounter{background:#f5d3cf;box-shadow:inset 0 0 0 2px #ab6c68}.tile.boss img{filter:drop-shadow(0 0 3px #ac373755)}.tile.boss:before{content:"B";color:#ab383b;font:800 8px ui-monospace,SFMono-Regular,monospace;top:2px;left:3px}.tile.done-mark:before{content:"✓";color:#698f49;font:800 8px ui-monospace,SFMono-Regular,monospace;left:auto;top:1px;right:3px}.tile-roll{position:absolute;top:2px;left:3px;color:#72805c;font:700 7px ui-monospace,SFMono-Regular,monospace}.map-bottom{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--white);border-top:1px solid var(--line);font-size:10px;color:var(--muted);gap:10px}.map-bottom .current-key{display:flex;align-items:center;gap:6px}.current-key i{width:9px;height:9px;background:var(--lime);border:1px solid var(--ink);display:inline-block}.action-legend{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin-top:12px}.legend-item{display:flex;align-items:center;justify-content:center;gap:4px;border:1px solid var(--line);border-radius:6px;padding:10px 2px;background:#f9f7ef;font-size:9px}.legend-item img{width:19px;height:19px}.legend-item b{font:700 9px ui-monospace,SFMono-Regular,monospace}.dice-panel{background:#e8edda;border-color:#b9c3a4}.dice-panel .panel-top{border-bottom:1px solid #d3dac3}.dice-panel .panel-top h2{font-size:11px}.phase-pill{font:700 9px ui-monospace,SFMono-Regular,monospace;padding:4px 7px;border-radius:4px;background:#d5dfbe;color:#667843}.dice-tray{margin:17px 16px 0;height:152px;position:relative;background:#dee5cc;border:1px solid #bfcaa8;border-radius:12px;box-shadow:inset 0 3px 8px #7d8b6520;display:flex;align-items:center;justify-content:center;gap:30px;perspective:700px;overflow:hidden}.tray-mark{position:absolute;bottom:10px;left:0;right:0;text-align:center;font:9px ui-monospace,SFMono-Regular,monospace;color:#869475;letter-spacing:1px}.dice-object{position:relative;width:61px;height:61px;border:0;background:none;padding:0;transform-style:preserve-3d;transform:rotateX(-17deg) rotateY(23deg) rotateZ(-8deg);transition:transform .6s cubic-bezier(.2,.7,.25,1);cursor:pointer}.die-face{position:absolute;inset:0;border:2px solid #404737;border-radius:11px;background:#fffef5;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);padding:10px;gap:4px;backface-visibility:hidden}.die-front{transform:translateZ(30px)}.die-back{transform:rotateY(180deg) translateZ(30px)}.die-right{transform:rotateY(90deg) translateZ(30px);background:#e7e8db}.die-left{transform:rotateY(-90deg) translateZ(30px);background:#e7e8db}.die-top{transform:rotateX(90deg) translateZ(30px);background:#f2f2e5}.die-bottom{transform:rotateX(-90deg) translateZ(30px);background:#dddccb}.die-pip{background:#31382b;border-radius:50%;display:block;min-width:0;min-height:0}.enemy-die .die-face{background:#f3c9c4;border-color:#85544e}.enemy-die .die-pip{background:#7c413a}.rolling .dice-object{animation:tumble .7s ease-in-out}.rolling .dice-object:nth-child(2){animation-delay:.06s}.dice-shadow{position:absolute;width:64px;height:24px;background:#59613b38;border-radius:50%;filter:blur(7px);bottom:32px;left:calc(50% - 30px);transform:rotate(-10deg)}@keyframes tumble{0%{transform:translateY(0) rotateX(-17deg) rotateY(23deg) rotateZ(-8deg)}30%{transform:translateY(-32px) rotateX(195deg) rotateY(240deg) rotateZ(32deg)}70%{transform:translateY(-12px) rotateX(590deg) rotateY(510deg) rotateZ(-17deg)}100%{transform:translateY(0) rotateX(703deg) rotateY(743deg) rotateZ(-8deg)}}.dice-result{min-height:32px;margin:12px 16px 0;font:700 11px ui-monospace,SFMono-Regular,monospace;text-align:center;line-height:1.5;color:#63734a}.encounter-info{padding:8px 19px 17px}.encounter-title{font-size:21px;font-weight:900;letter-spacing:-.6px;line-height:1.13}.encounter-description{font-size:11px;line-height:1.6;color:#6d785b;margin-top:8px;min-height:34px}.roll-button{width:100%;margin-top:14px;min-height:47px;font-size:13px}.context-buttons{display:flex;flex-direction:column;gap:7px;margin-top:10px}.context-buttons .secondary-button{background:#f7f9ed;border-color:#aebc96}.monster-card{display:flex;align-items:center;gap:11px;background:#f9e8df;border:1px solid #e3c8b8;border-radius:8px;padding:11px;margin-bottom:15px}.monster-card>img{width:43px;height:43px}.monster-card strong{font-size:12px;display:block}.monster-card span{font:10px ui-monospace,SFMono-Regular,monospace;display:block;margin-top:5px;color:#98624c}.monster-hp{height:4px;background:#e9cebc;border-radius:3px;margin-top:7px;overflow:hidden}.monster-hp i{display:block;height:100%;background:#c47b62}.hint-panel{margin-top:13px;padding:14px 16px;background:#f8f6e9;border:1px dashed #c9cbb5;border-radius:8px;font-size:10px;color:#7b806b;line-height:1.6}.hint-panel strong{display:block;color:#575e45;font-size:11px;margin-bottom:4px}.journey-panel{margin-top:16px}.journey-log{max-height:193px;overflow:auto;padding:5px 16px;scrollbar-width:thin}.log-entry{display:flex;gap:9px;padding:10px 0;border-bottom:1px solid #eeeade;font-size:10px;line-height:1.55;color:#747768}.log-entry:last-child{border-bottom:0}.log-entry>img{width:16px;height:16px;flex-shrink:0;margin-top:1px}.log-entry b{color:#474d39}.game-footer{display:flex;align-items:center;justify-content:space-between;font:9px ui-monospace,SFMono-Regular,monospace;color:#909582;padding:22px 1px 0;gap:12px}.keyboard-hint{display:flex;align-items:center;gap:4px}kbd{font:9px ui-monospace,SFMono-Regular,monospace;border:1px solid #c8ccba;border-bottom-width:2px;border-radius:3px;padding:2px 4px;background:#fffdf5}
/* Dialogs */
dialog{border:2px solid var(--ink);border-radius:14px;background:var(--white);color:var(--ink);padding:0;box-shadow:8px 9px 0 #26291f28;width:min(640px,calc(100vw - 28px));max-height:85dvh}dialog::backdrop{background:#23281c65;backdrop-filter:blur(3px)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:22px 25px;border-bottom:1px solid var(--line);gap:14px}.modal-header h2{font-size:23px;font-weight:900;letter-spacing:-.8px}.modal-close{border:0;background:#efefe5;border-radius:6px;width:29px;height:29px;font-size:21px}.modal-body{padding:24px 25px;overflow:auto}.modal-body p{font-size:13px;line-height:1.7;color:#6d7262;margin-bottom:16px}.modal-body h3{font-size:14px;margin:22px 0 10px}.modal-body h3:first-child{margin-top:0}.rules-table{width:100%;border-collapse:collapse;font-size:12px}.rules-table td,.rules-table th{text-align:left;padding:9px 8px;border-bottom:1px solid #e7e7da}.rules-table th{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:1px}.rules-table img{width:22px;height:22px;vertical-align:middle;margin-right:7px}.modal-actions{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap}.modal-actions>*{flex:1}.item-large{display:flex;gap:20px;align-items:center;margin-bottom:20px}.item-large img{width:75px;height:75px;padding:8px;background:#edf2dd;border:1px solid #d1d9bc;border-radius:12px}.item-large h3{margin:0;font-size:20px}.item-large p{margin:6px 0 0;font-size:12px}.merchant-tabs{display:flex;gap:8px;margin-bottom:18px}.merchant-tabs button{flex:1;border:1px solid #d7dcca;padding:9px;background:#f5f7ed;border-radius:6px;font-size:11px;font-weight:700}.merchant-tabs button.active{background:var(--lime);border-color:#86995c}.shop-list{display:flex;flex-direction:column;gap:7px}.shop-row{display:flex;align-items:center;gap:12px;border:1px solid #e0e3d4;border-radius:7px;padding:10px;background:#f8f9f1}.shop-row img{width:32px;height:32px}.shop-row .shop-details{flex:1}.shop-row strong{font-size:12px;display:block}.shop-row small{font-size:10px;color:var(--muted);display:block;margin-top:4px}.price-button{border:1px solid #8b9d65;background:#edf5d9;border-radius:5px;font:700 11px ui-monospace,SFMono-Regular,monospace;padding:8px 10px;white-space:nowrap}.shop-footer{position:sticky;bottom:-24px;background:var(--white);padding:17px 0 2px;margin-top:18px;border-top:1px solid var(--line);display:flex;gap:12px;align-items:center;justify-content:space-between}.shop-footer span{font-size:12px;color:var(--muted)}.reward-card{text-align:center;padding:8px 0}.reward-card>img{width:90px;height:90px;filter:drop-shadow(2px 4px 0 #0001);margin-bottom:13px}.reward-card h3{font-size:23px;margin:0}.reward-card p{margin-top:10px}.reward-options{display:flex;flex-direction:column;gap:9px;margin-top:20px}.reward-options button{width:100%}.progress-note{background:#eef2e1;border:1px solid #d0d8bc;border-radius:7px;padding:12px;font-size:11px;line-height:1.6;color:#697356}.menu-list{display:flex;flex-direction:column;gap:9px}.menu-list button{text-align:left;padding:14px}.menu-list .danger-button{border-color:#dfb6a6;color:#ab654e;background:#fff5f0;margin-top:12px}#toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,15px);opacity:0;pointer-events:none;max-width:calc(100vw - 40px);background:var(--ink);color:var(--white);padding:13px 20px;border-radius:8px;font-size:12px;z-index:10;transition:.2s;box-shadow:0 4px 15px #0002}#toast.show{opacity:1;transform:translate(-50%,0)}.death-banner{padding:13px 20px;background:#f5ded6;border:1px solid #d4a89c;border-radius:8px;margin-bottom:20px;font-size:13px;display:flex;align-items:center;justify-content:space-between;gap:12px}.death-banner strong{font-weight:850}.dice-tap-hint{text-align:center;font:9px ui-monospace,SFMono-Regular,monospace;margin-top:9px;color:#8a9579}.die-label{position:absolute;top:10px;font:700 8px ui-monospace,SFMono-Regular,monospace;color:#75805e;letter-spacing:1px}.die-label.you{left:38px}.die-label.enemy{right:30px;color:#9e6258}
@media(min-width:1550px){.game-layout{grid-template-columns:265px minmax(450px,1fr) 320px;gap:25px}.map-window{height:610px}.dice-tray{height:173px}.encounter-info{padding:12px 22px 22px}.encounter-description{font-size:12px}.journey-log{max-height:215px}}
@media(max-width:1160px){.site-header{padding:18px 25px;height:88px}.header-middle{display:none}.game-shell{padding:24px 20px}.game-layout{grid-template-columns:205px minmax(290px,1fr) 248px;gap:13px}.hero-body{padding:14px}.panel-top{padding:14px}.inventory-grid{padding:12px;gap:6px}.inventory-slot{height:51px}.map-window{height:476px}.action-legend{grid-template-columns:repeat(3,1fr)}.legend-item{padding:7px}.dice-tray{margin:14px 12px 0;height:137px;gap:22px}.encounter-info{padding:8px 14px 16px}.encounter-title{font-size:19px}.welcome{padding:40px 28px}.class-section{padding:22px}.class-card{padding:14px}.class-card.selected{padding:13px}.welcome-board{min-height:380px}}
@media(max-width:900px){.game-layout{grid-template-columns:180px minmax(270px,1fr);gap:15px}.right-column{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:15px}.dice-panel{grid-row:span 2}.journey-panel,.hint-panel{margin-top:0}.journey-log{max-height:185px}.map-window{height:487px}.dice-panel-inner{display:grid;grid-template-columns:170px 1fr}.dice-tray{height:135px;margin-bottom:15px}.encounter-title{font-size:19px}.dice-result{margin-bottom:12px}.right-column{display:grid;grid-template-columns:1.3fr 1fr}.dice-panel-inner{display:block}.dice-tray{height:123px}.welcome-grid{grid-template-columns:1fr .8fr}.welcome h1{font-size:52px}.class-card p{font-size:10px}.starter-note{display:none}.sample-map{grid-template-columns:repeat(8,38px);top:80px}.sample-cell{width:38px;height:38px}.sample-cell img{width:28px;height:28px}.board-note{font-size:10px;left:15px}.sample-die{right:20px;bottom:62px;width:54px;height:54px;padding:10px;gap:4px}.sample-die i{width:7px;height:7px}.class-section{padding:19px}.begin-note{display:none}.welcome-footer{font-size:9px}}
@media(max-width:640px){.site-header{height:77px;padding:12px 17px}.wordmark{font-size:15px;gap:9px}.brand-second{font-size:18px}.brand-stamp{width:39px;height:42px;border-radius:9px 9px 3px 3px;box-shadow:2px 2px 0 var(--ink)}.brand-stamp img{width:28px;height:28px}.site-header nav{gap:6px}.quiet-button{font-size:11px;padding:7px 3px}.quiet-button span{margin-left:2px}.icon-button{font-size:18px}.game-shell{padding:20px 13px}.game-topline{margin-bottom:15px}.game-topline h1{font-size:22px}.game-topline .eyebrow{font-size:8px;letter-spacing:1.2px}.saved-label{font-size:8px}.topline-right .pill{display:none}.game-layout{display:flex;flex-direction:column;gap:15px}.left-column{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:10px;order:1}.hero-panel .panel-top,.inventory-panel .panel-top{padding:11px 12px}.hero-body{padding:12px}.hero-identity{gap:8px}.hero-portrait{width:34px;height:34px}.hero-portrait img{width:27px;height:27px}.hero-name{font-size:19px}.hero-sub{font-size:8px}.health-block{margin-top:13px}.gold-row{margin-top:11px;padding-top:10px}.gold-row strong{font-size:18px}.gold-row span{font-size:10px}.gear-heading{margin-top:15px;font-size:8px}.gear-row{padding:5px;gap:6px;min-height:32px;margin-bottom:5px}.gear-row>img{width:21px;height:21px}.gear-details strong{font-size:9px}.gear-details span{font-size:8px}.gear-bonus{font-size:10px;padding:3px}.inventory-panel{margin:0}.inventory-grid{padding:12px;grid-template-columns:repeat(3,1fr)}.inventory-slot{height:46px}.inventory-slot img{width:27px;height:28px}.inventory-hint{font-size:9px;padding:0 12px 12px}.run-stats{grid-column:1/-1;margin:0;gap:8px}.run-stat{display:flex;justify-content:center;align-items:center;gap:9px;padding:8px}.run-stat strong{font-size:13px}.run-stat span{margin-top:0;font-size:9px}.middle-column{width:100%;order:0}.map-window{height:345px}.map-panel .panel-top{padding:12px 14px}.map-bottom{font-size:9px;padding:10px 12px}.action-legend{grid-template-columns:repeat(6,1fr);gap:4px;margin-top:8px}.legend-item{flex-direction:column;gap:3px;font-size:8px;padding:7px 1px}.legend-item img{width:17px;height:17px}.right-column{width:100%;order:0;display:flex;flex-direction:column;gap:12px}.dice-panel-inner{display:grid;grid-template-columns:135px 1fr;align-items:center}.dice-panel .panel-top{padding:12px 15px}.dice-tray{height:112px;margin:13px 0 0 12px;gap:18px}.dice-object{width:48px;height:48px}.die-face{border-radius:9px;padding:8px;gap:3px}.die-front{transform:translateZ(23px)}.die-back{transform:rotateY(180deg) translateZ(23px)}.die-right{transform:rotateY(90deg) translateZ(23px)}.die-left{transform:rotateY(-90deg) translateZ(23px)}.die-top{transform:rotateX(90deg) translateZ(23px)}.die-bottom{transform:rotateX(-90deg) translateZ(23px)}.dice-tray.two-dice{gap:8px}.two-dice .dice-object{width:40px;height:40px}.two-dice .die-face{padding:6px}.two-dice .die-front{transform:translateZ(19px)}.two-dice .die-back{transform:rotateY(180deg) translateZ(19px)}.two-dice .die-right{transform:rotateY(90deg) translateZ(19px)}.two-dice .die-left{transform:rotateY(-90deg) translateZ(19px)}.two-dice .die-top{transform:rotateX(90deg) translateZ(19px)}.two-dice .die-bottom{transform:rotateX(-90deg) translateZ(19px)}.tray-mark{font-size:7px;bottom:8px}.die-label{font-size:6px;top:8px}.die-label.you{left:20px}.die-label.enemy{right:14px}.dice-result{font-size:9px;margin:9px 8px 13px}.encounter-info{padding:12px 14px}.encounter-title{font-size:20px}.encounter-description{font-size:10px;min-height:0;margin-top:5px}.roll-button{margin-top:10px;min-height:42px;padding:9px 12px;font-size:11px}.context-buttons{margin-top:8px;gap:6px}.context-buttons button{padding:8px;font-size:10px}.monster-card{padding:8px;margin-bottom:9px;gap:7px}.monster-card>img{width:29px;height:29px}.monster-card strong{font-size:10px}.monster-card span{font-size:9px}.hint-panel{display:none}.journey-panel{order:2}.journey-log{max-height:145px}.game-footer{font-size:8px;line-height:1.7;padding-top:16px}.keyboard-hint{display:none}.welcome{padding:32px 18px 24px}.welcome-heading{margin-bottom:26px}.welcome h1{font-size:46px;letter-spacing:-2.5px;line-height:1.01;margin-top:12px}.welcome-description{font-size:13px;max-width:360px}.welcome-grid{grid-template-columns:1fr;gap:16px}.class-section{padding:19px}.class-card{min-height:139px;padding:17px}.class-card.selected{padding:16px}.class-card h3{font-size:19px}.class-card p{font-size:10px}.welcome-board{min-height:265px;order:1}.sample-map{top:13px;grid-template-columns:repeat(8,35px)}.sample-cell{width:35px;height:35px}.sample-cell img{width:24px;height:24px}.sample-die{bottom:26px;right:30px}.board-note{bottom:20px;left:25px}.welcome-footer{flex-direction:column;gap:10px;margin-top:20px}.modal-header{padding:18px 20px}.modal-header h2{font-size:21px}.modal-body{padding:20px}.shop-row{gap:9px;padding:9px}.shop-row img{width:28px;height:28px}.shop-row strong{font-size:11px}.shop-row small{font-size:9px}.price-button{font-size:10px}.death-banner{font-size:11px;padding:12px}.saved-label .status-dot{width:5px;height:5px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Region colors belong to the map squares, including the hero's current square. */
.tile.current,.tile.active-encounter{background:var(--tile-color,#e0ead0)}
.tile.current{outline:2px solid var(--ink);outline-offset:-6px;box-shadow:none}
.tile.active-encounter{box-shadow:inset 0 0 0 2px #ab6c68}
.tile.current:after{z-index:4}
.region-outline{position:absolute;inset:0;border:0 solid var(--region-border);pointer-events:none;z-index:3}
.tile.boss:before{content:none}
.tile-boss{position:absolute;top:3px;left:4px;font:800 8px ui-monospace,SFMono-Regular,monospace;color:#9b3a31}
.tile-roll{left:auto;right:4px;top:3px;color:#526051}
.tile.done-mark:before{top:auto;bottom:3px;right:4px;z-index:4}
.tile.fallen img{filter:drop-shadow(0 1px 2px #5e727844)}
.region-trail{display:flex;gap:7px;overflow-x:auto;padding:9px 12px;background:#fffdf5;border-bottom:1px solid #dddccd;scrollbar-width:thin}
.region-chip{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;font-size:9px;color:#6b7163;padding:5px 7px;border:1px solid #e1e0d4;border-radius:4px;background:#faf9f2}
.region-chip i{width:11px;height:11px;background:var(--tile-color);border:1px solid var(--region-border);border-radius:2px}
.region-chip.is-closed i{border-width:2px}
.region-chip.is-current{color:var(--ink);background:var(--tile-color);border-color:var(--region-border)}
.region-chip b{font:700 9px ui-monospace,SFMono-Regular,monospace}
.region-chip small{font:700 7px ui-monospace,SFMono-Regular,monospace;margin-left:2px;opacity:.65}
@media(max-width:640px){.region-trail{padding:7px 9px;gap:5px}.region-chip{font-size:8px;padding:4px 6px}}
.tile:disabled{opacity:1}.button-icon{width:17px;height:17px;vertical-align:middle;margin-right:4px}.inline-icon{width:20px;height:20px;vertical-align:middle}.die-face{pointer-events:none}.context-buttons .secondary-button{display:flex;align-items:center;justify-content:center;gap:5px}
.mobile-health{display:none}@media(max-width:640px){.mobile-health{display:block;margin-left:auto;font:10px ui-monospace,SFMono-Regular,monospace;color:#6f795e}.mobile-health strong{color:#575f48}}

.region-kind{font:700 8px ui-monospace,SFMono-Regular,monospace;text-transform:uppercase;letter-spacing:.7px;color:#737d6a;border-left:1px solid #ced2c2;padding-left:8px}
