@font-face{font-family:Bricolage;src:url('/fonts/bricolage-latin.woff2') format('woff2');font-style:normal;font-weight:400 800;font-display:swap}
:root{--paper:#f7f4ee;--ink:#1c1a17;--muted:#5b554c;--apricot:#f5a65b;--yellow:#ffd84d;--rule:#c9c1b6;--white:#fffdf8;--green:#1e5c3b;font-family:Bricolage,ui-sans-serif,system-ui,sans-serif;color:var(--ink);background:var(--paper);font-size:18px;line-height:1.55;font-synthesis:none}
*{box-sizing:border-box}body{margin:0}a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}button,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit}button:not(:disabled),summary{cursor:pointer}button:disabled{cursor:default}a:focus-visible,button:focus-visible,summary:focus-visible,select:focus-visible{outline:3px solid #2452c1;outline-offset:5px}button:focus-visible{position:relative;z-index:3}svg{display:block}p,h1,h2,h3{margin:0}p+p{margin-top:1.1em}h1,h2,h3{line-height:1.08;font-weight:650;letter-spacing:-.035em}h1{font-size:clamp(2.2rem,4.5vw,3.7rem)}h2{font-size:clamp(1.9rem,3.8vw,3rem)}h3{font-size:1.35rem}::selection{background:var(--yellow)}.shell{width:min(1120px,calc(100% - 64px));margin-inline:auto}.skip{position:fixed;top:-100px;left:1rem;z-index:10;background:var(--ink);color:white;padding:.6rem 1rem}.skip:focus{top:1rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.header{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:106px}.brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none}.brand svg{width:50px;height:42px}.wordmark{font-size:1.6rem;font-weight:800;letter-spacing:-.045em}.nav{display:flex;gap:30px;align-items:center}.nav a{display:flex;align-items:center;min-height:44px;text-decoration:none;font-size:.9rem}.nav a:hover,.nav a[aria-current=page]{text-decoration:underline;text-decoration-thickness:2px}.nav a[aria-current=page]::after{content:'•';margin-left:7px}.intro{display:flex;align-items:baseline;justify-content:space-between;gap:32px;margin:36px 0 35px}.intro h1{max-width:650px;font-size:clamp(1.7rem,3.2vw,2.5rem);font-weight:500;letter-spacing:-.025em;line-height:1.18}.intro-note{max-width:200px;font-size:.84rem;line-height:1.55;color:var(--muted)}.specimen{position:relative;background:var(--apricot);overflow:hidden}.specimen-top{padding:28px 34px 0;display:flex;justify-content:space-between;align-items:center;gap:20px}.edition{font-size:.77rem;text-transform:uppercase;letter-spacing:.09em;font-weight:600}.specimen .edition{border:1.5px solid var(--ink);border-radius:50%;width:80px;height:80px;display:grid;place-content:center;text-align:center;line-height:1.4;flex:none}.specimen-top p{font-size:1rem}.specimen-stage{position:relative;display:flex;align-items:center;justify-content:center;padding:0 80px 24px;min-height:380px}.specimen-stage:before,.specimen-stage:after{content:'✳';position:absolute;font-size:90px;font-weight:400;line-height:1;left:9%;top:25%;transform:rotate(12deg)}.specimen-stage:after{content:'↗';left:auto;right:9%;top:45%;font-size:100px;transform:none}.board-preview{width:470px;max-width:100%;overflow:visible;filter:drop-shadow(0 10px 0 #1c1a1710)}.specimen-bottom{border-top:1.5px solid #1c1a1740;padding:24px 34px;display:flex;align-items:center;justify-content:space-between;gap:28px}.specimen-title{display:flex;align-items:baseline;gap:23px}.specimen-title h2{font-size:2.25rem;letter-spacing:-.055em}.specimen-title p{max-width:310px;font-size:.95rem;line-height:1.4}.action{display:inline-flex;align-items:center;justify-content:space-between;gap:32px;min-height:54px;padding:12px 23px;background:var(--ink);color:var(--white);border:2px solid var(--ink);text-decoration:none;font-size:1rem;font-weight:600;border-radius:5px}.action:hover{background:var(--white);color:var(--ink);text-decoration:none}.action span[aria-hidden]{font-size:1.5rem;line-height:1}.text-link{display:inline-flex;align-items:center;gap:14px;min-height:44px;font-weight:600}.origin-teaser{display:grid;grid-template-columns:.9fr 1fr;gap:90px;margin:100px 0 105px}.origin-teaser h2{max-width:400px}.origin-teaser p{font-size:1.1rem;max-width:560px}.origin-teaser .text-link{margin-top:18px}.footer{border-top:1px solid var(--rule);padding:27px 0 30px;display:flex;justify-content:space-between;gap:28px;font-size:.78rem}.footer .stamp{font-weight:650;font-size:.92rem}.footer p{color:var(--muted);margin:0}.footer-links{display:flex;flex-wrap:wrap;gap:22px}.footer a{min-height:44px;display:inline-flex;align-items:center}.preview-note{font-size:.72rem;color:var(--muted);text-align:center;padding:0 0 18px}
.story-opening{margin:55px 0 60px;display:grid;grid-template-columns:1.25fr .8fr;gap:60px;align-items:center}.story-opening h1{max-width:680px}.story-opening p{margin-top:26px;font-size:1.15rem;max-width:610px}.story-art{padding:35px;background:var(--yellow);aspect-ratio:1;display:grid;place-items:center}.story-art svg{width:100%;height:auto}.story-body{max-width:690px;margin:0 auto 100px}.story-body section{margin:0 0 54px}.story-body h2{font-size:2rem;margin-bottom:22px}.story-body p{font-size:1.05rem}.mission{margin:65px 0;padding:34px 0;border-block:2px solid var(--ink)}.mission .edition{display:block;margin-bottom:15px}.mission p{font-size:clamp(1.75rem,3vw,2.45rem);font-weight:550;line-height:1.17;letter-spacing:-.03em}.practice{padding-left:24px}.practice li{margin:15px 0}.practice strong{font-weight:650}.small-page{max-width:730px;margin:55px auto 100px}.small-page h1{margin-bottom:28px}.small-page h2{font-size:1.5rem;margin:40px 0 14px}.small-page p{max-width:650px}.small-page .email{display:inline-block;font-size:clamp(1rem,3vw,1.75rem);font-weight:600;overflow-wrap:anywhere;margin:30px 0;min-height:44px}.small-page ul{padding-left:25px}.small-page li{margin:12px 0}.updated{font-size:.8rem;color:var(--muted);margin-top:28px}.small-page .action{margin-top:28px}
.play-heading{display:flex;justify-content:space-between;align-items:baseline;gap:20px;margin:24px 0 28px}.play-heading h1{font-size:2.6rem}.play-heading p{font-size:.92rem;color:var(--muted)}.play-layout{display:grid;grid-template-columns:minmax(0,700px) 1fr;gap:42px;align-items:start;margin-bottom:75px}.game-panel{background:var(--apricot);padding:24px}.game-topbar{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:10px}.game-topbar label{font-size:.82rem}.game-topbar select{border:1.5px solid var(--ink);border-radius:3px;padding:8px 28px 8px 10px;background:var(--paper);font-size:.84rem;min-height:44px;max-width:100%}.counter{font-size:.8rem;text-align:right;font-variant-numeric:tabular-nums}.column-labels{display:grid;grid-template-columns:repeat(6,1fr);gap:7px;margin:18px 0 8px;font:500 .78rem/1.2 ui-monospace,SFMono-Regular,monospace;text-align:center}.column-labels span{padding:5px 0;min-height:28px;border-bottom:2px solid transparent}.column-labels .current{border-color:var(--ink);font-weight:800;background:#fffdf86b}.game-board{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:repeat(5,1fr);grid-auto-flow:column;gap:7px}.tile{aspect-ratio:1;border:1.5px solid #1c1a1745;border-radius:8px;background:#f8c99c;position:relative;display:grid;place-items:center;padding:0;font-size:1.6rem;line-height:1;min-width:0}.tile .cell-symbol{display:grid;place-items:center;width:30px;height:30px}.tile[data-kind=spark] .cell-symbol{background:var(--yellow);border:1.5px solid var(--ink);border-radius:50%;font-size:1.1rem}.tile[data-kind=blocked]{background:repeating-linear-gradient(135deg,#e5a368 0,#e5a368 6px,#c58a5740 6px,#c58a5740 8px);border-style:dashed}.tile[data-kind=blocked] .cell-symbol{font-size:1.35rem;color:#5f4128}.tile[data-kind=entrance] .cell-symbol,.tile[data-kind=exit] .cell-symbol{border:1.5px solid var(--ink);border-radius:50%;font-size:1.25rem}.tile[data-legal=true]{background:var(--white);border:2.5px solid var(--ink);box-shadow:0 3px 0 #1c1a1733}.tile[data-legal=true]:hover{background:var(--yellow);transform:translateY(-2px)}.tile[data-selected=true]{background:var(--ink);border-color:var(--ink);color:var(--white)}.tile[data-selected=true] .cell-symbol{background:transparent;color:var(--white);border-color:var(--white)}.tile .step{position:absolute;top:4px;left:6px;font:600 .6rem/1 ui-monospace,monospace}.game-status{margin-top:22px;border-top:1.5px solid #1c1a1759;padding-top:18px;min-height:100px}.game-status h2{font-size:1.35rem;letter-spacing:-.02em;margin-bottom:8px}.game-status p{font-size:.87rem;line-height:1.45}.game-status[data-status=won] h2{color:var(--green)}.game-controls{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.control{border:1.5px solid var(--ink);border-radius:4px;background:transparent;padding:10px 16px;min-height:46px;font-weight:600;font-size:.85rem}.control:hover:not(:disabled){background:var(--white)}.control:disabled{opacity:.45}.control.primary{background:var(--ink);color:var(--white);margin-left:auto}.control.primary:hover{background:var(--white);color:var(--ink)}[hidden]{display:none!important}.instructions{font-size:.92rem}.instructions h2{font-size:1.55rem;margin:2px 0 20px}.instructions ol{padding-left:21px;margin:0 0 25px}.instructions li{margin-bottom:16px;padding-left:3px}.legend{display:flex;flex-wrap:wrap;gap:14px;margin:20px 0;font-size:.78rem}.legend span{display:flex;gap:6px;align-items:center}.legend b{display:grid;place-items:center;border:1px solid var(--ink);width:25px;height:25px;border-radius:50%;font-size:.9rem;background:var(--paper)}.instructions details{border-top:1px solid var(--rule);padding-top:11px;margin:18px 0}.instructions summary{font-weight:600;min-height:44px;display:list-item;align-content:center}.instructions details p{font-size:.82rem;margin-top:12px}.board-description{font-size:.78rem!important;line-height:1.65}.play-note{font-size:.77rem;color:var(--muted);margin-top:25px}.print-only{display:none}noscript{display:block;padding:20px;background:var(--yellow)}.noscript-board{max-width:400px;margin:20px auto}
.specimen .edition{font-size:.64rem;letter-spacing:.03em;white-space:nowrap;min-width:max-content;padding:10px}.tile[data-kind=entrance] .cell-symbol{background:var(--ink);color:var(--white)}.header,.nav,.specimen-top,.specimen-bottom,.specimen-title,.game-topbar{flex-wrap:wrap}.nav{column-gap:clamp(12px,3vw,30px)}
@media(min-width:1500px){.specimen-stage{min-height:390px}.board-preview{width:480px}}
@media(max-width:1000px){.specimen-title{display:block}.specimen-title p{margin-top:8px}.specimen-stage:before{left:5%}.specimen-stage:after{right:5%}.play-layout{grid-template-columns:minmax(0,1.6fr) 1fr;gap:28px}.game-panel{padding:18px}.game-board,.column-labels{gap:5px}.origin-teaser{gap:45px}}
@media(max-width:760px){.shell{width:calc(100% - 32px)}.header{min-height:85px;gap:15px;flex-wrap:wrap;padding:17px 0}.brand svg{width:37px;height:32px}.wordmark{font-size:1.45rem}.brand{gap:8px}.nav{gap:19px}.nav a{font-size:.82rem}.intro{display:block;margin:22px 0 24px}.intro h1{max-width:540px;font-size:1.85rem}.intro-note{margin-top:12px;max-width:none;font-size:.78rem}.specimen-top{padding:20px 20px 0}.specimen .edition{width:62px;height:62px;font-size:.62rem}.specimen-top p{font-size:.87rem;max-width:180px}.specimen-stage{min-height:0;padding:15px 32px 23px}.specimen-stage:before,.specimen-stage:after{display:none}.specimen-bottom{display:block;padding:21px 20px}.specimen-title{display:flex;gap:20px;justify-content:space-between;align-items:center}.specimen-title h2{font-size:1.9rem;white-space:nowrap}.specimen-title p{margin:0;font-size:.78rem;max-width:190px}.specimen-bottom .action{margin-top:20px;width:100%}.origin-teaser{display:block;margin:58px 0 65px}.origin-teaser h2{font-size:2.1rem;max-width:420px;margin-bottom:23px}.origin-teaser p{font-size:1rem}.footer{display:block;padding:22px 0}.footer-links{gap:24px;margin-top:14px}.story-opening{display:block;margin:26px 0 42px}.story-opening h1{font-size:2.8rem;max-width:560px}.story-opening p{font-size:1.05rem}.story-art{max-width:350px;margin-top:32px;padding:32px;aspect-ratio:1.5}.story-body{margin-bottom:65px}.story-body p{font-size:1rem}.mission{margin:42px 0}.small-page{margin:30px auto 65px}.play-heading{display:block;margin:19px 0 24px}.play-heading h1{font-size:2.3rem}.play-heading p{margin-top:7px;font-size:.85rem}.play-layout{display:flex;flex-direction:column;gap:34px;margin-bottom:50px}.game-panel{width:100%;padding:18px}.instructions{width:100%}.game-board{gap:6px}.column-labels{gap:6px}.game-status{min-height:112px}.play-note{margin-top:20px}}
@media(max-width:430px){.header{align-items:center;gap:0;flex-wrap:nowrap}.wordmark{font-size:1.19rem}.brand svg{width:31px;height:28px}.brand{gap:6px}.nav{gap:15px}.nav a{font-size:.74rem}.nav a[aria-current=page]::after{display:none}.intro h1{font-size:1.72rem}.specimen-top{padding:17px 16px 0}.specimen-stage{padding:8px 17px 20px}.specimen-title{display:block}.specimen-title p{margin-top:8px;max-width:none}.specimen-bottom{padding:18px 17px}.specimen-bottom .action{margin-top:17px}.game-panel{padding:12px}.game-topbar{gap:7px;align-items:start}.game-topbar label{font-size:.74rem}.game-topbar select{font-size:.77rem;padding-left:7px;max-width:184px}.counter{font-size:.72rem;padding-top:4px}.game-board,.column-labels{gap:4px}.tile{border-radius:5px}.tile .cell-symbol{width:25px;height:25px}.tile .step{top:2px;left:3px;font-size:.52rem}.control{padding:9px 12px}.footer-links{gap:18px}.story-opening h1{font-size:2.35rem}}
@media(max-width:350px){.shell{width:calc(100% - 24px)}.brand svg{display:none}.nav{gap:13px}.wordmark{font-size:1.2rem}.intro h1{font-size:1.65rem}.specimen-top p{max-width:155px}.specimen-stage{padding:10px 12px 20px}.game-panel{padding:6px}.game-board,.column-labels{gap:3px}.game-topbar{flex-wrap:wrap;padding:7px 4px}.counter{text-align:left}.game-status{padding:16px 5px 0}.game-controls{gap:7px;padding:0 4px 7px}.control{padding:9px 10px;font-size:.79rem}.control.primary{margin-left:0}.tile .step{font-size:.48rem}.game-topbar select{max-width:210px}}
@media(max-width:430px){.header{flex-wrap:wrap;column-gap:12px;row-gap:0}.nav{flex-wrap:wrap}.specimen-top{row-gap:12px}.game-topbar{flex-wrap:wrap}}
@media(prefers-reduced-motion:no-preference){.tile,.action{transition:background .12s,transform .12s,color .12s}.board-preview .route{stroke-dasharray:650;stroke-dashoffset:650;animation:draw 1.3s ease .25s forwards}@keyframes draw{to{stroke-dashoffset:0}}}
@media print{body{background:white!important;color:black!important;font-size:12pt}.header,.footer,.preview-note,.game-controls,.game-topbar select,.game-topbar label,.instructions details,.play-note,.nav,.skip{display:none!important}.shell{width:100%;max-width:none}.play-heading{margin:0 0 20px}.play-layout{display:block}.game-panel{background:white;border:1px solid black;padding:18px;max-width:500px;margin:auto;break-inside:avoid;print-color-adjust:exact;-webkit-print-color-adjust:exact}.game-board{gap:5px}.tile{background:white}.tile[data-selected=true]{background:#1c1a17}.instructions{margin:25px auto;max-width:550px;font-size:11pt}.instructions h2{font-size:18pt}.instructions ol{display:block}.instructions li{margin-bottom:8px}.print-only{display:block;margin-top:16px;font-size:10pt}.game-status{min-height:0}}

a[href^="mailto:"]{overflow-wrap:anywhere}
@media print{#print{display:none!important}#print-puzzle{font-size:12pt;font-weight:650;margin:0}}
@media print{html,body{background:#fff!important}.play-heading{margin:0 0 12px}.play-heading h1{font-size:26pt}.play-heading p{font-size:10pt}.game-panel{max-width:410px;padding:10px}.game-topbar{margin-bottom:5px}.column-labels{margin:8px 0 5px;font-size:9pt;gap:4px}.game-board{gap:4px}.game-status{margin-top:10px;padding-top:10px}.game-status h2{font-size:13pt;margin-bottom:4px}.game-status p{font-size:10pt;line-height:1.35}.instructions{font-size:10pt;max-width:500px;margin:15px auto 0}.instructions h2{font-size:14pt;margin:0 0 9px}.instructions ol{margin-bottom:10px}.instructions li{margin-bottom:5px}.legend{margin:10px 0;font-size:9pt}.legend b{width:20px;height:20px;font-size:10pt}.print-only{margin-top:8px;font-size:9pt}}
