:root{--ink:#1c2430;--ink-soft:#3a4658;--paper:#e8f4f8;--sky:#6eb6d9;--sea:#2f8f9d;--sea-deep:#1f6b78;--grass:#3f9a5c;--sand:#d9b48a;--cliff:#b86b45;--gold:#e2b84a;--danger:#c44b4b;--hud:#1c2430e0;--pixel:4px;--font-brand:"Press Start 2P", monospace;--font-body:"Pixelify Sans", system-ui, sans-serif;--ease-snap:cubic-bezier(.2, .8, .2, 1)}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:3.5rem}body{color:var(--ink);font-family:var(--font-body);background:radial-gradient(ellipse 120% 80% at 50% -10%, #9fd0e8 0%, transparent 55%), linear-gradient(180deg, var(--sky) 0%, var(--paper) 28%, #d5ebe8 100%);image-rendering:pixelated;margin:0;font-size:1.2rem;line-height:1.55;overflow-x:hidden}img{max-width:100%;height:auto;display:block}a{color:var(--sea-deep);text-underline-offset:3px}a:hover,a:focus-visible{color:var(--cliff)}.skip-link{background:var(--ink);color:#fff;z-index:100;padding:.75rem 1rem;position:absolute;top:0;left:-999px}.skip-link:focus{top:1rem;left:1rem}.scanlines{pointer-events:none;z-index:80;opacity:.04;background:repeating-linear-gradient(#0000 0 2px,#00000059 2px 3px);position:fixed;inset:0}.spark-canvas{pointer-events:none;z-index:70;width:100%;height:100%;position:fixed;inset:0}.hud{z-index:60;background:var(--hud);color:#f4f7fa;border-bottom:var(--pixel) solid var(--ink);font-family:var(--font-brand);letter-spacing:.04em;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;column-gap:1rem;padding:.7rem clamp(1.15rem,4vw,2.25rem);font-size:.55rem;display:grid;position:fixed;top:0;left:0;right:0}.hud-brand{color:var(--gold);justify-self:start;max-width:9.5rem;font-size:clamp(.42rem,1.8vw,.58rem);line-height:1.35;text-decoration:none}.hud-centre{flex-wrap:wrap;justify-content:center;justify-self:center;align-items:center;gap:.55rem .85rem;min-width:0;display:flex}.hud-centre-rule{background:#f4f7fa73;width:3px;height:3px;box-shadow:4px 0 #f4f7fa33,-4px 0 #f4f7fa33}.hud-status{white-space:nowrap;flex-direction:column;align-items:flex-start;gap:.15rem;margin:0;line-height:1.15;display:flex}.hud-status-label{letter-spacing:.12em;text-transform:uppercase;opacity:.55;font-size:.38rem}.hud-status-value{opacity:.9;font-size:.52rem}.hud-nav{flex-wrap:wrap;justify-content:flex-end;justify-self:end;gap:.75rem 1.15rem;display:flex}.hud-nav a,.hud-map-btn{color:#f4f7fa;font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:none}.hud-nav a:hover,.hud-nav a:focus-visible,.hud-map-btn:hover,.hud-map-btn:focus-visible{color:var(--gold)}.hud-map-btn{align-items:center;gap:.4rem;display:inline-flex}.hud-map-icon{width:12px;height:12px;box-shadow:inset 0 0 0 1px var(--ink);background:linear-gradient(#3f9a5c 0 0) 50%/100% 55% no-repeat,#6eb6d9;border:2px solid #f4f7fa}@media (width<=719px){.hud{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}.hud-status,.hud-centre-rule{display:none}}.btn{border:var(--pixel) solid var(--ink);font-family:var(--font-brand);color:var(--ink);box-shadow:var(--pixel) var(--pixel) 0 var(--ink);transition:transform .12s var(--ease-snap), box-shadow .12s var(--ease-snap);background:#fff;justify-content:center;align-items:center;gap:.5rem;padding:.85rem 1.15rem;font-size:.58rem;line-height:1.4;text-decoration:none;display:inline-flex}.btn:hover,.btn:focus-visible{box-shadow:2px 2px 0 var(--ink);color:var(--ink);transform:translate(2px,2px)}.btn:active{box-shadow:0 0 0 var(--ink);transform:translate(4px,4px)}.btn-primary{background:var(--gold)}.btn-ghost{background:#fff}.hero-ctas{flex-wrap:wrap;gap:.75rem;display:flex}.hero{color:#fff;isolation:isolate;align-content:start;align-items:start;min-height:100dvh;padding:5.5rem 1.25rem 3.5rem;display:grid;position:relative}.hero-world{z-index:-1;position:absolute;inset:0;overflow:hidden}.hero-art{object-fit:cover;object-position:78% 42%;filter:contrast(1.05)saturate(1.05);width:100%;height:100%;transform:scale(1.05)}@media (width>=900px){.hero-art{object-position:62% 40%}}.hero-parallax-mist{pointer-events:none;background:linear-gradient(#0000 0%,#1c243059 55%,#1c2430b8 100%);height:42%;position:absolute;inset:auto 0 0}.hero-copy{max-width:34rem;color:var(--ink);border:var(--pixel) solid var(--ink);box-shadow:6px 6px 0 var(--ink);background:#fffdf8eb;padding:1.15rem 1.25rem 1.35rem}.hero-brand{font-family:var(--font-brand);color:var(--sea-deep);margin:0 0 .75rem;font-size:clamp(.85rem,2.4vw,1.15rem);line-height:1.45}.hero-title{font-family:var(--font-body);color:var(--ink);margin:0 0 .65rem;font-size:clamp(1.45rem,3.2vw,2.1rem);font-weight:700;line-height:1.2}.hero-lead{max-width:28rem;color:var(--ink-soft);margin:0 0 1.25rem;font-size:1.12rem}.hero-hint{font-family:var(--font-brand);letter-spacing:.06em;opacity:.85;align-items:center;gap:.5rem;font-size:.45rem;animation:1.4s ease-in-out infinite bob;display:flex;position:absolute;bottom:1rem;left:50%;transform:translate(-50%)}.pixel-arrow{border-bottom:3px solid #fff;border-right:3px solid #fff;width:10px;height:10px;transform:rotate(45deg)}@keyframes bob{0%,to{transform:translate(-50%)}50%{transform:translate(-50%,6px)}}.stage{padding:4.5rem 1.25rem;position:relative}.stage-inner{width:min(960px,100%);margin:0 auto}.stage-inner-narrow{width:min(560px,100%)}.stage-title{font-family:var(--font-brand);margin:0 0 .5rem;font-size:clamp(.95rem,2.5vw,1.25rem);line-height:1.4}.stage-kicker{font-family:var(--font-brand);letter-spacing:.08em;color:var(--ink-soft);text-transform:uppercase;margin:0 0 2rem;font-size:.5rem}.map-dialog{border:var(--pixel) solid var(--ink);width:min(640px,100vw - 1.5rem);max-width:100%;box-shadow:8px 8px 0 var(--ink);background:0 0;padding:0}.map-dialog::backdrop{background:#1c24308c}.map-dialog-frame{background:linear-gradient(#b9dce8 0%,#d5ebe4 55%,#c8dfc0 100%);padding:.85rem .9rem 1rem}.map-dialog-bar{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.35rem;display:flex}.map-dialog-title{font-family:var(--font-brand);margin:0;font-size:.7rem;line-height:1.4}.map-dialog-close{border:var(--pixel) solid var(--ink);box-shadow:3px 3px 0 var(--ink);font-family:var(--font-brand);cursor:pointer;background:#fffdf8;min-width:2.25rem;min-height:2.25rem;padding:.35rem .5rem;font-size:1rem;line-height:1}.map-dialog-close:hover,.map-dialog-close:focus-visible{background:var(--gold)}.map-dialog-kicker{font-family:var(--font-brand);letter-spacing:.06em;color:var(--ink-soft);text-transform:uppercase;margin:0 0 .75rem;font-size:.45rem}.world-map{border:var(--pixel) solid var(--ink);min-height:300px;box-shadow:4px 4px 0 var(--ink);background:#4f9bb8;position:relative;overflow:hidden}.world-map-sea{background:radial-gradient(40% 30% at 18% 70%,#d9b48a47,#0000 70%),radial-gradient(35% 25% at 80% 20%,#ffffff1f,#0000 65%),repeating-linear-gradient(0deg,#0000,#0000 3px,#1c24300a 3px 4px),linear-gradient(165deg,#5aa4c8 0%,#6eb6d9 38%,#3f8fad 100%);position:absolute;inset:0}.world-map-art{z-index:0;pointer-events:none;width:100%;height:100%;image-rendering:pixelated;position:absolute;inset:0}.map-trail{stroke:#c9a074;stroke-width:1.1px;stroke-linecap:square;stroke-dasharray:1.6 1.2;opacity:.95}.map-trail-soft{stroke:#b8865a;stroke-width:.9px;opacity:.8}.map-pin{left:var(--x);top:var(--y);color:var(--ink);z-index:1;justify-items:center;gap:.35rem;text-decoration:none;display:grid;position:absolute;transform:translate(-50%,-50%)}.map-pin-dot{background:var(--gold);border:3px solid var(--ink);width:14px;height:14px;box-shadow:2px 2px 0 var(--ink);transition:transform .12s var(--ease-snap)}.map-pin:hover .map-pin-dot,.map-pin:focus-visible .map-pin-dot{background:#fff;transform:scale(1.2)}.map-pin-label{font-family:var(--font-brand);border:2px solid var(--ink);white-space:nowrap;background:#fffdf8;padding:.25rem .4rem;font-size:.42rem;line-height:1.3}.map-pin-ext .map-pin-dot{background:var(--cliff)}.stage-about{background:linear-gradient(#0000,#3f9a5c1f),repeating-linear-gradient(90deg,#0000,#0000 11px,#3f9a5c14 11px 12px)}.stage-work{background:radial-gradient(circle at 10% 20%,#e2b84a33,#0000 40%),linear-gradient(#d7ebe6,#cfe0ea)}.stage-kit{background:linear-gradient(#cfdde8,#e8f0f4),repeating-linear-gradient(0deg,#0000,#0000 15px,#1c24300a 15px 16px)}.stage-contact{background:linear-gradient(180deg, #e8f0f4, var(--sea) 140%);color:var(--ink)}.dialogue{align-items:end;gap:1rem;display:grid}@media (width>=640px){.dialogue{grid-template-columns:140px 1fr;gap:1.25rem}}.dialogue-portrait{object-fit:contain;border:var(--pixel) solid var(--ink);width:120px;height:120px;box-shadow:6px 6px 0 var(--ink);background:var(--sky);image-rendering:pixelated}@media (width>=640px){.dialogue-portrait{width:140px;height:140px}}.dialogue-panel{border:var(--pixel) solid var(--ink);box-shadow:6px 6px 0 var(--ink);background:#fffdf8;min-height:9rem;padding:1.1rem 1.15rem 1.35rem;position:relative}.dialogue-name{font-family:var(--font-brand);color:var(--sea-deep);margin:0 0 .55rem;font-size:.55rem}.dialogue-text{margin:0;font-size:1.15rem}.dialogue-next{cursor:pointer;background:0 0;border:0;font-size:.75rem;animation:.9s ease-in-out infinite bob-local;position:absolute;bottom:.45rem;right:.75rem}@keyframes bob-local{0%,to{transform:translateY(0)}50%{transform:translateY(3px)}}.level-map{gap:1rem;margin:0;padding:0;list-style:none;display:grid}@media (width>=720px){.level-map{grid-template-columns:1fr 1fr}}.level{color:var(--ink);border:var(--pixel) solid var(--ink);box-shadow:6px 6px 0 var(--ink);transform-style:preserve-3d;transition:transform .18s var(--ease-snap), box-shadow .18s var(--ease-snap);will-change:transform;background:linear-gradient(145deg,#fffef9 0%,#e7f3f1 100%);gap:.45rem;padding:1.15rem 1.1rem 1.2rem;text-decoration:none;display:grid;position:relative}.level:hover,.level:focus-visible{color:var(--ink);box-shadow:3px 3px 0 var(--ink)}.level-badge{font-family:var(--font-brand);color:var(--cliff);font-size:.5rem}.level-name{font-family:var(--font-brand);font-size:.72rem;line-height:1.45}.level-desc{color:var(--ink-soft);font-size:1.05rem}.level-enter{font-family:var(--font-brand);color:var(--sea-deep);margin-top:.35rem;font-size:.48rem}.inventory{gap:1.25rem;display:grid}@media (width>=800px){.inventory{grid-template-columns:1.2fr .8fr;align-items:start}}.inventory-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;margin:0;padding:0;list-style:none;display:grid}.item{aspect-ratio:1;border:var(--pixel) solid var(--ink);width:100%;box-shadow:4px 4px 0 var(--ink);font-family:var(--font-brand);cursor:pointer;transition:transform .12s var(--ease-snap), background .12s ease;background:#f7fbff;place-content:center;gap:.35rem;padding:.5rem;display:grid}.item:hover,.item:focus-visible{background:#fff;transform:translate(-2px,-2px)}.item[aria-pressed=true]{background:var(--gold);box-shadow:2px 2px 0 var(--ink);transform:translate(2px,2px)}.item-icon{font-size:.7rem}.item-label{font-size:.42rem;line-height:1.3}.inspect{border:var(--pixel) solid var(--ink);box-shadow:6px 6px 0 var(--ink);background:#fffdf8;min-height:10rem;padding:1.1rem}.inspect-title{font-family:var(--font-brand);margin:0 0 .6rem;font-size:.58rem;line-height:1.45}.inspect-body{margin:0;font-size:1.1rem}.contact-lead{margin:0 0 1.35rem;font-size:1.25rem}.contact-form{gap:1rem;display:grid}.contact-field{gap:.4rem;display:grid}.contact-field label{font-family:var(--font-brand);color:var(--sea-deep);font-size:.48rem;line-height:1.4}.contact-field input,.contact-field textarea{border:var(--pixel) solid var(--ink);width:100%;color:var(--ink);font-family:var(--font-body);box-shadow:4px 4px 0 var(--ink);box-sizing:border-box;background:#fffdf8;padding:.75rem .85rem;font-size:1.1rem;line-height:1.45}.contact-field input:focus-visible,.contact-field textarea:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.contact-field textarea{resize:vertical;min-height:9rem}.contact-field-error{color:var(--danger);margin:0;font-size:.95rem;display:none}.contact-form.was-validated .contact-field input:invalid~.contact-field-error,.contact-form.was-validated .contact-field textarea:invalid~.contact-field-error{display:block}.contact-form.was-validated .contact-field input:invalid,.contact-form.was-validated .contact-field textarea:invalid{border-color:var(--danger);box-shadow:4px 4px 0 var(--danger)}.contact-feedback{border:var(--pixel) solid var(--ink);box-shadow:4px 4px 0 var(--ink);background:#e7f6ea;margin:0;padding:.9rem 1rem;font-size:1.05rem}.contact-feedback p{margin:0}.contact-feedback-title{font-family:var(--font-brand);font-size:.5rem;line-height:1.45;margin-bottom:.35rem!important}.contact-feedback-error{color:var(--danger);background:#fce8e8}.is-hidden{display:none!important}.contact-form .btn{cursor:pointer;justify-self:start}.contact-form .btn:disabled{opacity:.65;cursor:wait;box-shadow:var(--pixel) var(--pixel) 0 var(--ink);transform:none}.contact-aside{color:var(--ink-soft);margin:1.5rem 0 0;font-size:1rem}.site-foot{text-align:center;font-family:var(--font-brand);color:var(--ink-soft);border-top:var(--pixel) solid var(--ink);background:#d5e8e6;padding:1.5rem 1.25rem 5rem;font-size:.42rem;line-height:1.6}.walker-wrap{z-index:55;width:48px;transition:left 80ms linear;position:fixed;bottom:.85rem;left:.5rem}.walker-hint{white-space:nowrap;font-family:var(--font-brand);color:var(--ink);border:2px solid var(--ink);box-shadow:2px 2px 0 var(--ink);opacity:0;pointer-events:none;background:#fffdf8;margin:0;padding:.3rem .4rem;font-size:.38rem;line-height:1.35;transition:opacity .25s;position:absolute;bottom:calc(100% + 6px);left:0}.walker-hint.is-visible{opacity:1}.walker{cursor:pointer;background:0 0;border:0;width:48px;height:52px;padding:0;display:block}.walker:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.walker-sprite{width:100%;height:100%;image-rendering:pixelated;place-items:end center;animation:.35s steps(2,end) infinite walk-bob;display:grid}.walker-sprite[hidden]{display:none}.walker-sprite svg{display:block;overflow:visible}@keyframes walk-bob{to{transform:translateY(2px)}}.walker.is-idle .walker-sprite:not([hidden]){animation:none}.tool-page .container{width:min(72rem,100% - 2.5rem);margin-inline:auto}.tool-page .page-section{padding:0 0 3.5rem}.tool-page,.blog-page{padding-top:3.25rem}.tool-hero{text-align:center;max-width:44rem;margin:0 auto;padding:2.5rem 1.25rem 1.5rem}.tool-hero-eyebrow{font-family:var(--font-brand);color:var(--ink-soft);flex-wrap:wrap;justify-content:center;gap:.5rem;margin:0 0 .85rem;font-size:.42rem;display:flex}.tool-hero-eyebrow a{color:var(--sea-deep)}.tool-hero-title{font-family:var(--font-brand);margin:0 0 .75rem;font-size:clamp(.85rem,2.5vw,1.15rem);line-height:1.45}.tool-hero-lead{color:var(--ink-soft);margin:0;font-size:1.15rem}.tools-hub-section{background:radial-gradient(circle at 10% 0,#2f8f9d29,#0000 42%),radial-gradient(circle at 90% 10%,#1c24300f,#0000 38%),#e8f0f4}.blog-bar{z-index:40;background:var(--hud);color:#fff;border-bottom:var(--pixel) solid var(--ink);justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1.25rem;display:flex;position:sticky;top:0}.blog-bar-brand{font-family:var(--font-brand);color:#fff;font-size:.55rem;line-height:1.4;text-decoration:none}.blog-bar-brand:hover,.blog-bar-brand:focus-visible{color:var(--gold)}.blog-bar-nav{font-family:var(--font-brand);gap:1rem;font-size:.48rem;display:flex}.blog-bar-nav a{color:#fff;text-decoration:none}.blog-bar-nav a:hover,.blog-bar-nav a:focus-visible{color:var(--gold)}.blog-page{max-width:44rem;margin:0 auto;padding:4.5rem 1.25rem 4rem}.blog-page-header{margin-bottom:2rem}.blog-page-title{font-family:var(--font-brand);margin:0 0 .75rem;font-size:clamp(.85rem,2.5vw,1.15rem);line-height:1.45}.blog-page-lead,.blog-post-subtitle{color:var(--ink-soft);margin:0;font-size:1.15rem}.blog-list{gap:.85rem;margin:0;padding:0;list-style:none;display:grid}.blog-list-item{color:var(--ink);border:var(--pixel) solid var(--ink);box-shadow:4px 4px 0 var(--ink);background:#fffdf8;gap:.35rem;padding:1rem 1.1rem;text-decoration:none;display:grid}.blog-list-item:hover,.blog-list-item:focus-visible{color:var(--ink);box-shadow:2px 2px 0 var(--ink)}.blog-list-item time{font-family:var(--font-brand);color:var(--cliff);font-size:.42rem}.blog-list-title{font-family:var(--font-brand);font-size:.58rem;line-height:1.45}.blog-list-desc{color:var(--ink-soft);font-size:1.05rem}.blog-post-header{margin-bottom:1.75rem}.blog-post-meta{font-family:var(--font-brand);color:var(--ink-soft);flex-wrap:wrap;gap:.5rem;margin:0 0 .85rem;font-size:.42rem;display:flex}.blog-post-meta a{color:var(--sea-deep)}.blog-prose{font-size:1.15rem;line-height:1.65}.blog-prose>:first-child{margin-top:0}.blog-prose p,.blog-prose ul,.blog-prose ol,.blog-prose blockquote,.blog-prose pre{margin:0 0 1.15rem}.blog-prose a{color:var(--sea-deep)}.blog-prose code{background:#1c243014;border:1px solid #1c243026;padding:.1em .3em;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.92em}.blog-prose pre{color:#e8f4f8;border:var(--pixel) solid var(--ink);box-shadow:4px 4px 0 var(--ink);background:#1c2430;padding:1rem;overflow-x:auto}.blog-prose pre code{color:inherit;background:0 0;border:0;padding:0;font-size:.9rem}.blog-prose blockquote{border-left:var(--pixel) solid var(--cliff);background:#fffdf8b3;margin-left:0;padding:.75rem 1rem}.blog-prose img{border:var(--pixel) solid var(--ink);box-shadow:4px 4px 0 var(--ink);margin:1.25rem 0}.blog-post-back{font-family:var(--font-brand);margin:2.5rem 0 0;font-size:.48rem}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-hint,.dialogue-next,.walker-sprite{animation:none}.scanlines{display:none}}
