:root{color-scheme:dark;--ink:#ede8d9;--muted:#a9ac9e;--gold:#e9bd75;--bg:#131817;--panel:#1d2420;--line:#394137;--dim:#293329;font:16px/1.55 system-ui,sans-serif}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at top,#252a21 0,transparent 49rem),var(--bg);color:var(--ink)}button,input{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}button:focus-visible,a:focus-visible,input:focus-visible,.choice:has(input:focus-visible){outline:2px solid var(--gold);outline-offset:4px}.wrap{width:min(1120px,calc(100% - 48px));margin-inline:auto}.top{border-bottom:1px solid var(--line);background:#111614}.top-inner{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:76px}.brand{display:flex;gap:12px;align-items:center;font-weight:750;letter-spacing:.1em;line-height:1.1}.brand small{display:block;font-size:9px;color:var(--gold);letter-spacing:.26em;margin-top:5px}.crest{display:grid;place-items:center;width:39px;height:39px;color:var(--gold);background:#2e3327;border:1px solid #665339;font-size:24px}.top nav{display:flex;gap:24px;color:var(--muted);font-size:13px}.top nav a[aria-current]{color:var(--gold)}
.hero{position:relative;margin:28px 0 30px;min-height:250px;display:flex;align-items:end;border:1px solid #4d5140;overflow:hidden;background:#263829 url('townscape.svg') center 60%/cover no-repeat}.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#111812 0%,#141a14df 32%,transparent 92%),linear-gradient(0deg,#1619129e,transparent 65%)}.hero-content{position:relative;padding:28px 36px;max-width:630px}.eyebrow{color:var(--gold);font-size:10px;font-weight:800;letter-spacing:.19em;margin:0 0 7px}.eyebrow span{display:inline-block;width:6px;height:6px;background:var(--gold);margin-right:6px;transform:rotate(45deg)}h1,h2,h3{font-family:Georgia,serif;line-height:1.12;margin:0;font-weight:500}h1{font-size:clamp(39px,7vw,66px);letter-spacing:-.035em}.hero-content>p:last-child{color:#d0cfc1;margin:.75rem 0 0;max-width:440px}.layout{display:grid;grid-template-columns:minmax(0,1.52fr) minmax(290px,1fr);gap:24px;align-items:start}.heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:14px}h2{font-size:29px}.tag{border:1px solid var(--line);font-size:10px;letter-spacing:.12em;color:var(--muted);padding:4px 8px}.routes{display:grid;gap:9px}.route{width:100%;border:1px solid var(--line);padding:0;text-align:left;background:var(--panel);color:var(--ink);display:grid;grid-template-columns:108px 1fr 26px;align-items:center;min-height:104px;transition:border-color .15s,background .15s}.route:hover{border-color:#9b8b63}.route[aria-pressed=true]{border-color:var(--gold);background:#2b3227}.thumb{height:100%;min-height:102px;display:grid;place-items:center;overflow:hidden;background:#344236}.thumb svg{width:100%;height:100%;min-height:102px}.route-copy{padding:12px 14px}.route-type{display:block;color:var(--gold);font-size:9px;font-weight:800;letter-spacing:.15em;text-transform:uppercase}.route h3{font-size:23px;margin:2px 0 4px}.route-copy p{margin:0;color:var(--muted);font-size:13px}.mark{color:var(--gold);font-size:15px}.footnote,.desk-note{font-size:12px;color:var(--muted)}.footnote{margin:12px 0 0}.desk{background:var(--panel);border:1px solid var(--line);padding:22px;box-shadow:0 7px 20px #0b100b38}.current{color:var(--gold);font-size:13px;margin:6px 0 15px}fieldset{padding:0;border:0;margin:0 0 14px;min-width:0}legend{font-size:12px;font-weight:700;margin-bottom:5px}.segments{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.choice{position:relative;display:grid;place-items:center;text-align:center;font-size:12px;min-height:37px;padding:4px;border:1px solid var(--line);cursor:pointer;color:var(--muted)}.choice:hover{color:var(--ink)}.choice:has(input:checked){border-color:#a38c60;background:#363a2c;color:var(--gold)}.choice input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}.brief{background:#151c17;border:1px solid var(--line);padding:10px 12px;margin:3px 0 12px;color:var(--muted);font-size:12px}.brief strong{display:block;color:var(--ink);font-size:13px}.primary,.secondary,.icon{border:1px solid #a58755;padding:9px 13px}.primary{background:var(--gold);color:#1d2119;font-weight:800}.primary:hover{background:#ffdc9b}.desk .primary{width:100%;display:flex;justify-content:space-between}.secondary,.icon{background:#272e25;color:var(--ink)}.secondary:hover,.icon:hover{background:#394034}.desk-note{margin:9px 0 0}.footer{margin-top:32px;display:flex;justify-content:space-between;gap:12px;padding:15px 0 24px;border-top:1px solid var(--line);color:var(--muted);font-size:10px;letter-spacing:.1em}
dialog{width:min(470px,calc(100% - 32px));background:var(--panel);color:var(--ink);border:1px solid #90794f;padding:23px}dialog::backdrop{background:#09100bc9}.dialog-title{display:flex;align-items:center;justify-content:space-between}.icon{padding:2px 8px;line-height:1.2;font-size:23px}.ticket-actions{display:flex;gap:8px;flex-wrap:wrap;margin:17px 0 10px}code{color:var(--gold)}#feedback{color:var(--gold);min-height:20px;font-size:13px;margin-bottom:0}#share-link{display:block;width:100%;background:#151c17;color:var(--ink);border:1px solid var(--line);padding:6px}
@media(max-width:760px){.layout{grid-template-columns:1fr}.wrap{width:calc(100% - 32px)}.hero{min-height:210px;margin-top:18px}.hero-content{padding:22px}.desk{margin-bottom:4px}.top nav{gap:12px}}@media(max-width:420px){.route{grid-template-columns:72px 1fr 20px}.route-copy{padding:8px}.route h3{font-size:20px}.desk{padding:16px}}
.nav-button{background:transparent;border:1px solid var(--line);padding:4px 9px;color:var(--gold)}.top nav{align-items:center}.account-page label{display:block;margin:10px 0;color:var(--muted);font-size:13px}.account-page input{display:block;width:100%;margin:5px 0 0;background:#151c17;color:var(--ink);border:1px solid var(--line);padding:8px}.account-session{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:8px 0 14px}.characters-heading{margin-top:20px}.character-card{margin-top:8px;border:1px solid var(--line);padding:8px 11px}.character-card summary{cursor:pointer}.character-card ul{margin:5px 0;padding-left:22px}.character-card p{margin:5px 0}.account-page [hidden]{display:none!important}#account-feedback{min-height:20px;color:var(--gold);font-size:13px}
@media(max-width:420px){.top nav{gap:7px}.nav-button{padding-inline:6px}.brand{gap:7px}.crest{width:32px;height:32px}}

.inventory-row{display:flex;align-items:center;gap:6px;padding:5px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}.inventory-row span{flex:1 1 100px}.inventory-row input{width:72px;margin:0}.inventory-button{padding:4px 8px;font-size:12px}.character-card h4{margin:10px 0 3px}.account-page select{display:block;margin-top:4px;padding:6px;max-width:100%}

.dispatch-card{border-top:1px solid var(--line);padding:9px 0;margin:8px 0}.dispatch-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px;color:var(--muted);font-size:12px}.dispatch-row select{max-width:145px;margin:0}.account-page .dispatch-row input{width:auto;margin:0}.inventory-row label{flex:1}.inventory-row label input{width:100%}

.account-session p,.workspace-heading p,.item-inspector p{margin:3px 0}
.account-session-actions,.dispatch-actions,.transfer-controls,.create-character-form{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.account-tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--line)}
.account-tabs button{background:transparent;color:var(--muted);border:1px solid transparent;padding:9px 12px}
.account-tabs button[aria-selected=true]{color:var(--gold);border-color:var(--line);background:#252d22}
.workspace-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:12px}
.workspace-heading h3,.bank-columns h4{margin:0}
.workspace-heading p{color:var(--muted);font-size:.9rem}
.dispatch-row{display:grid;grid-template-columns:auto minmax(110px,1fr) minmax(120px,1fr) minmax(70px,.55fr) minmax(80px,.55fr);padding:9px;border:1px solid var(--line);margin:4px 0;gap:8px}
.dispatch-row select{max-width:none;width:100%;background:#151c17;color:var(--ink);border:1px solid var(--line)}
.dispatch-actions{justify-content:flex-end;margin:12px 0}
#adventure-history{display:grid;gap:8px;justify-items:start}
#character-locker h4{margin:12px 0 6px}
.bank-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.bank-columns>div{border:1px solid var(--line);padding:10px;min-width:0}
.bank-columns h4{margin-bottom:8px}
.item-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:6px}
.item-grid>p{grid-column:1/-1;color:var(--muted);margin:0}
.item-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:75px;padding:6px;background:#151c17;border:1px solid var(--line);color:var(--ink);font-size:12px;line-height:1.2;overflow-wrap:anywhere}
.item-tile img{width:32px;height:32px;image-rendering:pixelated}
.item-tile small{color:var(--muted)}
.item-tile:hover,.item-tile[aria-pressed=true]{border-color:var(--gold);background:#292e21}
.item-inspector{border:1px solid var(--line);margin-top:10px;padding:10px}
.item-inspector>.secondary,.transfer-controls{margin-top:8px}
.account-page .transfer-controls input{width:78px;margin:0}
.create-character-form input{flex:1 1 160px;width:auto;margin:0}
#item-tooltip{position:fixed;z-index:2;width:max-content;max-width:min(260px,calc(100vw - 16px));background:#151c17;color:var(--ink);border:1px solid var(--gold);padding:8px 10px;pointer-events:none;box-shadow:0 4px 12px #0008;font-size:13px}
#item-tooltip>*{display:block}
#item-tooltip strong,#auth-feedback{color:var(--gold)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(max-width:600px){.bank-columns{grid-template-columns:1fr}.dispatch-row{grid-template-columns:auto 1fr 1fr}.dispatch-row strong{grid-column:span 2}.account-tabs button{padding:8px}.dispatch-actions{justify-content:flex-start}}

.account-page,.town-square{padding-top:34px;padding-bottom:34px}
.account-page h1,.square-heading h1{margin:4px 0 12px}
#account-form{max-width:460px;border:1px solid var(--line);padding:16px}
.office-account{display:inline-block;margin-top:12px}
.square-heading p:last-child{color:var(--muted)}
.town-street{margin-top:28px;padding:clamp(24px,7vw,80px) 16px 26px;border:1px solid var(--line);background:linear-gradient(0deg,#22271c 0 28%,transparent 28%),radial-gradient(ellipse at 75% 6%,#c68a56 0%,#75563f 25%,#253a3b 74%);overflow:hidden}
.street-buildings{display:grid;grid-template-columns:repeat(3,1fr);align-items:end;gap:clamp(8px,3vw,32px);position:relative}
.street-buildings>a{display:grid;justify-items:center;gap:4px;min-width:0;text-align:center;color:var(--ink);text-decoration:none}
.street-buildings>a:hover strong,.street-buildings>a:focus-visible strong{color:var(--gold)}
.street-buildings small{color:var(--muted)}
.street-building{display:block;position:relative;isolation:isolate;width:min(100%,210px);height:clamp(80px,18vw,175px);margin-bottom:6px;color:#f9db93;background:repeating-linear-gradient(0deg,#0003 0 2px,transparent 2px 13px),var(--facade);border:4px solid #26211b;border-top:0;box-shadow:6px 8px #161c15}
.street-building::before{content:"";position:absolute;inset:-20% -7% 67%;background:repeating-linear-gradient(0deg,#0003 0 2px,transparent 2px 8px),var(--roof);clip-path:polygon(50% 0,100% 85%,100% 100%,0 100%,0 85%)}
.street-building::after{content:"";position:absolute;inset:54% 10% auto;height:19%;border-inline:clamp(5px,2vw,22px) solid #eab87a;pointer-events:none}
.street-building i{position:absolute;z-index:1;top:34%;left:50%;transform:translateX(-50%);padding:0 8px;font-style:normal;background:#2c251c;border:2px solid #ba905b}
.street-building b{position:absolute;inset:auto 35% 0;height:40%;border:3px solid #28221a;border-bottom:0;border-radius:45% 45% 0 0;background:#503a28}
.guild-building{--facade:#886343;--roof:#693b31}
.bank-building{--facade:#797664;--roof:#434e44;height:clamp(74px,16vw,155px)}
.office-building{--facade:#80684a;--roof:#394e56;height:clamp(86px,19vw,183px)}
@media(max-width:480px){.street-buildings strong{font-size:.86rem}.street-buildings small{font-size:.72rem}.town-street{padding-inline:8px}.top nav{flex-wrap:wrap;justify-content:flex-end}}


.town-street{background:url("/town-grass.png") repeat #314a27;background-size:48px;image-rendering:pixelated;padding-top:36px}
.street-buildings>a{background:url("/town-path.png") repeat #453b2a;background-size:48px;border:1px solid #29291e;padding:12px 4px}
.street-buildings>a strong,.street-buildings>a small{color:#fff2cb;text-shadow:1px 1px #171912}
.street-building{width:min(100%,210px);height:auto;aspect-ratio:70/82;background:var(--building) center/contain no-repeat;border:0;box-shadow:none}
.street-building::before,.street-building::after{display:none}
.guild-building{--building:url("/guild.png")}
.bank-building{--building:url("/bank.png")}
.office-building{--building:url("/office.png")}
.market-list-form{display:flex;align-items:end;flex-wrap:wrap;gap:12px;margin:16px 0;padding:10px;border:1px solid var(--line)}
.market-list-form label{margin:0}
.market-list-form input{max-width:145px}
.market-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px;border-bottom:1px solid var(--line)}
.market-row div{flex:1 1 200px}
.market-row small{display:block;color:var(--muted)}
.market-row img{width:32px;height:32px;image-rendering:pixelated}
.street-buildings{grid-template-columns:repeat(4,1fr)}
.market-building{--building:url("/market.png")}
@media(max-width:600px){.street-buildings{grid-template-columns:repeat(2,1fr)}}
.client-download{display:flex;align-items:center;gap:12px 18px;flex-wrap:wrap;margin:18px 0;color:var(--muted);font-size:.9rem}
.client-download a{display:inline-block}
.village-map{position:relative;max-width:928px;margin:20px auto;border:2px solid #75603d;box-shadow:0 12px 32px #0006}
.village-map img{display:block;width:100%;height:auto;image-rendering:pixelated}
.village-place{position:absolute;display:flex;align-items:end;justify-content:center;width:21%;height:31%;transform:translateX(-50%);padding-bottom:2px;color:#fff2cb;text-align:center;font-weight:700;font-size:clamp(10px,1.6vw,17px);text-shadow:0 2px 2px #080c09,1px 0 #080c09,-1px 0 #080c09;background:linear-gradient(transparent 86%,#10140eda)}
.village-place:hover,.village-place:focus-visible{background:linear-gradient(transparent 45%,#10140eda);color:var(--gold)}
.village-guild{left:24.5%;top:20%}
.village-bank{left:67%;top:14%}
.village-office{left:83%;top:45%}
.village-market{left:22.5%;top:55%}
.workshop-links{display:flex;gap:8px;flex-wrap:wrap}.workshop-links a{display:inline-block}
