*{box-sizing:border-box}body{margin:0;background:#faf7e9;color:#192d32;font:16px/1.5 'Trebuchet MS',Arial,sans-serif}header,main{max-width:1540px;margin:auto;padding-inline:clamp(18px,4vw,70px)}header{display:flex;align-items:center;justify-content:space-between;padding-block:17px;border-bottom:1px solid #a6afa2}.brand,nav a,footer a{color:inherit;text-decoration:none}.brand{display:flex;gap:10px;align-items:center;font-size:22px;font-weight:900;letter-spacing:-1px}.brand b{display:grid;place-items:center;background:#ffbd45;color:#24394b;border:2px solid;border-radius:10px;font-size:30px;width:38px;height:38px;line-height:1;transform:rotate(-7deg)}nav{display:flex;gap:26px;align-items:center;font-size:14px;font-weight:bold}.contact{border:1.5px solid;border-radius:24px;padding:7px 16px}.intro{display:flex;align-items:end;justify-content:space-between;gap:25px;padding:36px 0 24px}.eyebrow,.maptag,small,footer{font:700 11px/1.45 'Courier New',monospace;letter-spacing:1.4px}.eyebrow{margin:0 0 8px}.intro h1{font-family:Georgia,serif;letter-spacing:-.072em;line-height:.98;font-size:clamp(56px,6.7vw,106px);margin:0}.intro h1 span{color:#ed6945}.lead{max-width:330px;font-size:16px;margin:0 0 3px}.game{display:grid;grid-template-columns:minmax(0,1fr) clamp(255px,22vw,340px);border:2px solid #21332e;border-radius:22px;overflow:hidden;box-shadow:0 6px #253b33;background:#fffbed}.world{position:relative;background:#bde6d7;overflow:hidden;min-height:470px;aspect-ratio:1.6}.world canvas{display:block;width:100%;height:100%;position:absolute;inset:0}.maptag,.legend{position:absolute;z-index:2;background:#fffbe9;border:1.5px solid #253b33;border-radius:20px;display:flex;gap:8px;align-items:center;padding:7px 12px}.maptag{top:16px;left:16px;font-size:10px}.legend{bottom:15px;left:15px;font-size:12px;font-weight:bold}.maptag i,.eyebrow i,.legend i{display:inline-block;background:#419365;border:1px solid;border-radius:50%;width:9px;height:9px}.legend i{background:#ef573f}.label{position:absolute;transform:translate(-50%,-100%);background:#fffcdf;color:#1a322d;border:1.5px solid;border-radius:7px;box-shadow:1px 2px #314838;padding:3px 7px;white-space:nowrap;font:800 clamp(9px,.8vw,13px)/1.15 'Trebuchet MS',Arial;pointer-events:none}.label.active{background:#ffdb62}aside{position:relative;border-left:2px solid #253b33;padding:clamp(20px,2.2vw,35px);display:flex;flex-direction:column;background:#fff8dc}.illustration{display:flex;align-items:center;height:80px;padding-left:4px}#bigdie{font:70px/.8 Georgia,serif;color:#263a91;transform:rotate(-10deg);text-shadow:2px 3px #b5c8d8}h2{font:700 clamp(32px,3vw,52px)/1 Georgia,serif;letter-spacing:-.055em;margin:0 0 10px}#story{margin:0 0 8px;font-size:15px}#project{color:#284aa6;font-weight:bold;font-size:14px}.controls{margin-top:auto;padding-top:16px}#status{font-size:12px;margin:0 0 6px}button{font:inherit;cursor:pointer}#roll{width:100%;display:flex;justify-content:space-between;border:2px solid #1f3039;border-radius:11px;background:#354fb6;color:white;font-weight:bold;padding:12px 16px;box-shadow:0 3px #1f3039}#roll:hover{background:#243f9a}#roll:disabled{opacity:.72}.progress{display:flex;gap:4px;margin:17px 0 2px}.progress i{flex:1;height:5px;border-radius:4px;background:#dbd9c5}.progress i.on{background:#42806b}small{font-size:10px;letter-spacing:.3px}footer{display:flex;justify-content:space-between;padding:24px 0;font-size:11px;letter-spacing:.3px}a:focus-visible,button:focus-visible{outline:3px solid #dd662c;outline-offset:3px}@media(max-width:850px){.intro{align-items:start}.lead{max-width:240px}.game{grid-template-columns:1fr}.world{min-height:0;aspect-ratio:1.65}aside{border-left:0;border-top:2px solid;display:block;padding:20px}.illustration{float:right;height:62px}#bigdie{font-size:55px}.controls{padding-top:6px}.lead{font-size:14px}}@media(max-width:590px){.brand{font-size:17px}.brand b{width:30px;height:30px;font-size:25px}nav{gap:12px;font-size:12px}.contact{display:none}.intro{display:block;padding-top:24px}.lead{margin-top:12px;max-width:360px}.world{aspect-ratio:1.24}.label{font-size:8px;padding:2px 4px}.maptag,.legend{font-size:9px;padding:4px 8px}.legend{bottom:7px;left:8px}.maptag{top:7px;left:8px}footer{flex-wrap:wrap;gap:8px}}
body{background:#203744}header{max-width:none;background:#172e36;color:#fff8df;border:0;padding-block:13px}.brand b{box-shadow:2px 2px 0 #0b1721;color:#26383b}.contact{display:inline-block}.game{display:block;position:relative;border:0;box-shadow:none;border-radius:0;background:#8bd8de}main{padding:0;max-width:none}.world{height:calc(100svh - 63px);min-height:600px;width:100%;aspect-ratio:auto;background:linear-gradient(#91cedf,#f1e9cb 84%);touch-action:pan-y}.world canvas{cursor:grab}.world canvas:active{cursor:grabbing}.mast{position:absolute;top:4.5%;left:4%;pointer-events:none;color:#192a3a;transform:rotate(-3deg)}.mast p{font:900 10px/1.3 'Courier New',monospace;letter-spacing:1.7px;background:#fff4a4;display:inline-block;padding:4px 8px;border:1.5px solid;border-radius:4px}.mast h1{font:1000 clamp(50px,6.8vw,105px)/.79 'Arial Rounded MT Bold','Arial Black',sans-serif;letter-spacing:-.085em;color:#fff1bd;-webkit-text-stroke:1.4px #253343;text-shadow:2px 3px #253343,4px 6px #253343;margin:3px 0}.mast em{font-style:normal;color:#ffad58}.camera{position:absolute;top:20px;right:3%;display:flex;gap:7px}.camera button,nav button{border:1.5px solid #253343;border-radius:20px;background:#fff9df;color:#20313b;font-size:13px;font-weight:bold;padding:7px 13px;box-shadow:0 2px #253343}nav button{border:0;background:transparent;color:inherit;box-shadow:none}.legend{bottom:212px;left:auto;right:3%;background:#263843;color:#fff;border:0;opacity:.86}aside{position:absolute;bottom:22px;left:4%;right:4%;max-width:1120px;margin:auto;border:2px solid #263843;border-radius:20px;box-shadow:0 5px #263843;display:grid;grid-template-columns:1fr 205px;gap:34px;padding:17px 23px;background:#fff9e9}.controls{padding:0;align-self:center}.dicebox{display:flex;align-items:center;gap:10px;justify-content:center}.progress{margin:3px 0 0}.progress i{min-width:12px}.eyebrow{color:#3b6652}.storybox h2{font-size:clamp(28px,3vw,44px);margin-bottom:6px}.storybox p{max-width:790px}#story{font-size:15px;line-height:1.4}#bigdie{font-size:47px;margin:3px 0 8px}#status{text-align:center;margin-top:6px}.label{background:#fff9d9;box-shadow:2px 3px #354a42;z-index:1}.mast,.camera{z-index:2}dialog{width:min(420px,92vw);border:2px solid #23333d;border-radius:19px;background:#fff9e8;color:#23333d;box-shadow:5px 7px #23333d;padding:25px}dialog::backdrop{background:#12324490;backdrop-filter:blur(4px)}.toolshead{display:flex;align-items:center;justify-content:space-between}#dismiss{border:0;background:transparent;font-size:28px}dialog ul{list-style:none;padding:0}dialog li{padding:10px 0;border-bottom:1px solid #ccc6ac;display:flex;gap:12px;justify-content:space-between}dialog li span,.credit{font-size:13px}.credit{margin-bottom:0}@media(max-width:650px){.world{height:66svh;min-height:390px}.mast{top:8px;left:16px}.mast h1{font-size:48px}.mast p{font-size:8px}.camera{right:9px;top:13px;flex-direction:column}.camera button{font-size:11px}.legend{bottom:8px}.game aside{position:relative;bottom:auto;left:auto;right:auto;display:block;border-radius:0;border-width:2px 0 0;padding:15px;box-shadow:none}.dicebox{float:left;margin:8px 12px 0 0}.controls{margin-top:12px;display:flow-root}#roll{width:auto;margin-left:auto;min-width:40%}#status{text-align:right}.label{font-size:10px}header{padding-block:9px}}
@font-face{font-family:Trail;src:url(trail-display.ttf) format('truetype');font-weight:800;font-display:swap}
@font-face{font-family:DM;src:url(trail-body.ttf) format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:DM;src:url(trail-bold.ttf) format('truetype');font-weight:700;font-display:swap}
body,button,nav,header,#story,.label,.legend,.eyebrow,.mast p,small,.credit,dialog{font-family:DM,sans-serif}
.brand,.mast h1,.storybox h2,dialog h2,#roll{font-family:Trail,DM,sans-serif;font-weight:800}
.mast h1{letter-spacing:-.065em;font-size:clamp(48px,6.3vw,98px);color:#fff4c7;-webkit-text-stroke:0;text-shadow:1px 2px #28265b,2px 4px #28265b,3px 6px #28265b}
.mast em{color:#ffb358}.brand b{background:#ffbd30}header{background:#26234a}.storybox h2,dialog h2{letter-spacing:-.045em;color:#28234a}#roll{background:#6241ce}.camera button[aria-pressed=true]{background:#ffcf47}.progress i.on{background:#8855d5}.eyebrow,.mast p{font-weight:700;letter-spacing:1.25px}
header{position:relative;background:#a9efda;color:#123f48;border-bottom:4px solid #147872}
header .brand,header #kit{color:#123f48}
header .brand b{background:#ff805a;color:#4d2842;border-color:#4d2842;box-shadow:2px 2px #4d2842}
header .contact{background:#ffe482;color:#493644;border-color:#493644;box-shadow:2px 2px #493644}
header #kit{background:transparent;border-color:#377e78}
header :focus-visible{outline:3px solid #6929a9;outline-offset:3px}
.mast h1{color:#ffec93;text-shadow:1px 2px #214256,2px 4px #214256,3px 6px #214256}.mast h1 em{color:#ff9d79}
.label,#title{font-family:var(--letter,Trail),sans-serif}
.sign-0{--letter:Georgia;--ink:#293d61;--paper:#ffdda0;--size:17px;font-style:italic}
.sign-1{--letter:Trail;--ink:#751b39;--paper:#ffb2a6;--size:20px}
.sign-2{--letter:Menlo,monospace;--ink:#12425a;--paper:#a0f4ed;--size:14px;letter-spacing:-.05em}
.sign-3{--letter:'Arial Rounded MT Bold',DM;--ink:#502c78;--paper:#e1cbff;--size:16px}
.sign-4{--letter:'Trebuchet MS';--ink:#802e1e;--paper:#ffc178;--size:19px;font-style:italic}
.sign-5{--letter:Palatino,Georgia;--ink:#285044;--paper:#deefab;--size:17px}
.sign-6{--letter:'Avenir Next',DM;--ink:#143c76;--paper:#b3e9ff;--size:18px;letter-spacing:.015em}
.label,.label.active{color:var(--ink);background:var(--paper);font-size:clamp(11px,1.35vw,var(--size));border:2px solid var(--ink);border-radius:4px;padding:.27em .55em;box-shadow:0 3px var(--ink)}
.sign-1.label,.sign-4.label{border-radius:50px}.sign-6.label,.sign-0.label{border-radius:14px 14px 3px 3px}.label.active{outline:3px solid #fff5cd}
#title[class^=sign]{color:var(--ink);font-size:clamp(25px,calc(var(--size)*2.05),43px)}
#dice-stage{position:absolute;inset:0;z-index:4;display:grid;place-items:center;pointer-events:none;background:radial-gradient(ellipse at center,#fff9d94a,transparent 55%)}
#dice-stage[hidden]{display:none}#dice-face{width:clamp(92px,10vw,138px);aspect-ratio:1;background:#fff5c9;border:4px solid #302f49;border-radius:22%;box-shadow:5px 8px 0 #ff986b,7px 11px 0 #302f49,9px 17px 20px #15374a44;padding:16%;padding:clamp(13px,1.5vw,20px);display:grid;grid-template:repeat(3,1fr)/repeat(3,1fr);gap:8%;animation:toss .54s ease-in-out infinite alternate}
#dice-face i{border-radius:50%;background:#a62c52;opacity:0}
#dice-face:is([data-face="1"],[data-face="3"],[data-face="5"]) i:nth-child(5),#dice-face:not([data-face="1"]) i:is(:first-child,:last-child),#dice-face:is([data-face="4"],[data-face="5"],[data-face="6"]) i:is(:nth-child(3),:nth-child(7)),#dice-face[data-face="6"] i:is(:nth-child(4),:nth-child(6)){opacity:1}
@keyframes toss{from{transform:translateY(-20px) rotate(-18deg) scale(.95)}to{transform:translateY(3px) rotate(14deg) scale(1.05)}}
#dice-stage.landed #dice-face{animation:none;transform:rotate(-5deg)}
@media(prefers-reduced-motion:reduce){#dice-face{animation:none}}
.mast h1{font-size:clamp(38px,4.9vw,74px)}
@media(max-width:650px){.mast h1{font-size:clamp(29px,7.6vw,43px)}}
#pawn-picker{border:0;padding:0;margin:9px 0 0;display:flex;flex-wrap:wrap;gap:4px 8px}
#pawn-picker[hidden]{display:none}
#pawn-picker legend{font-weight:700;font-size:12px}
#pawn-picker label{display:inline-flex;align-items:center;gap:4px;cursor:pointer;padding:4px;font-size:12px}
#pawn-picker input{appearance:none;margin:0;width:19px;height:19px;border-radius:50%;background:var(--swatch);border:1px solid #413948;cursor:pointer}
#pawn-picker input:checked{box-shadow:inset 0 0 0 3px #fff5da,0 0 0 1px #413948}
#pawn-picker input:focus-visible{outline:3px solid #14529a;outline-offset:3px}
#group-chat{margin-top:10px;max-width:560px}#group-chat[hidden]{display:none}
#group-chat summary{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:6px 12px;background:#eadfff;color:#41265c;border:2px solid #674087;border-radius:14px 14px 14px 3px;padding:9px 13px;cursor:pointer;font-weight:700}
#group-chat summary::-webkit-details-marker{display:none}
#group-chat summary:focus-visible{outline:3px solid #00698a;outline-offset:3px}
.chat-action{font-size:12px;text-decoration:underline}
#group-chat[open] .chat-action{display:none}
.chat-task{margin-top:8px;border:1px solid #dcdbe1;border-radius:12px;background:white;color:#28282d;box-shadow:0 3px 12px #302b4012;padding:12px 16px;font:14px/1.35 DM,sans-serif}
.task-path{display:flex;align-items:center;flex-wrap:wrap;gap:7px;color:#626168;font-size:12px}
.task-path small{margin-left:auto;font:400 11px DM,sans-serif;letter-spacing:0}
.task-project-icon{color:#945cb6;font-weight:bold}
.chat-task h3{display:flex;align-items:center;gap:9px;margin:10px 0;font:700 clamp(17px,2vw,22px)/1.2 DM,sans-serif}
.task-check{display:grid;place-items:center;width:19px;height:19px;flex:none;border:1.5px solid #a7a4ad;border-radius:50%;font:13px DM;color:#827d88}
.chat-task dl{display:grid;gap:5px;margin:0}
.chat-task dl div{display:grid;grid-template-columns:100px 1fr;align-items:center}
.chat-task dt,.task-description b{font-size:12px;color:#68656e}
.chat-task dd{display:flex;align-items:center;gap:7px;margin:0;font-size:13px}
.task-avatar{display:grid;place-items:center;border-radius:50%;width:23px;height:23px;background:#e3d7fb;color:#593878;font-size:10px;font-weight:bold}
.task-pending{background:#fff0bf;color:#69501a;font-size:12px;border-radius:12px;padding:2px 9px}
.task-description{margin-top:9px;padding-top:6px;border-top:1px solid #e9e7eb}.task-description p{font:13px/1.4 DM,sans-serif;margin:2px 0}
#kelowna-result{margin-top:10px;border-left:4px solid #ed8543;padding:2px 12px;color:#693323}#kelowna-result p{margin:0 0 3px;font-weight:700}#kelowna-result strong{font-size:13px}

.approval-footer{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:9px}
#approve-proof{font:700 13px DM,sans-serif;color:white;background:#256447;border:1px solid #184932;border-radius:6px;padding:8px 15px;cursor:pointer}
#approve-proof:focus-visible{outline:3px solid #52419f;outline-offset:2px}
#approve-proof:disabled,.task-pending.approved{background:#d5f2de;color:#235539;border-color:#b0d6b9;cursor:default}
#approval-activity{margin:0;font:13px DM,sans-serif;color:#235539}

#hello{font:700 14px DM,sans-serif;cursor:pointer}#close-hello{background:transparent;border:0;font-size:28px;cursor:pointer}#hello-title{margin:0}
#contact-card dt{font-weight:700;margin-top:12px}#contact-card dd{margin:0}#contact-card a{color:#165852;text-underline-offset:3px}
#walk{cursor:pointer;font:700 13px DM,sans-serif;color:#264b46}
#field-notes{width:min(540px,92vw)}#walk-title{margin:0}#end-walk{background:none;border:0;font-size:28px;cursor:pointer}
.scene-flyers{background:#bb8055;position:relative}.scene-flyers i,.scene-flyers b{position:absolute;padding:5px;font:800 15px/1 Trail,sans-serif;transform:rotate(-9deg);background:#fbe089;left:9%;top:12%;border-bottom:6px dashed #bb8055}.scene-flyers b{background:#fc9d9c;left:auto;right:8%;top:37%;transform:rotate(6deg)}
.kits-noticeboard{margin:14px 0 0}.kits-noticeboard .scene-flyers{height:140px;border:6px solid #846143;border-radius:3px;background-color:#bb8055;background-image:radial-gradient(#a36c46 1px,transparent 1px);background-size:6px 6px}
.kits-noticeboard .scene-flyers i,.kits-noticeboard .scene-flyers b{font-size:23px;padding:8px;box-shadow:1px 2px 3px #614d3c55}
.kits-noticeboard figcaption{margin-top:13px}.kits-noticeboard figcaption p{margin:5px 0}
#survey{display:grid;gap:4px;cursor:pointer;text-align:left;background:#fff4bf;border:1px solid #caa04c;border-radius:6px;padding:9px 13px;margin-top:9px;color:#42382b}
#survey[hidden]{display:none}#survey small{font:700 11px DM,sans-serif;letter-spacing:0}#survey strong{font:700 17px DM,sans-serif}#survey[aria-pressed=true]{background:#def3dc}#survey-note{font-size:13px}
@media(max-width:650px){#walk{display:block;top:auto;bottom:8px;left:8px;right:auto}}
.board-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 4%;background:#fff2ca;color:#234954;border-bottom:2px solid #305965}
.board-bar .mast,.board-bar .camera{position:static;transform:none}
.board-bar .mast h1{font-size:clamp(24px,3.3vw,55px);letter-spacing:-.055em;line-height:1;color:#24505a;text-shadow:none;margin:0}
.board-bar .mast em{color:#a4482e}
.board-bar .camera{display:flex;flex-direction:row;align-items:center;gap:6px;flex-wrap:wrap}
.board-bar #walk{border:1.5px solid #254a45;background:#d8f2dc;color:#22463e;opacity:1;font-weight:700;position:static}
.world{height:clamp(280px,calc(100svh - 360px),700px);min-height:0}
.game aside{position:relative;inset:auto;max-width:1180px;width:calc(100% - 8%);margin:12px auto 18px}
dialog{max-height:85svh;overflow:auto}
@media(max-width:650px){.board-bar{gap:8px;padding:9px 14px}.board-bar .camera button{padding:5px 8px}.world{height:clamp(250px,40svh,420px)}.game aside{width:100%;margin:0}header nav{gap:8px}}

.world.key-needed .label{font-size:0;border-radius:50%;padding:3px;min-width:21px;text-align:center}
.world.key-needed .label::after{content:attr(data-number);font:700 12px/1 DM,sans-serif}
.world.key-needed .label[hidden]{display:none}

.ferry-stop{margin:14px 0 20px}.ferry-stop h3{margin:0;font:800 22px Trail,DM,sans-serif}.ferry-stop p{margin:6px 0}
.ferry-deck{display:flex;justify-content:space-around;align-items:flex-end;min-height:90px;padding-bottom:14px;background:linear-gradient(#a4dff1 0 50%,#48bfc6 50% 61%,#eff7da 61% 65%,#28889b 65% 80%,#fff4ce 80% 84%,#c69061 84%);border-radius:8px}
.ferry-deck button{font-size:27px;border:2px solid #245761;border-radius:50px;background:#fff1bf;cursor:pointer;padding:3px 11px}.ferry-deck button[aria-expanded=true]{background:#b4f0d8}
.sightings p{font-size:14px}.sightings #ferry-note{border-left:3px solid #da8c37;padding-left:10px;font-style:italic}

/* Keep the same reading rhythm across the different landmark typefaces. */
.game aside{padding:clamp(22px,2.5vw,34px) clamp(20px,3vw,44px);column-gap:clamp(28px,4vw,56px)}
.storybox{min-width:0}
.storybox .eyebrow{margin:0 0 12px;line-height:1.4}
.storybox #title{margin:0 0 14px;line-height:1.13;text-wrap:balance}
.storybox #story{max-width:67ch;margin:0;line-height:1.58;text-wrap:pretty}
.storybox #project:not([hidden]){display:inline-block;margin-top:14px}
.storybox :is(#pawn-picker,#survey,#group-chat,#kelowna-result){margin-top:16px}
@media(max-width:650px){
  .game aside{padding:22px 18px 24px}
  .storybox .eyebrow{margin-bottom:10px}
  .storybox #title{margin-bottom:12px}
  .game aside .controls{margin-top:20px}
}

.click-cue{display:inline-block;color:#ffe194;margin-right:4px}
/* The halo follows each untouched control and never changes its layout. */
:is(button,summary):has(.click-cue){box-shadow:0 0 0 2px #ac6815}
@media(prefers-reduced-motion:no-preference){
  :is(button,summary):has(.click-cue){animation:invite-click 1.65s ease-out infinite}
}
@keyframes invite-click{
  0%{box-shadow:0 0 0 1px #995816,0 0 0 2px #ffb52de6}
  75%,100%{box-shadow:0 0 0 1px #995816,0 0 0 10px #ffb52d00}
}
.ferry-deck .click-cue,#survey .click-cue,.chat-action .click-cue{border-radius:50%;background:#324858;color:#ffe194;width:1.45em;line-height:1.45;text-align:center;font:700 13px/1.45 DM,sans-serif;vertical-align:middle}

header{padding-block:6px}.board-bar{padding-block:6px}.board-bar .mast h1{font-size:clamp(23px,2.65vw,40px)}
.world{height:clamp(310px,calc(100svh - 275px),820px)}
.game aside{padding-block:clamp(14px,1.2vw,20px);margin-block:8px 12px}
.storybox{position:relative}.storybox:has(#story-toggle:not([hidden])) .eyebrow{padding-right:84px}
#story-toggle{position:absolute;right:0;top:-3px;padding:3px 6px;border:0;background:transparent;color:#365c53;cursor:pointer;font:700 12px DM,sans-serif}
.storybox:has(#story-body[hidden]) #title{margin-bottom:0}
@media(max-width:650px){.world{height:clamp(280px,49svh,480px)}.game aside{margin:0;padding-block:15px}.game aside .controls{margin-top:12px}.board-bar{gap:5px}}
