:root{--paper:#f7f5ef;--card:#fdfcf9;--ink:#243c34;--muted:#788178;--line:#e3e5da;--green:#3d7062;--green-light:#e7eee6;--orange:#d98355;--orange-light:#f7eadb;--shadow:0 15px 55px rgba(46,61,45,.045);font-family:"DM Sans",system-ui,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
[hidden]{display:none!important}
*{box-sizing:border-box}body{margin:0}button,a,input{font:inherit}button{color:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.35}button:focus-visible,a:focus-visible{outline:3px solid var(--orange);outline-offset:4px}button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button,a{user-select:none}button svg{width:19px;height:19px;flex-shrink:0}a{color:inherit}.skip-link{position:fixed;top:-60px;left:15px;background:var(--ink);color:white;padding:12px;z-index:20}.skip-link:focus{top:10px}
.site-header{max-width:1336px;margin:auto;height:108px;padding:0 64px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:28px}.brand{display:flex;gap:11px;align-items:center;text-decoration:none;font-family:"Fraunces",Georgia,serif;font-size:39px;font-weight:600;letter-spacing:-2px}.brand-period{color:var(--orange)}.brand-mark{width:29px;height:29px;position:relative;display:block;margin-top:4px}.brand-mark i{position:absolute;background:var(--orange);width:11px;height:17px;border-radius:70% 70% 45% 45%;left:9px;top:0;transform-origin:5.5px 14.5px}.brand-mark i:nth-child(2){transform:rotate(90deg)}.brand-mark i:nth-child(3){transform:rotate(180deg)}.brand-mark i:nth-child(4){transform:rotate(270deg)}.main-nav{display:flex;align-items:center;gap:34px;margin-left:35px}.nav-button{background:none;border:0;font-size:13px;color:#7b837b;padding:15px 0;position:relative;font-weight:500;white-space:nowrap}.nav-button.active{color:var(--ink)}.nav-button.active:after{content:"";position:absolute;height:3px;width:18px;left:calc(50% - 9px);bottom:3px;background:var(--orange);border-radius:3px}.nav-dot{width:5px;height:5px;display:inline-block;border-radius:50%;background:#97ab90;margin-left:4px;vertical-align:2px}.header-actions{display:flex;gap:10px}.icon-button{border:1px solid var(--line);background:transparent;border-radius:50%;width:36px;height:36px;display:grid;place-items:center;padding:0;transition:background .15s}.icon-button:hover{background:#eeeee5}.sound-on-path{display:none}.sound-button[data-sound-enabled=true] .sound-on-path{display:block}.sound-button[data-sound-enabled=true] .sound-off-path{display:none}
.main-shell{max-width:1174px;margin:66px auto 58px;padding:0 38px;display:grid;grid-template-columns:1fr 475px;gap:86px;align-items:start}.intro-panel{padding-top:34px}.eyebrow{font-size:10px;font-weight:650;letter-spacing:1.65px;display:flex;align-items:center;gap:8px;color:#6e7c70}.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#78957a;box-shadow:0 0 0 4px rgba(120,149,122,.07)}h1{font-family:"Fraunces",Georgia,serif;font-size:64px;line-height:1.11;letter-spacing:-2.7px;font-weight:400;margin:23px 0 22px}h1 em{color:var(--green);font-weight:400}.intro-copy{font-size:15px;line-height:1.9;color:#778078;margin:0 0 27px;letter-spacing:.03px}.daily-note{display:flex;gap:9px;align-items:center;font-size:11px;color:#83887d}.tiny-spark{font-size:20px;color:var(--orange)}.personal-stats{display:flex;margin:39px 0 12px;gap:0}.personal-stats>div{padding:0 27px;text-align:center;border-right:1px solid var(--line)}.personal-stats>div:first-child{padding-left:0;min-width:84px}.personal-stats>div:last-child{border:0;padding-right:0}.stat-number{display:block;font-family:"Fraunces",Georgia,serif;font-size:29px;line-height:1.2}.stat-label{display:block;font-size:10px;color:#7f857b;margin-top:7px}.device-note{font-size:10px;color:#8a8e83;margin:13px 0 0}.side-note{display:flex;gap:13px;margin-top:47px;padding-top:25px;border-top:1px solid var(--line);max-width:342px}.side-note-icon{width:29px;height:29px;flex-shrink:0;background:#ecece1;border-radius:50%;display:grid;place-items:center;color:#73816d}.side-note h2{font-size:12px;font-weight:600;margin:0 0 6px}.side-note p{font-size:11px;line-height:1.75;color:#85897f;margin:0}.text-button{border:0;background:none;padding:0;display:inline-flex;gap:8px;align-items:center;font-size:11px;color:#667b6b;font-weight:500}.text-button:hover{color:var(--orange)}.text-button span{font-size:16px}.how-link{margin-top:20px;color:#778474;font-size:10px}
.game-panel{background:var(--card);border:1px solid #e5e7dd;border-radius:22px;padding:25px 29px 20px;box-shadow:var(--shadow);scroll-margin-top:18px}.game-topline{display:flex;align-items:center;justify-content:space-between;gap:10px}.puzzle-label{display:flex;gap:9px;align-items:center;font-size:9px;letter-spacing:1.6px;font-weight:650;color:#788373}.label-divider{color:#c3c8bb}.difficulty-badge{padding:5px 10px;background:#edf1e7;border:1px solid #e4e9db;border-radius:14px;font-size:9px;color:#7b8c66;font-weight:500}.difficulty-badge.bright{background:#f7eadb;border-color:#f0e0cd;color:#a8774e}.game-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:17px 0 22px}.game-heading h2{font-family:"Fraunces",Georgia,serif;font-size:26px;font-weight:500;letter-spacing:-.7px;margin:0 0 5px}.game-heading p{font-size:10px;color:#899084;margin:0;line-height:1.5}.move-counter{text-align:center;min-width:36px}.move-counter>span:first-child{display:block;font-family:"Fraunces",Georgia,serif;font-size:25px}.move-counter>span:last-child{font-size:9px;color:#8a9187}.board-wrap{position:relative;background:#edf0e7;border:1px solid #e3e7db;border-radius:15px;padding:9px;overflow:hidden;min-height:260px;aspect-ratio:1}.board{display:grid;grid-template-columns:repeat(var(--size,4),1fr);height:100%;gap:7px;transition:filter .2s}.tile{border:1px solid #e0e5d8;background:#f8f9f3;border-radius:9px;position:relative;display:grid;place-items:center;aspect-ratio:1;min-width:0;width:100%;height:100%;padding:0;transition:background .2s,border-color .2s,box-shadow .2s}.tile:hover{background:#fffef8;border-color:#bdcdb6}.tile:active{transform:scale(.97)}.tile:focus-visible{outline:3px solid #d98355;outline-offset:-3px;z-index:2}.tile svg{width:100%;height:100%;overflow:visible;transition:transform .18s ease}.tile .wire{stroke:#bcc9b5;stroke-width:8;fill:none;stroke-linecap:round}.tile .wire-shadow{stroke:#cad4c1;stroke-width:12;fill:none;stroke-linecap:round;opacity:.25}.tile .wire-center{fill:#bdcbb6}.tile .wire-dot{fill:#f8f9f3;stroke:#bdcbb6;stroke-width:3}.tile.lit{background:#e9f0e4;border-color:#d4e1ca}.tile.lit .wire{stroke:#6d9673}.tile.lit .wire-shadow{stroke:#70966c;opacity:.11}.tile.lit .wire-center{fill:#6d9673}.tile.lit .wire-dot{fill:#d7e8c8;stroke:#70956e}.tile.source{background:#faf0dd;border-color:#eadab7}.tile.source .wire{stroke:#d79c59}.tile.source .wire-center{fill:#cf9454}.tile .source-halo{fill:#e8ba75;opacity:.2}.tile .source-core{fill:#e5aa60;stroke:#f7dfac;stroke-width:3}.tile.hinted{animation:hint-pulse .7s ease 2}.tile.solved{background:#e8f0e1}.board[data-size="3"]{gap:9px}.board[data-size="3"] .tile{border-radius:11px}.board-loading{position:absolute;inset:0;display:grid;place-items:center;font-size:13px;color:#72836e;text-align:center;padding:20px}.connection-status{display:flex;align-items:center;justify-content:space-between;margin-top:18px;font-size:10px;color:#7b8476;gap:8px}.connection-copy{display:flex;align-items:center;gap:5px}.connection-copy strong{font-weight:650;color:#61795b}.mini-light{width:6px;height:6px;border-radius:50%;background:#91ad79;display:inline-block;margin-right:3px}.progress-percent{font-size:9px;color:#91988b;font-variant-numeric:tabular-nums}.connection-track{height:4px;background:#eef0e7;border-radius:6px;overflow:hidden;margin-top:9px}.connection-track>span{display:block;height:100%;width:0;background:#94af79;transition:width .35s;border-radius:6px}.game-feedback{font-size:10px;text-align:center;color:#93998d;line-height:1.5;min-height:15px;margin:13px 0 18px}.game-controls{display:flex;align-items:center;gap:20px;border-top:1px solid #ebede4;border-bottom:1px solid #ebede4;padding:14px 0}.control-button{border:0;background:none;padding:4px 0;display:inline-flex;align-items:center;gap:6px;font-size:10px;color:#7c8775;white-space:nowrap}.control-button svg{width:16px;height:16px}.control-button:hover:not(:disabled){color:#3e6956}.controls-spacer{flex:1}.hint-button{color:#a7824f}.game-bottomline{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:15px;font-size:8px;color:#959b8e}.game-bottomline>span{display:flex;align-items:center;gap:5px}.game-bottomline .text-button{font-size:9px}.source-key{width:7px;height:7px;border-radius:50%;background:#dfb271;box-shadow:0 0 0 2px #f6ead5;display:inline-block}.completion-panel{position:absolute;inset:0;background:rgba(249,250,241,.94);backdrop-filter:blur(5px);padding:24px 22px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;z-index:3}.completion-panel[hidden]{display:none}.completion-star{font-size:41px;line-height:1.1;color:#d99a55;margin-bottom:12px}.completion-eyebrow{font-size:8px;letter-spacing:1.8px;color:#7b9070;margin:0 0 11px;font-weight:650}.completion-panel h3{font-family:"Fraunces",Georgia,serif;font-size:30px;letter-spacing:-.8px;margin:0 0 9px;font-weight:500}.completion-panel>p:last-of-type{font-size:11px;color:#7b8772;line-height:1.7;margin:0 0 22px}.completion-actions{display:flex;flex-direction:column;gap:12px;width:100%;max-width:240px}.primary-button{border:0;border-radius:9px;padding:13px 16px;background:#365a48;color:#faf9f1;font-size:12px;display:flex;align-items:center;justify-content:center;gap:17px;box-shadow:0 3px 8px rgba(36,60,52,.07)}.primary-button:hover{background:#284a3b}.secondary-button{background:none;border:0;font-size:10px;color:#72816b;padding:5px}.secondary-button:hover{text-decoration:underline}.board-complete .board{filter:blur(2px)}
.more-section{max-width:1174px;margin:0 auto 52px;padding:0 38px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:15px;margin-bottom:20px}.section-heading .eyebrow{font-size:8px;letter-spacing:1.7px}.section-heading h2{font-family:"Fraunces",Georgia,serif;font-weight:400;font-size:26px;letter-spacing:-.7px;margin:8px 0 0}.section-heading>.text-button{font-size:10px;padding-bottom:3px}.practice-shelf{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.practice-card{background:transparent;border:1px solid #e0e4d8;display:flex;align-items:center;border-radius:12px;padding:20px 17px;text-align:left;gap:14px;min-width:0;transition:background .2s,transform .2s}.practice-card:hover{background:#fdfcf7;transform:translateY(-3px)}.practice-card-copy{display:flex;flex-direction:column;gap:7px;min-width:0;flex:1}.practice-meta{font-size:7px;letter-spacing:1.3px;color:#9b9d8c;font-weight:650}.practice-card strong{font-size:11px;font-weight:600}.practice-card-copy>span:last-child{font-size:8px;color:#989b8e;line-height:1.6}.card-arrow{font-size:17px;color:#94a18b;align-self:center}.mini-board{width:48px;height:48px;display:block;flex-shrink:0;border:1px solid #d8dfcd;border-radius:8px;position:relative;overflow:hidden;background:linear-gradient(90deg,transparent 31%,#e1e6d9 32%,#e1e6d9 34%,transparent 35%,transparent 65%,#e1e6d9 66%,#e1e6d9 68%,transparent 69%),linear-gradient(transparent 31%,#e1e6d9 32%,#e1e6d9 34%,transparent 35%,transparent 65%,#e1e6d9 66%,#e1e6d9 68%,transparent 69%),#f0f3e8}.mini-board:before{content:"";position:absolute;left:7px;top:6px;width:25px;height:24px;border-left:3px solid #94ae7d;border-bottom:3px solid #94ae7d;border-radius:0 0 0 6px}.mini-board:after{content:"";position:absolute;left:29px;top:20px;width:3px;height:11px;background:#94ae7d}.mini-board-two{transform:rotate(-7deg);background-color:#eeeee0}.mini-board-two:before{transform:rotate(180deg);border-color:#a6ae7d}.mini-board-three{background-color:#f3eddf}.mini-board-three:before{transform:rotate(90deg);border-color:#c2a577}.mini-board-three:after{background:#c2a577}.site-footer{border-top:1px solid var(--line);max-width:1208px;margin:0 auto;padding:24px 0 30px;display:flex;align-items:center;gap:16px;font-size:9px;color:#94998c}.footer-brand{font-family:"Fraunces",Georgia,serif;font-size:24px;letter-spacing:-1px;color:#7f8b76}.site-footer>div{margin-left:auto;display:flex;align-items:center;gap:18px}.site-footer button{border:0;background:none;color:#8a9483;padding:5px 0;font-size:9px}.preview-label{font-size:8px;background:#eceee3;padding:4px 7px;border-radius:4px;color:#8a9581}
dialog{width:min(480px,calc(100% - 30px));padding:27px 28px;border:1px solid #e3e7d9;border-radius:18px;background:#faf9f3;color:var(--ink);box-shadow:0 20px 80px rgba(31,52,40,.15);max-height:90dvh;overflow:auto}dialog::backdrop{background:rgba(35,52,40,.25);backdrop-filter:blur(3px)}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:21px}.modal-header h2{font-family:"Fraunces",Georgia,serif;font-size:26px;letter-spacing:-.7px;font-weight:400;margin:0}.modal-header .icon-button{flex-shrink:0;font-size:24px;font-weight:400;width:32px;height:32px}.help-steps{list-style:none;padding:0;margin:0}.help-steps li{display:flex;gap:14px;align-items:start;padding:15px 0;border-bottom:1px solid var(--line);font-size:12px;line-height:1.75;color:#6e7c68}.help-steps li:last-child{border:0}.step-number{width:25px;height:25px;border-radius:50%;background:#e8eddf;display:grid;place-items:center;color:#66815c;font-size:10px;flex-shrink:0;margin-top:2px}.help-steps strong{color:var(--ink);font-weight:600}.modal-note{font-size:11px;color:#839078;line-height:1.8}.modal-actions{display:flex;gap:10px;margin-top:22px;flex-wrap:wrap}.modal-actions .primary-button{flex:1}.modal-actions .secondary-button{border:1px solid var(--line);padding:11px 18px;border-radius:9px}.puzzle-list{display:grid;gap:9px}.puzzle-list-button{display:flex;align-items:center;gap:11px;justify-content:space-between;padding:13px 14px;border:1px solid #e0e5d8;border-radius:9px;background:#fdfcf8;text-align:left;width:100%}.puzzle-list-button:hover{background:#edf2e6}.puzzle-list-button strong{display:block;font-size:12px;font-weight:500}.puzzle-list-button small{font-size:10px;color:#839078;display:block;margin-top:4px}.list-status{font-size:11px;color:#7c976a;white-space:nowrap}.privacy-copy{font-size:12px;line-height:1.9;color:#72806b}.privacy-copy h3{font-size:13px;color:var(--ink);font-weight:600;margin:20px 0 5px}.privacy-copy p{margin:8px 0}.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:#304d3e;color:#f6f6ed;padding:13px 20px;border-radius:12px;font-size:12px;z-index:30;max-width:calc(100% - 30px);text-align:center;box-shadow:0 5px 30px rgba(30,54,40,.1)}.toast[hidden]{display:none}.noscript-note{padding:25px;text-align:center;color:#7d5b39;background:#f7eadb}.archive-empty{padding:20px 0 10px;color:#7d8874;font-size:12px;line-height:1.9}.keyboard-note{font-size:10px;color:#89937e;line-height:1.7;padding-top:10px}.storage-warning{color:#9b713d}
@keyframes hint-pulse{0%,100%{box-shadow:inset 0 0 0 2px #dca666}50%{box-shadow:inset 0 0 0 4px #dca666;background:#faf0d9}}
@media(min-width:1400px){.site-header{height:115px}.main-shell{margin-top:74px;gap:110px;grid-template-columns:1fr 500px;max-width:1220px}.more-section{max-width:1220px}.intro-panel{padding-top:43px}h1{font-size:70px}.game-panel{padding:28px 31px 22px}.game-heading{margin-bottom:23px}.more-section{margin-bottom:60px}}
@media(max-width:1100px){.site-header{padding:0 40px}.main-shell{gap:45px;grid-template-columns:1fr minmax(360px,440px);padding:0 40px}.more-section{padding:0 40px}.site-footer{margin:0 40px}h1{font-size:54px}.intro-copy{font-size:13px}.personal-stats>div{padding:0 21px}.practice-card{padding:17px 13px;gap:10px}.mini-board{width:38px;height:38px}.practice-card-copy>span:last-child{font-size:8px}}
@media(max-width:820px){.site-header{height:90px;padding:0 27px;gap:18px}.main-nav{gap:22px;margin:0}.brand{font-size:35px}.main-shell{max-width:620px;display:flex;flex-direction:column;gap:28px;padding:0 28px;margin:31px auto 38px}.intro-panel{padding:0;width:100%;text-align:center}.intro-panel>.eyebrow{justify-content:center;font-size:8px}h1{font-size:45px;letter-spacing:-1.7px;margin:13px 0 12px;line-height:1.13}h1 br{display:none}h1 em:before{content:" "}.intro-copy{font-size:12px;line-height:1.8;margin:0}.intro-copy br{display:none}.daily-note{display:none}.personal-stats{justify-content:center;margin:21px auto 0}.personal-stats>div{padding:0 28px}.personal-stats>div:first-child{padding-left:28px}.personal-stats>div:last-child{padding-right:28px}.stat-number{font-size:21px}.stat-label{font-size:8px;margin-top:4px}.device-note{font-size:8px;margin-top:9px}.side-note,.how-link{display:none}.game-panel{width:100%;max-width:475px;margin:auto;padding:24px 26px 20px}.more-section{max-width:620px;padding:0 28px;margin-bottom:30px}.section-heading h2{font-size:24px}.section-heading .eyebrow{font-size:7px}.practice-shelf{grid-template-columns:1fr;gap:10px}.practice-card{padding:17px 18px;gap:19px}.mini-board{width:45px;height:45px}.practice-card-copy>span:last-child{font-size:10px}.practice-meta{font-size:8px}.practice-card strong{font-size:12px}.site-footer{margin:0 28px;font-size:8px;flex-wrap:wrap;padding:20px 0;gap:11px}.site-footer>div{gap:10px}.site-footer button{font-size:8px}}
@media(max-width:480px){.site-header{height:78px;padding:0 20px;gap:12px}.brand{font-size:32px;gap:8px}.brand-mark{width:23px;height:23px;transform:scale(.82);transform-origin:center}.main-nav{gap:15px}.nav-button{font-size:10px;padding:14px 0}.header-actions{gap:6px}.header-actions .sound-button{display:none}.header-actions .icon-button{width:30px;height:30px}.header-actions svg{width:17px;height:17px}.nav-dot{display:none}.main-shell{margin-top:26px;padding:0 18px;gap:23px}.intro-panel>.eyebrow{font-size:7px;letter-spacing:1.4px}h1{font-size:36px;letter-spacing:-1.4px;margin:12px 0}.intro-copy{font-size:11px}.personal-stats{margin-top:18px}.personal-stats>div{padding:0 24px}.personal-stats>div:first-child{padding-left:24px}.personal-stats>div:last-child{padding-right:24px}.stat-number{font-size:20px}.game-panel{padding:21px 18px 16px;border-radius:18px}.game-heading{margin:16px 0 17px}.game-heading h2{font-size:24px}.game-heading p{font-size:9px}.puzzle-label{font-size:8px;letter-spacing:1.3px}.difficulty-badge{font-size:8px}.board-wrap{padding:7px;border-radius:12px;min-height:0}.board{gap:5px}.tile{border-radius:7px}.game-controls{gap:18px;padding:12px 0}.game-feedback{font-size:9px}.game-bottomline{font-size:7px}.game-bottomline .text-button{font-size:8px}.connection-status{font-size:9px}.game-controls .control-button{font-size:9px}.game-controls .control-button svg{width:15px;height:15px}.completion-panel{padding:15px}.completion-panel h3{font-size:26px}.completion-panel>p:last-of-type{font-size:10px;margin-bottom:14px}.completion-star{font-size:32px;margin-bottom:8px}.completion-eyebrow{font-size:7px;margin-bottom:8px}.completion-actions{gap:9px;max-width:220px}.primary-button{font-size:11px;padding:12px}.more-section{padding:0 21px}.section-heading h2{font-size:23px}.section-heading>.text-button{font-size:8px;gap:5px}.section-heading>.text-button span{font-size:12px}.site-footer{margin:0 21px}.site-footer>div{width:100%;margin-left:0;justify-content:space-between}.footer-brand{font-size:22px}.site-footer>span:nth-child(2){margin-left:auto}.game-bottomline .text-button span{font-size:12px}}
@media(max-width:360px){.site-header{padding:0 14px;gap:8px}.brand{font-size:29px;gap:4px}.main-nav{gap:11px}.nav-button{font-size:9px}.main-shell{padding:0 12px}h1{font-size:32px}.game-panel{padding:19px 14px 15px}.completion-panel h3{font-size:24px}.completion-star{font-size:26px}.completion-eyebrow{margin-bottom:5px}.completion-panel>p:last-of-type{margin-bottom:10px}.completion-actions .primary-button{padding:10px}.game-controls{gap:14px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.game-feedback{color:#6f7c68}.game-heading p{color:#77836e}.game-bottomline{color:#79856f}.device-note{color:#7d8675}.practice-card-copy>span:last-child{color:#77816e}.preview-label{color:#6c7b61}
@media(max-width:480px){.game-feedback{font-size:10px}.game-heading p{font-size:10px}.game-bottomline{font-size:8px}.game-bottomline .text-button{font-size:10px}.game-controls .control-button{font-size:11px}.connection-status{font-size:10px}.device-note{font-size:9px}.stat-label{font-size:9px}.practice-card-copy>span:last-child{font-size:11px}}
@media(pointer:coarse){.control-button{min-height:44px}.game-controls{padding-top:3px;padding-bottom:3px}.game-bottomline .text-button{min-height:36px}.nav-button{min-height:44px}.header-actions .icon-button{width:36px;height:44px;border:0}.site-footer button{min-height:44px}.secondary-button{min-height:40px}.text-button.how-link{min-height:44px}}

.journey-card{max-width:342px;margin-top:28px;padding:19px 20px 15px;background:linear-gradient(125deg,#f0f2e6,#f7f1e5);border:1px solid #e2e5d5;border-radius:15px;text-align:left}.journey-card-heading{display:flex;justify-content:space-between;align-items:center;gap:14px}.journey-card .eyebrow{font-size:8px;letter-spacing:1.5px}.journey-count{font-size:10px;color:#8b825c;font-variant-numeric:tabular-nums}.journey-card h2{font-family:"Fraunces",Georgia,serif;font-weight:400;font-size:20px;letter-spacing:-.4px;margin:9px 0 15px}.journey-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin-bottom:16px}.journey-step{height:35px;border:1px solid #dce2cd;border-radius:8px;background:#fbfbf3;color:#7d8971;font-size:11px}.journey-step:hover{background:#e4edd9;border-color:#aac09b}.journey-step.current{border:2px solid #d0a16a;color:#87673e;background:#fff8e7}.journey-step.earned{background:#dfe9d4;border-color:#c8d9b9;color:#668557;font-size:18px}.journey-card-actions{display:flex;align-items:center;justify-content:space-between;gap:8px}.journey-card-actions .text-button{font-size:10px;min-height:32px}.journey-card-actions #journey-continue{font-weight:600}.journey-card p{font-size:10px;line-height:1.6;color:#7b846e;margin:6px 0 0}.journey-mode .personal-stats{margin-top:25px}.journey-mode .side-note{margin-top:25px}.tile.guided{border:3px solid #d29b54;background:#fff4d8;box-shadow:0 0 0 2px #f3e5bf}.tile.guided:after{content:"↻";position:absolute;right:5px;top:3px;font-size:18px;line-height:1;color:#a67539;background:#fff4d8;border-radius:50%;width:21px;height:21px}.gentle-assist{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:5px 10px;margin:-3px 0 14px;padding:9px;border-radius:8px;background:#f6efdf;font-size:10px;color:#86734f}.gentle-assist[hidden]{display:none}.gentle-assist button{border:0;background:none;color:#72572f;font-size:10px;text-decoration:underline;padding:4px}.path-list-number{display:grid;place-items:center;flex:none;width:30px;height:30px;border:1px solid #e1e4d5;border-radius:50%;font-size:11px;color:#8a8269;background:#f8f3e7}.path-list-number.earned{background:#e6efdc;color:#718b5d;border-color:#dce5ce;font-size:16px}.path-list-copy{flex:1}.playtest-table-wrap{overflow-x:auto}.playtest-table{width:100%;border-collapse:collapse;font-size:11px;text-align:right;font-variant-numeric:tabular-nums}.playtest-table th,.playtest-table td{border-bottom:1px solid #e2e6d9;padding:9px 7px}.playtest-table th:first-child{text-align:left}.playtest-table thead th{font-weight:500;font-size:10px;color:#718166}.return-notes{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.return-note{font-size:10px;background:#edf0e3;color:#738163;padding:7px 9px;border-radius:7px}.return-note strong{font-weight:600}.completion-actions{gap:8px}.completion-actions .secondary-button[hidden]{display:none}.completion-panel>p:last-of-type{margin-bottom:16px}
@media(min-width:821px){.journey-mode .intro-panel{padding-top:14px}.journey-mode .intro-panel h1{font-size:55px}.journey-mode .side-note{display:none}.journey-mode .how-link{margin-top:16px}.site-footer>div{gap:15px}}
@media(max-width:820px){.journey-card{max-width:475px;margin:20px auto 0;padding:13px 16px}.journey-card h2{font-size:18px;margin:7px 0}.journey-steps{display:none}.journey-card p{font-size:9px;margin-top:3px}.journey-card-actions .text-button{min-height:35px;font-size:10px}.journey-mode .personal-stats,.journey-mode .device-note{display:none}.journey-mode .intro-panel>.eyebrow{display:none}.journey-mode .intro-panel h1{margin-top:0}.site-footer>div{flex-wrap:wrap;gap:10px 16px}.game-heading p{max-width:300px;line-height:1.6}.completion-panel{overflow:auto}}
@media(max-width:480px){.journey-card{margin-top:15px}.journey-mode .main-shell{margin-top:20px;gap:18px}.journey-mode .intro-copy{font-size:11px}.main-nav{gap:14px}.nav-button{font-size:10px;white-space:nowrap}.game-heading h2{font-size:23px}.game-heading p{font-size:10px}.game-topline{gap:6px}.puzzle-label{font-size:7px;letter-spacing:.8px;gap:6px}.completion-actions{gap:3px}.completion-panel h3{font-size:25px}.completion-panel>p:last-of-type{margin-bottom:8px}.completion-star{margin-bottom:6px;font-size:29px}.completion-eyebrow{margin-bottom:6px;letter-spacing:1.1px}.completion-actions .secondary-button{padding:4px;min-height:29px}.completion-actions .primary-button{padding:11px}.site-footer>div{justify-content:flex-start}.site-footer .preview-label{margin-right:auto}}
@media(max-width:360px){.main-nav{gap:9px}.nav-button{font-size:9px}.site-header{gap:6px}.game-heading h2{font-size:21px}.completion-star{font-size:23px;margin-bottom:4px}.completion-panel h3{font-size:22px;margin-bottom:6px}.completion-panel>p:last-of-type{font-size:9px;line-height:1.5}.completion-actions .primary-button{padding:9px}.completion-actions .secondary-button{min-height:26px;font-size:9px}}

.playtest-session-note { max-width: 1208px; margin: 0 auto; padding: 9px 20px; text-align: center; font-size: 11px; color: #526d5d; background: #eef2e7; border-bottom: 1px solid var(--line); }

/* Give the longer wordmark room without compressing the puzzle navigation. */
.brand { flex-shrink: 0; white-space: nowrap; }
.brand-mark { flex-shrink: 0; }
@media (max-width: 680px) {
  .site-header { display: grid; grid-template-columns: minmax(0, 1fr) auto; height: auto; padding: 13px 20px 8px; gap: 4px 14px; }
  .brand { font-size: 34px; letter-spacing: -1.7px; gap: 9px; }
  .header-actions { grid-column: 2; grid-row: 1; }
  .main-nav { grid-column: 1 / -1; grid-row: 2; justify-content: center; margin: 0; gap: 30px; }
  .nav-button { font-size: 12px; padding: 10px 0; }
}
@media (max-width: 360px) {
  .site-header { padding-inline: 14px; }
  .brand { font-size: 31px; gap: 7px; }
  .main-nav { gap: 26px; }
}

/* A completed circuit gets a beginning, one peak, and a quiet resolution. */
.tile:disabled { opacity: 1; }
.tile:disabled:hover { background: #e8f0e1; border-color: #d4e1ca; }
.tile.source:disabled:hover { background: #faf0dd; border-color: #eadab7; }
.tile:disabled:active { transform: none; }
.win-effects { position: absolute; inset: 0; z-index: 2; pointer-events: none; overflow: hidden; border-radius: inherit; }
.win-bloom, .win-ring, .win-glint { position: absolute; left: var(--spark-x); top: var(--spark-y); opacity: 0; }
.win-bloom { width: 270px; height: 270px; margin: -135px; border-radius: 50%; background: radial-gradient(circle, rgba(255,220,142,.65) 0%, rgba(238,190,94,.22) 40%, transparent 70%); }
.win-ring { width: 50px; height: 50px; margin: -25px; border: 2px solid rgba(202,146,61,.65); border-radius: 50%; }
.win-glint { margin: -.5em; color: #b98031; font-size: var(--glint-size); line-height: 1; text-shadow: 0 0 10px #ffe3a9; }
.win-running .tile { animation: circuit-arrive 160ms ease-out var(--win-delay) both; }
.win-running .tile .wire { animation: wire-arrive 160ms ease-out var(--win-delay) both; }
.win-running .tile .wire-center { animation: center-arrive 160ms ease-out var(--win-delay) both; }
.win-running .tile .wire-dot { animation: endpoint-arrive 160ms ease-out var(--win-delay) both; }
.win-running .win-bloom { animation: win-bloom 900ms cubic-bezier(.2,.65,.35,1) var(--peak-delay) both; }
.win-running .win-ring { animation: win-ring 850ms cubic-bezier(.15,.65,.25,1) var(--peak-delay) both; }
.win-running .win-glint { animation: win-glint 620ms cubic-bezier(.12,.6,.3,1) var(--glint-delay) both; }
.board-complete .board { filter: blur(1px); }
.completion-panel { background: rgba(250,249,240,.93); backdrop-filter: blur(3px); }
.completion-star { position: relative; display: grid; place-items: center; width: 62px; height: 62px; margin-bottom: 11px; border-radius: 50%; color: #b9853c; background: radial-gradient(circle, #f7e2b3, #fbf2da 60%, transparent 72%); }
.completion-star::before { content: ''; position: absolute; inset: 2px; border: 1px solid #d7b97d; border-radius: 50%; opacity: .55; }
.completion-star span { display: block; font-size: 36px; line-height: 1; }
.completion-panel h3:focus { outline: none; }
.result-enter { animation: result-arrive 320ms ease-out both; }
.result-enter .completion-star { animation: emblem-settle 500ms cubic-bezier(.16,.75,.3,1) both; }
.completion-actions.actions-waiting { opacity: 0; visibility: hidden; pointer-events: none; }
.completion-actions.actions-enter { animation: actions-arrive 260ms ease-out both; }
.header-actions .sound-button { display: grid; }
@keyframes circuit-arrive { from { box-shadow: inset 0 0 0 0 transparent; } to { background: #f5efdc; border-color: #ddc99b; box-shadow: inset 0 0 0 1px rgba(214,169,85,.18); } }
@keyframes wire-arrive { to { stroke: #c68f43; } }
@keyframes center-arrive { to { fill: #c68f43; } }
@keyframes endpoint-arrive { to { fill: #f9e1a3; stroke: #c68f43; } }
@keyframes win-bloom { 0% { opacity: 0; transform: scale(.35); } 20% { opacity: 1; transform: scale(.88); } 100% { opacity: 0; transform: scale(1.2); } }
@keyframes win-ring { 0% { opacity: 0; transform: scale(.5); } 21% { opacity: .72; } 100% { opacity: 0; transform: scale(5.3); } }
@keyframes win-glint { 0% { opacity: 0; transform: translate(calc(var(--glint-x) * .55), calc(var(--glint-y) * .55)) scale(.5); } 18% { opacity: .9; } 100% { opacity: 0; transform: translate(var(--glint-x), var(--glint-y)) scale(.75); } }
@keyframes result-arrive { from { opacity: 0; } to { opacity: 1; } }
@keyframes emblem-settle { from { transform: scale(.88); opacity: .3; } to { transform: scale(1); opacity: 1; } }
@keyframes actions-arrive { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 480px) {
  .completion-star { width: 44px; height: 44px; margin-bottom: 7px; flex-shrink: 0; }
  .completion-star span { font-size: 28px; }
}
@media (max-width: 360px) {
  .brand { font-size: 29px; gap: 5px; }
  .header-actions { gap: 4px; }
  .completion-star { width: 34px; height: 34px; margin-bottom: 5px; }
  .completion-star span { font-size: 23px; }
}
@media (prefers-reduced-motion: reduce) {
  .win-effects { display: none !important; }
  .win-running .tile, .win-running .tile .wire, .win-running .tile .wire-center, .win-running .tile .wire-dot, .result-enter, .result-enter .completion-star, .actions-enter { animation: none !important; }
}

/* Readable information on the existing paper, sage, and amber surfaces. */
:root {
  --readable-muted: #596c57;
  --readable-amber: #8f602d;
  --wire-unlit: #71816a;
  --wire-lit: #4f7758;
  --wire-source: #996a2f;
}
.intro-copy, .daily-note, .stat-label, .device-note, .side-note p, .side-note-icon,
.nav-button:not(.active), .eyebrow, .game-heading p, .puzzle-label,
.move-counter>span:last-child, .connection-status, .connection-copy strong,
.progress-percent, .game-feedback, .control-button, .game-bottomline, .text-button,
.completion-eyebrow, .completion-panel>p:last-of-type, .secondary-button,
.practice-meta, .practice-card-copy>span:last-child, .card-arrow,
.site-footer, .site-footer button, .preview-label, .modal-note, .help-steps li,
.keyboard-note, .privacy-copy, .puzzle-list-button small, .list-status,
.archive-empty, .step-number, .journey-count, .journey-card p,
.journey-step, .journey-step.earned, .path-list-number, .path-list-number.earned,
.playtest-table thead th, .return-note, .difficulty-badge, .board-loading {
  color: var(--readable-muted);
}
.hint-button, .difficulty-badge.bright, .gentle-assist, .gentle-assist button,
.storage-warning, .text-button:hover, .journey-step.current {
  color: var(--readable-amber);
}
.game-heading p { font-size: 12px; }
.game-feedback { font-size: 12px; line-height: 1.6; }
.game-controls .control-button { font-size: 12px; }
.move-counter>span:last-child, .connection-status, .progress-percent { font-size: 11px; }
.tile .wire { stroke: var(--wire-unlit); }
.tile .wire-center, .tile .wire-dot { fill: #f8f9f3; stroke: var(--wire-unlit); stroke-width: 3; }
.tile.lit .wire { stroke: var(--wire-lit); }
.tile.lit .wire-center, .tile.lit .wire-dot { fill: var(--wire-lit); stroke: var(--wire-lit); }
.tile.source .wire { stroke: var(--wire-source); }
.tile .source-core { fill: var(--wire-source); stroke: #f7dfac; }
.tile.guided { border-color: var(--readable-amber); }
.tile.guided:after { color: var(--readable-amber); }
.journey-step.current { border-color: var(--readable-amber); }
.nav-button.active:after { background: var(--readable-amber); }
button:focus-visible, a:focus-visible, .tile:focus-visible { outline-color: var(--readable-amber); }
.connection-track>span, .mini-light { background: var(--wire-lit); }
.source-key { background: var(--wire-source); }
.node-key { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px 18px; margin: 13px 0 0; font-size: 11px; line-height: 1.5; color: var(--readable-muted); }
.node-key span { display: inline-flex; align-items: center; gap: 6px; }
.node-key i { display: inline-block; width: 9px; height: 9px; border-radius: 50%; border: 2px solid var(--wire-lit); }
.node-key-filled { background: var(--wire-lit); }
.node-key .node-key-hollow { border-color: var(--wire-unlit); background: var(--card); }
.connection-status { margin-top: 12px; }
