@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-ext-wght-normal-BOFOeGcA.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-wght-normal-Xz1IZZA0.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{font-family:DM Sans Variable,sans-serif;color:#edeee7;background:#171918;font-synthesis:none;font-optical-sizing:auto;font-weight:400;--bg:#171918;--panel:#202320;--ink:#edeee7;--muted:#a2a79e;--accent:#efbc68;--line:#363b34;--ease:cubic-bezier(.16,1,.3,1);color-scheme:dark}*{box-sizing:border-box}body{margin:0;min-width:375px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0}button:disabled{cursor:default;opacity:.35}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:5px}button{touch-action:manipulation}a{color:inherit}::selection{color:#171918;background:var(--accent)}[hidden]{display:none!important}.icon{height:20px;width:20px;flex-shrink:0}button .icon{pointer-events:none}.site-header{height:90px;max-width:1160px;margin:0 auto;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;font-size:29px;font-weight:750;letter-spacing:-1.3px}.brand-out{font-weight:420}.brand-period{color:var(--accent)}.brand-mark{color:var(--accent);width:30px;height:38px;display:grid;place-items:center}.brand-mark .icon{width:28px;height:33px}.header-nav{display:flex;align-items:center;gap:21px}.text-button{display:flex;align-items:center;gap:10px;background:transparent;padding:12px 5px;font-size:14px;color:#c6c9c0}.text-button .icon{width:17px;height:17px}.text-button:hover,.icon-button:hover{color:var(--accent)}.header-divider{width:1px;height:20px;background:var(--line)}.icon-button{display:grid;place-items:center;background:transparent;width:44px;height:44px;color:var(--muted);border-radius:8px}main{max-width:1000px;margin:0 auto;padding-top:35px}.intro{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.intro h1{font-size:50px;line-height:1.09;letter-spacing:-2px;font-weight:500;margin:0;text-wrap:balance}.intro h1 span{font-family:Georgia,serif;font-weight:400;font-style:italic;color:var(--accent);letter-spacing:-1.9px}.intro>p{color:var(--muted);font-size:15px;line-height:1.8;margin:9px 0 0;padding-right:32px}.play-layout{display:grid;grid-template-columns:minmax(280px,1fr) minmax(0,480px);gap:74px;align-items:stretch}.game-sidebar{padding-top:1px;display:flex;flex-direction:column}.mode-control{display:flex;background:#222621;padding:5px;gap:4px;border-radius:10px;max-width:330px}.mode-control button{display:flex;align-items:center;justify-content:center;gap:9px;flex:1;background:transparent;color:var(--muted);font-size:14px;font-weight:550;min-height:43px;border-radius:7px;transition:background .2s,color .2s}.mode-control button .icon{width:17px;height:17px}.mode-control button[aria-pressed=true]{background:#3a4035;color:var(--ink);box-shadow:0 2px 5px #0002}.mode-control button:hover{color:var(--ink)}.size-setting{margin-top:31px;max-width:330px}.control-label{font-size:12px;color:var(--muted);margin:0 0 12px}.size-options{display:flex;gap:8px}.size-options button{background:transparent;border:1px solid #3c4138;border-radius:7px;flex:1;height:46px;font-size:14px;white-space:nowrap;font-weight:600;transition:background .2s}.size-options button span{font-weight:400;color:var(--muted);font-size:12px}.size-options button[aria-pressed=true]{border-color:var(--accent);background:#efbc6812;color:var(--accent)}.size-options button[aria-pressed=true] span{color:var(--accent)}.size-options button:hover{background:#efbc6812}.level-details{margin-top:43px}.level-meta{display:flex;align-items:center;gap:12px;font-size:10px;letter-spacing:1.4px;font-weight:600;color:var(--muted)}.difficulty{font-size:10px;letter-spacing:0;border:1px solid #42483b;padding:4px 8px;border-radius:20px;color:#bec7b0;white-space:nowrap}.level-details h2{font-size:28px;font-weight:500;letter-spacing:-.9px;margin:12px 0 8px;line-height:1.2}.level-details>p{font-size:13px;color:var(--muted);line-height:1.65;margin:0}.inline-link{display:inline-flex;align-items:center;gap:12px;padding:11px 0;font-size:12px;color:#d2d7c9;background:transparent;text-decoration:none}.inline-link .icon{height:15px;width:15px;transition:transform .2s var(--ease)}.inline-link:hover{color:var(--accent)}.inline-link:hover .icon{transform:translate(3px)}.level-details>.inline-link{margin-top:16px}.how-it-works{display:flex;gap:19px;align-items:center;border-top:1px solid var(--line);padding-top:28px;margin-top:29px}.cross-demo{display:grid;grid-template-columns:repeat(3,12px);gap:5px;flex-shrink:0}.cross-demo i{height:12px;width:12px;border:1px solid #41463c;background:#242821;border-radius:3px}.cross-demo .demo-on{background:#78613d;border-color:#96784a}.cross-demo .demo-center{background:var(--accent);border-color:var(--accent);box-shadow:0 0 9px #efbc6822;position:relative}.cross-demo .demo-center:after{content:"";position:absolute;width:2px;height:2px;background:#3b2c17;top:4px;left:4px;border-radius:50%}.how-it-works h3{font-size:12px;font-weight:600;margin:0 0 6px}.how-it-works p{font-size:12px;line-height:1.7;color:var(--muted);margin:0}.sidebar-bottom{display:flex;align-items:center;gap:9px;font-size:11px;color:#9aa18f;margin-top:auto;padding-top:26px;padding-bottom:6px}.little-light{width:5px;height:5px;border-radius:50%;background:#91a37d;box-shadow:0 0 8px #91a37d22}.puzzle-panel{position:relative;background:var(--panel);border-radius:16px;padding:22px 28px 25px;box-shadow:0 18px 50px -22px #0009,0 2px 3px #0003}.panel-top{display:flex;align-items:center;justify-content:space-between}.panel-status{display:flex;align-items:center;gap:8px;font-size:9px;font-weight:600;letter-spacing:1.6px;color:#b9bfaf}.power-dot{height:5px;width:5px;background:var(--accent);border-radius:50%;box-shadow:0 0 8px #efbc6855}.power-dot.off{background:#92ad7a;box-shadow:none}.panel-size{font-size:10px;color:#939c88;letter-spacing:1.8px}.game-stats{display:flex;align-items:center;gap:24px;padding:18px 6px 17px}.game-stats>div{display:flex;flex-direction:column;gap:7px;min-width:63px}.stat-label{font-size:11px;color:var(--muted)}.game-stats strong{font-size:29px;letter-spacing:-1px;font-weight:450;font-variant-numeric:tabular-nums;line-height:1}.game-stats strong>span{font-size:11px;color:#aab19f;font-weight:400;letter-spacing:0}.game-stats strong>.assisted-score{font-size:10px;color:var(--accent)}.stat-divider{height:30px;width:1px;background:#383e32;margin-right:3px}.game-stats>.target-stat{margin-left:auto;text-align:right}.target-stat strong{font-size:20px;letter-spacing:-.5px;padding-top:7px}.board-wrap{background:#171b16;padding:16px;border-radius:9px;box-shadow:inset 0 2px 7px #0005}.board{display:grid;grid-template-columns:repeat(var(--size),minmax(0,1fr));gap:10px;aspect-ratio:1}.light{position:relative;isolation:isolate;display:grid;place-items:center;border-radius:8px;background:#282d25;box-shadow:inset 0 1px #6a765026,0 2px 2px #0005;aspect-ratio:1;padding:0;min-width:0;transition:background .24s var(--ease),box-shadow .24s var(--ease)}.light:after{content:"";position:absolute;inset:0;border:1px solid transparent;border-radius:inherit;pointer-events:none;transition:border-color .2s}.light.on{background:#38352a;box-shadow:inset 0 1px #e5ba6c22,0 2px 2px #0005}.light.neighbor-preview:after{border-color:#9d9d785e}.light.on.neighbor-preview:after{border-color:#efbc6870}.light:active{transform:scale(.96)}.light:focus-visible{outline:2px solid var(--accent);outline-offset:3px;z-index:2}.light-socket{display:flex;flex-direction:column;align-items:center;justify-content:center;height:80%;width:75%;padding-bottom:3%;pointer-events:none}.bulb-globe{position:relative;width:61%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 38% 30%,#414738,#343b2d 75%);box-shadow:inset 0 1px 1px #6e7a4b35,0 5px 8px #0003;transition:background .25s,box-shadow .25s;display:grid;place-items:center;z-index:1}.bulb-globe:before{content:"";position:absolute;width:17%;height:10%;border-radius:50%;background:#89966c17;top:17%;left:22%;transform:rotate(-35deg)}.on .bulb-globe{background:radial-gradient(circle at 38% 30%,#ffdda0,#eab25a 75%,#c68b3c);box-shadow:inset 0 1px 2px #fff2cd8c,0 0 16px #f6bb5b37,0 0 34px #f6bb5b12,0 5px 8px #0002}.on .bulb-globe:before{background:#fff3d457}.filament{width:77%;height:77%;stroke:#79835b50;stroke-width:1;fill:none;position:absolute;top:22%}.on .filament{stroke:#9e6b2d8c}.bulb-base{width:22%;height:17%;margin-top:-4%;display:flex;flex-direction:column;gap:2px;align-items:stretch;position:relative;z-index:0}.bulb-base i{height:2px;border-radius:2px;background:#5a624a}.bulb-base i:last-child{width:65%;align-self:center;background:#4b5340}.on .bulb-base i{background:#a88b58}.on .bulb-base i:last-child{background:#7b6947}.hint-marker{display:none;position:absolute;right:8px;top:8px;width:6px;height:6px;border-radius:50%;background:#f9e5b7;box-shadow:0 0 9px #efbc6860}.light.hinted:after{border:2px solid var(--accent)}.light.hinted .hint-marker{display:block}.board[data-size="6"],.board[data-size="7"]{gap:6px}.board[data-size="6"] .light,.board[data-size="7"] .light{border-radius:5px}.board[data-size="6"] .bulb-base,.board[data-size="7"] .bulb-base{gap:1px}.board-caption{display:flex;align-items:center;justify-content:center;gap:12px;font-size:10px;color:#a9b09e;margin:15px 0 18px}.caption-rule{height:2px;width:2px;border-radius:50%;background:#6a755d}.board-caption>span:last-child{color:#d6d9ce}.game-actions{display:flex;gap:9px}.secondary-button,.hint-button{height:43px;display:flex;align-items:center;justify-content:center;gap:8px;border-radius:7px;font-size:11px;font-weight:550;transition:background .2s}.secondary-button{background:#2c3128;color:#c2c8b8;padding:0 15px;flex:1}.secondary-button:not(:disabled):hover{background:#3b4234}.secondary-button .icon{height:15px;width:15px}.hint-button{margin-left:auto;background:#edbd70;color:#302615;padding:0 19px;flex:1.2}.hint-button .icon{height:16px;width:16px}.hint-button:not(:disabled):hover,.next-button:hover{background:#ffd28c}.panel-screw{position:absolute;bottom:12px;width:5px;height:5px;border:1px solid #69735855;border-radius:50%}.panel-screw:after{content:"";width:3px;height:1px;background:#69735855;position:absolute;top:1px;transform:rotate(-40deg)}.screw-one{left:12px}.screw-two{right:12px}.completion{border-top:1px solid var(--line);margin-top:22px;padding-top:20px;display:flex;align-items:center;gap:15px;justify-content:space-between}.completion strong{font-size:13px;font-weight:600;color:#c4d7ad}.completion p{color:var(--muted);font-size:11px;margin:5px 0 0}.next-button{background:var(--accent);color:#302615;border-radius:7px;display:flex;align-items:center;gap:8px;font-size:11px;min-height:43px;padding:0 13px;flex-shrink:0}.next-button .icon{width:16px}.hint-message{font-size:12px;line-height:1.6;color:var(--accent);margin:18px 0 0;padding-top:15px;border-top:1px solid var(--line)}.journey{margin-top:43px}.journey-label{display:flex;justify-content:space-between;font-size:11px;color:#ced3c5}.journey-label strong{color:var(--accent);font-weight:500;font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.progress-track{display:flex;gap:5px;margin:16px 0 9px}.progress-track>span{height:16px;flex:1;background:#2c3228;border-radius:2px}.progress-track>span:nth-child(10n){margin-right:9px}.progress-track>span:last-child{margin-right:0}.progress-track>span.complete{background:#aa915d}.progress-track>span.current{outline:1px solid var(--accent);outline-offset:-1px;background:#51432d}.journey-footer{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#929b86}.journey-footer .inline-link{font-size:10px;padding:7px 0}.site-footer{max-width:1160px;margin:35px auto 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:22px 0 24px;color:#969d8c;font-size:10px}.site-footer>span:last-child{display:flex;align-items:center;gap:6px}.site-footer .icon{width:12px;height:12px;color:#9eac8a}dialog{color:var(--ink);background:#22261f;border:1px solid #414839;border-radius:16px;padding:30px;width:580px;max-width:calc(100% - 32px);max-height:85dvh;box-shadow:0 24px 100px #0009;scrollbar-color:#697058 #22261f;scrollbar-width:thin}dialog::backdrop{background:#090c0bd9}.dialog-heading{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:23px}.dialog-heading h2{font-size:26px;letter-spacing:-.8px;font-weight:500;margin:3px 0 8px}.dialog-heading p{color:var(--muted);font-size:12px;line-height:1.7;margin:0}.dialog-heading .icon-button{margin:-5px -10px 0 0;flex-shrink:0}.level-group{margin-top:25px}.level-group-heading{display:flex;align-items:center;gap:12px;margin-bottom:10px}.level-group-heading h3{font-size:15px;font-weight:500;margin:0}.level-group-heading>span{font-size:11px;color:var(--muted)}.level-buttons{display:grid;grid-template-columns:repeat(10,1fr);gap:6px}.level-choice{display:flex;flex-direction:column;align-items:center;gap:6px;background:#30362a;border:1px solid transparent;min-height:56px;border-radius:6px;padding:8px 0 6px;font-size:13px;font-variant-numeric:tabular-nums}.level-choice:hover{background:#424936}.level-choice.is-current{border-color:var(--accent);color:var(--accent)}.level-choice.is-complete{background:#3b422f}.level-dot{width:3px;height:3px;background:#7b8668;border-radius:50%;margin-top:3px}.level-score{font-size:8px;color:#bbc9a5;display:flex;align-items:center;gap:1px}.level-score .icon{height:10px;width:10px}.dialog-note{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:10px;margin:26px 0 0;flex-wrap:wrap}.dialog-note>.icon{height:13px;width:13px;color:#c1cfac}.legend-current{width:8px;height:8px;border:1px solid var(--accent);margin-left:12px;border-radius:2px}.assisted-legend{margin-left:auto}.help-content{font-size:13px;line-height:1.8;color:#bec6b2}.help-content h3{font-size:14px;font-weight:600;color:var(--ink);margin:25px 0 8px}.help-content p{margin:0 0 12px}.keyboard-help{display:flex;flex-direction:column;gap:10px;margin:22px 0}.keyboard-help>span{display:flex;align-items:center;gap:6px;font-size:11px}kbd{border:1px solid #565f48;background:#30372a;border-radius:4px;padding:1px 6px;font:inherit;color:#e3e7d9;min-width:23px;text-align:center}.about-lines{padding-top:2px}.about-lines p{margin:0 0 6px;font-size:12px}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%);background:#e8dcc5;color:#332b1e;padding:13px 22px;border-radius:9px;box-shadow:0 5px 30px #0006;font-size:12px;max-width:90%;width:max-content;z-index:5}.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}@media(min-width:1400px){main{padding-top:38px}.intro{margin-bottom:30px}}@media(max-width:1230px){.site-header,.site-footer{margin-left:40px;margin-right:40px}main{margin-left:60px;margin-right:60px}.play-layout{gap:45px;grid-template-columns:minmax(260px,1fr) minmax(0,480px)}}@media(max-width:980px){main{margin:0 40px;padding-top:40px}.play-layout{gap:32px;grid-template-columns:minmax(235px,1fr) minmax(0,1.55fr)}.intro h1{font-size:44px}.intro>p{padding:0;font-size:13px}.puzzle-panel{padding:21px 20px 25px}.board-wrap{padding:12px}.board{gap:8px}.game-stats{padding:22px 4px 20px;gap:18px}.secondary-button{padding:0 9px}.hint-button{padding:0 12px}.game-actions{gap:7px}.level-meta{gap:8px;font-size:9px;letter-spacing:.8px}.difficulty{font-size:9px;padding:4px 6px}.size-options{gap:5px}.how-it-works{gap:13px}.how-it-works p{font-size:11px}.sidebar-bottom{font-size:10px}.completion{flex-wrap:wrap}.level-details{margin-top:33px}.level-details h2{font-size:25px}}@media(max-width:720px){.site-header{height:73px;margin:0 23px}.brand{font-size:26px;gap:7px}.brand-mark .icon{width:25px;height:30px}.header-nav{gap:12px}.text-button{font-size:12px;gap:7px}.text-button .icon{width:15px}.header-divider{height:17px}.header-nav .icon-button{width:32px}.header-nav .icon-button .icon{width:18px}main{margin:0 auto;padding:25px 23px 0;max-width:540px}.intro{display:block;margin-bottom:23px}.intro h1{font-size:38px;line-height:1.07;letter-spacing:-1.7px}.intro h1 br{display:none}.intro h1 span{display:block;letter-spacing:-1.5px}.intro>p{font-size:12px;line-height:1.7;margin-top:15px}.intro>p br{display:none}.play-layout{display:flex;flex-direction:column;gap:21px}.game-sidebar{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.mode-control{max-width:none;width:100%;grid-column:1/-1}.mode-control button{min-height:40px;font-size:12px}.size-setting{margin-top:17px;max-width:none;grid-column:1/-1}.control-label{margin-bottom:10px;font-size:11px}.size-options{gap:8px}.size-options button{height:44px;font-size:13px}.size-options button span{font-size:11px}.level-details{grid-column:1/-1;margin-top:18px;position:relative}.level-meta{font-size:9px;letter-spacing:1px;gap:11px}.difficulty{font-size:9px;padding:3px 7px}.level-details h2{font-size:23px;margin:10px 0 0;padding-right:105px}.level-details>p{display:none}.level-details>.inline-link{font-size:0;position:absolute;right:0;bottom:0;margin:0;padding:5px}.level-details>.inline-link:before{content:"All levels";font-size:11px}.level-details>.inline-link .icon{height:14px;width:14px}.how-it-works,.sidebar-bottom{display:none}.puzzle-panel{padding:19px 18px 25px;border-radius:13px}.panel-status{font-size:8px;letter-spacing:1.3px}.panel-size{font-size:9px}.game-stats{padding:22px 3px 21px;gap:21px}.game-stats>div{min-width:52px;gap:7px}.stat-label{font-size:10px}.game-stats strong{font-size:27px}.game-stats .target-stat strong{font-size:19px}.game-stats strong>span{font-size:10px}.stat-divider{margin:0;height:28px}.board-wrap{padding:11px}.board{gap:8px}.board-caption{font-size:9px;gap:9px;margin:17px 0 20px}.secondary-button,.hint-button{height:45px;font-size:10px;gap:7px}.hint-button{flex:1.2;padding:0 9px}.secondary-button{padding:0 10px}.game-actions{gap:7px}.secondary-button .icon{height:14px;width:14px}.hint-button .icon{height:15px;width:15px}.journey{margin-top:29px}.journey-label{font-size:10px}.progress-track{gap:3px;margin-top:13px}.progress-track>span{height:13px;border-radius:1px}.progress-track>span:nth-child(10n){margin-right:3px}.journey-footer,.journey-footer .inline-link{font-size:9px}.site-footer{margin:25px 23px 0;padding:19px 0 24px;gap:10px;flex-wrap:wrap;font-size:9px}.site-footer>span:last-child{font-size:9px}.completion{gap:16px}.completion strong{font-size:12px}.completion p{font-size:10px}.next-button{min-height:41px;font-size:10px}.hint-message{font-size:11px}.level-buttons{grid-template-columns:repeat(5,1fr);gap:7px}.level-choice{min-height:54px}.level-group{margin-top:23px}.dialog-heading h2{font-size:23px}.dialog-heading p{font-size:11px}.assisted-legend{width:100%;margin:8px 0 0}dialog{padding:23px;max-height:88dvh}.toast{font-size:11px}.board[data-size="7"]{gap:3px}.board[data-size="6"]{gap:4px}.board[data-size="7"] .light{border-radius:3px}.board[data-size="7"] .hint-marker{width:4px;height:4px;right:3px;top:3px}.board[data-size="6"] .hint-marker{width:4px;height:4px;right:4px;top:4px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media(max-width:720px){.level-details>.inline-link[data-mode=random]:before{content:"New puzzle"}.puzzle-panel:has(.board[data-size="6"]){margin-inline:-8px;padding-inline:14px}.puzzle-panel:has(.board[data-size="7"]){margin-inline:-16px;padding-inline:12px}.puzzle-panel:has(.board[data-size="6"]) .board-wrap,.puzzle-panel:has(.board[data-size="7"]) .board-wrap{padding:8px}.board[data-size="7"]{gap:2px}}
