*{box-sizing:border-box} :root{--ink:#20373b;--paper:#fbf3df;--red:#9c402b;--gold:#eac782;--night:#172b33;--line:#bcaf93}body{margin:0;background:#e9dfc8;color:var(--ink);font:16px/1.65 system-ui,"PingFang SC",sans-serif}header,footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px max(5vw,20px);background:var(--night);color:#f4e4c6;font-size:.78rem;letter-spacing:.12em}.brand{color:var(--gold);text-decoration:none;font-weight:bold}main{max-width:1160px;margin:auto;padding:clamp(15px,3vw,42px);min-height:78vh}h1,h2,h3,.serif,blockquote{font-family:"Songti SC","Noto Serif C",Georgia,serif}h1,h2,h3,p{margin:0 0 .65em}h1{font-size:clamp(44px,6.5vw,88px);letter-spacing:.03em;line-height:1.15}h2{font-size:clamp(27px,4vw,44px);line-height:1.25}h3{font-size:1.3rem}button,select{font:inherit;color:inherit}button{cursor:pointer;border:1px solid var(--line);border-radius:3px;background:var(--paper);padding:.55em 1em}button:hover,button:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #cc8a42;outline-offset:2px}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--red);color:#fff6df;border-color:var(--red);font-weight:650}button.quiet{background:transparent}.hero{display:grid;grid-template-columns:1fr 1.22fr;background:var(--night);color:var(--paper);border:1px solid #405453;box-shadow:0 8px 24px #29363822}.hcopy{padding:clamp(22px,3vw,42px);align-self:center}.hero img{width:100%;height:100%;min-height:290px;object-fit:cover}.eyebrow,.serial{font:700 .72rem/1.6 ui-monospace,monospace;letter-spacing:.16em;color:var(--red)}.hero .eyebrow{color:var(--gold)}.strap{color:#e7d9bd}.paper{background:var(--paper);border:1px solid var(--line);padding:clamp(16px,2.6vw,30px);margin-top:18px}.form{display:grid;grid-template-columns:1fr 1fr auto;gap:14px;align-items:end}label{display:grid;font-weight:650;gap:.25em}select{background:#fff8e9;border:1px solid var(--line);border-radius:3px;padding:.55em;width:100%}.fine{font-size:.88rem;color:#506362}.board{display:grid;grid-template-columns:1.16fr 1fr;gap:18px;align-items:start}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.station{padding:6px;background:#f3e8cf;text-align:left;display:grid;gap:3px}.station strong,.station small{margin-left:3px}.station small{font-size:.75rem}.station.visited{background:#e0e8db}.station[aria-pressed=true]{border:2px solid var(--red);padding:5px}.stamp{display:block;aspect-ratio:1;background-image:url("art/stamps.jpg");background-size:300% 200%;background-position:var(--x) var(--y)}.kicker{display:flex;gap:12px;flex-wrap:wrap;justify-content:space-between;align-items:center}.status{display:flex;gap:10px;flex-wrap:wrap}.status span,.tag{background:#dbe3d4;padding:3px 9px;border-radius:2px}.top{border-top:5px solid var(--red)}.ribbon{margin:9px 0;border-block:1px dashed var(--line);padding:8px 0}.options{display:grid;gap:8px}.options button{text-align:left}.options b{color:var(--red);margin-right:8px}blockquote{font-size:1.14em;margin:1em 0;padding-left:14px;border-left:3px solid #cb9972}.linked{background:#dee8dd;padding:10px}.receipt{background:#f3e7ce;border:1px dashed #a9876c;padding:15px;margin:12px 0}.receipt strong{color:var(--red)}.postmarks{display:flex;gap:6px;flex-wrap:wrap}.mini{width:52px}.archive{padding:8px 0;border-bottom:1px dashed var(--line)}summary{cursor:pointer}footer{align-items:flex-start;flex-wrap:wrap}footer details{max-width:32em}button+button{margin-left:0}.endgrid{display:grid;grid-template-columns:1fr 170px;gap:16px}.endgrid img{width:100%}.msg{font-weight:bold;color:#93472d} @media(max-width:760px){.hero,.board{grid-template-columns:1fr}.hero img{min-height:0;max-height:270px}.form{grid-template-columns:1fr 1fr}.form button{grid-column:1/-1}.board{gap:0}.station small{font-size:.72rem}.hcopy{padding:18px}.hero img{order:-1}.endgrid{grid-template-columns:1fr}.endgrid img{display:none}}@media(max-width:430px){header{letter-spacing:0}.form{grid-template-columns:1fr}.cards{grid-template-columns:repeat(3,minmax(0,1fr))}.station{font-size:.87rem}.paper{padding:12px}.status{gap:4px;font-size:.8rem}.hero img{max-height:190px}}

.jobs{display:grid;grid-template-columns:minmax(105px,180px) 1fr;gap:18px;align-items:center;border-block:1px dashed var(--line);padding:12px 0;margin-bottom:16px}.jobs img{display:block;width:100%;border-radius:3px}.jobs p{margin:.45em 0 0}.jobs label{max-width:34em}@media(max-width:500px){.jobs{grid-template-columns:86px 1fr;gap:8px}.jobs select{font-size:14px}}

.draft-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(5.8em,1fr));gap:8px}.draft-fields label{min-width:0;font-size:.9em}#draft-result .archive{font-size:.9em}

.relics{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr));gap:12px}.relic{border:1px dashed var(--line);padding:12px}.relic-art{height:clamp(100px,14vw,160px);margin-bottom:8px;border-radius:3px}.unsealed{background-image:url("art/keepsakes.jpg");background-size:300% 100%;background-position:var(--offset) center}.sealed{display:grid;place-items:center;background:#e6ddc9;color:#735d48;font-size:2rem}.relic p{font-size:.9rem}

.letter-nav{display:flex;flex-wrap:wrap;gap:8px;margin-top:1em}.letter-nav button{min-height:44px}#letter:focus-visible{outline:3px solid var(--red);outline-offset:2px}

.salvage{margin:1rem 0;padding:1rem;border:1px dashed var(--line);background:#eee6d2}.salvage img{display:block;width:100%;max-height:12rem;object-fit:cover;margin-bottom:.75rem}
.action-launch{display:inline-block;margin:.5em 0}.play-note{display:block;color:#efd9a9}.combat{max-width:900px;margin:auto;padding:clamp(10px,2vw,22px);background:#172d36;color:#f9ebc9;border:2px solid #bc9c67}.fight-head,.fight-stats,.helm,.triggers{display:flex;align-items:center;justify-content:space-between;gap:.5em}.fight-head small{color:#e9be78;letter-spacing:.18em}.fight-head h2{margin:0}.combat button{color:#253943}.fight-stats{margin:.6em 0;padding:.5em 0;border-block:1px solid #62716a;font-size:clamp(12px,2vw,16px)}#hull{color:#ffc69e}.waters{position:relative;background:#183943 url("art/canal.jpg") center/cover;isolation:isolate}.waters:before{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#102b3375,#13293822);pointer-events:none}.waters canvas{position:relative;display:block;width:100%;height:auto;touch-action:none}.fight-message{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:10px;background:#13242de8}.fight-message[hidden]{display:none}.fight-message strong{font:700 clamp(21px,4vw,40px)/1.2 Georgia,serif;color:#ffda90}.fight-message p{max-width:28em;margin:.5em 0;font-size:clamp(13px,2vw,17px)}.fight-message button.primary{color:#fff}.helm{margin:.7em 0}.pad{display:grid;grid-template-columns:repeat(3,minmax(40px,52px));gap:3px}.pad button,.triggers button{touch-action:none;user-select:none;-webkit-user-select:none;min-height:44px;padding:4px}.pad button:first-child{grid-column:2}.pad button:nth-child(2){grid-column:1}.triggers button{background:#f5c888;min-width:48px;font-weight:bold}.combat .hint{color:#dfdfcd;font-size:.86em}@media(max-width:480px){main:has(.combat){padding:4px}.combat{padding:7px}.fight-message button{padding:.3em .8em}}

#fight-boat{border-left:2px solid #c69857;padding:.4em .75em;background:#233d46;color:#eddcb6;font-size:.88em}#fight-boat label{display:flex;align-items:center;gap:.6em}#fight-boat select{width:auto;padding:.2em .5em;color:#20373b}#fight-boat small{display:block;margin-top:.25em}

.single-helm{display:inline-flex;align-items:center;gap:.55em;min-height:44px;margin:.25em 0;padding:0 .8em;border:1px solid #87988b;border-radius:3px;font-weight:600;cursor:pointer}.single-helm input{width:1.2em;height:1.2em;accent-color:#cda45d}.single-helm:has(:checked){background:#f3d393;color:#172d36}

#impact-cue:not(:empty){position:absolute;left:50%;bottom:3%;transform:translateX(-50%);white-space:nowrap;pointer-events:none;padding:2px 9px;border:1px solid #e0cc95;border-radius:3px;color:#fff2d0;background:#112630ec;font-size:clamp(12px,2vw,16px)}

#fight-route{padding:.35em .75em;background:#293e43;color:#f1dfbc;font-size:.86em}#fight-route label{display:flex;align-items:center;gap:.6em}#fight-route select{width:auto;padding:.2em .5em;color:#20373b}#fight-route small{display:block}
