@import "https://fonts.googleapis.com/css2?family=Archivo+Black&family=Archivo:wght@400;600;700&display=swap";:root{color:#171715;font-synthesis:none;text-rendering:optimizelegibility;--ink:#171715;--paper:#f6f1e7;--white:#fffdf7;--acid:#dfff43;--coral:#ff725e;--sky:#9ddcff;--muted:#6e695f;--blocked:#d4cec2;--clue-across:#d9edf9;--clue-down:#f2e7cb;--border:3px solid var(--ink);--shadow:6px 6px 0 var(--ink);background:#f6f1e7;font-family:Archivo,ui-sans-serif,system-ui,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle, #17171517 1px, transparent 1.5px), var(--paper);background-size:18px 18px;min-width:320px;min-height:100vh;margin:0}button{color:inherit;font:inherit}button:focus-visible,a:focus-visible{outline:4px solid var(--coral);outline-offset:3px}.site-header{border:var(--border);background:var(--white);width:min(1180px,100% - 32px);min-height:68px;box-shadow:5px 5px 0 var(--ink);justify-content:space-between;align-items:center;gap:20px;margin:18px auto 0;padding:10px 12px 10px 18px;display:flex}.wordmark{cursor:pointer;letter-spacing:-.04em;background:0 0;border:0;padding:4px 0;font-family:Archivo Black,sans-serif;font-size:1.25rem}.wordmark span{background:var(--acid);padding:2px 6px}.nav-toggle{display:none}nav{gap:6px;display:flex}nav button,nav a{cursor:pointer;color:inherit;text-align:center;background:0 0;border:2px solid #0000;justify-content:center;align-items:center;min-height:44px;padding:8px 13px;font-weight:700;text-decoration:none;display:inline-flex}nav button:hover,nav a:hover,nav .nav-active{border-color:var(--ink);background:var(--sky)}main{width:min(1180px,100% - 32px);margin:0 auto}h1,h2,p{margin-top:0}h1,h2{letter-spacing:-.04em;font-family:Archivo Black,sans-serif}.home-page{grid-template-columns:minmax(0,1fr);gap:32px;padding-bottom:64px;display:grid}.home-page>.page-heading{flex-wrap:wrap}.home-copy{flex:360px}.home-page>.daily-ticket{justify-self:center;width:min(100%,560px)}.rule-strip{flex-wrap:wrap;gap:13px 18px;margin:0;padding:0;font-size:.83rem;font-weight:700;list-style:none;display:flex}.rule-strip li{align-items:center;gap:8px;display:inline-flex}.rule-strip strong{border:2px solid var(--ink);background:var(--acid);place-items:center;width:25px;height:25px;display:grid}.home-help-link{min-height:44px;color:inherit;text-underline-offset:4px;align-items:center;gap:8px;margin-top:14px;font-weight:700;display:inline-flex}.how-to-page,.colophon-page{max-width:760px;padding-bottom:64px;line-height:1.65}.how-to-page>.page-heading,.colophon-page>.page-heading{margin-bottom:36px;display:block}.how-to-page .how-to-intro{max-width:none;font-size:1.16rem;line-height:inherit;margin:28px 0 0}.how-to-page section,.colophon-page section{margin-bottom:36px}.how-to-page h2,.colophon-page h2{margin-bottom:16px;font-size:clamp(1.25rem,4vw,1.6rem);line-height:1.2}.colophon-list{gap:12px;margin:0;padding-left:24px;display:grid}.clue-directions{padding-left:24px}.clue-directions li+li{margin-top:8px}.how-to-example{border:var(--border);background:var(--white);box-shadow:var(--shadow);flex-wrap:wrap;align-items:center;gap:24px;margin:24px 0;padding:22px;display:flex}.example-board{flex:0 0 180px;width:180px}.example-cells{aspect-ratio:1;border:2px solid var(--ink);background:var(--ink);grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);gap:2px;display:grid}.example-cells .clue-number{font-size:1rem}.example-digit{background:var(--white);place-items:center;font-size:1.5rem;font-weight:700;display:grid}.how-to-example figcaption{flex:200px}.how-to-example figcaption strong{display:block}.how-to-tools>div{margin-bottom:16px}.how-to-tools dt{font-weight:700}.how-to-tools dd{margin:0}.how-to-start{color:inherit;text-decoration:none;display:inline-block}.daily-ticket{border:var(--border);background:var(--coral);box-shadow:10px 10px 0 var(--ink);padding:22px;position:relative;rotate:1deg}.daily-ticket:before{content:"";border:2px dashed var(--ink);pointer-events:none;position:absolute;inset:11px}.ticket-topline,.daily-preview{position:relative}.ticket-topline{border-bottom:2px solid var(--ink);justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:12px;font-size:.82rem;font-weight:700;display:flex}.daily-preview{grid-template-columns:minmax(140px,210px) 1fr;align-items:center;gap:24px;display:grid}.daily-preview h2{margin-bottom:8px;font-size:1.85rem;line-height:1}.daily-preview p{margin-bottom:22px;font-size:.88rem;line-height:1.45}.difficulty{border:2px solid var(--ink);background:var(--acid);text-transform:uppercase;letter-spacing:.05em;width:fit-content;padding:4px 8px;font-size:.72rem;font-weight:800;display:inline-flex}.difficulty-2{background:var(--sky)}.difficulty-3{background:var(--coral)}.difficulty-picker{align-items:center;gap:12px;margin:24px 0 0;font-weight:700;display:flex}.difficulty-picker select{border:2px solid var(--ink);background:var(--white);min-height:44px;color:var(--ink);font:inherit;padding:8px 12px}.difficulty-picker select:focus-visible{outline:4px solid var(--coral);outline-offset:3px}.puzzle-loading{min-height:50vh;padding:64px 0}.classic-notice{text-align:center;margin:0 12px 24px;font-size:.875rem;line-height:1.5}.classic-notice a{color:inherit;font-weight:700}.mini-board{grid-template-columns:repeat(var(--board-size), 1fr);aspect-ratio:1;border:3px solid var(--ink);background:var(--ink);gap:1px;width:100%;display:grid;overflow:hidden}.mini-play{background:var(--white)}.mini-block{background:var(--blocked)}.mini-clue{background:linear-gradient(45deg, var(--clue-down) calc(50% - .5px), var(--ink) calc(50% - .5px), var(--ink) calc(50% + .5px), var(--clue-across) calc(50% + .5px))}.primary-button,.check-button{border:var(--border);background:var(--acid);box-shadow:4px 4px 0 var(--ink);cursor:pointer;padding:12px 16px;font-weight:800;transition:transform .16s ease-out,box-shadow .16s ease-out}.primary-button:hover,.check-button:hover{box-shadow:2px 2px 0 var(--ink);transform:translate(2px,2px)}.page-heading{border-bottom:var(--border);justify-content:space-between;align-items:end;gap:32px;padding:58px 4px 26px;display:flex}.page-heading h1{margin-bottom:0;font-size:clamp(2.6rem,6vw,5rem);line-height:.9}.page-heading p{max-width:390px;margin-bottom:3px;line-height:1.5}.archive-heading-copy{justify-items:start;gap:14px;display:grid}.text-button{border:0;border-bottom:2px solid var(--ink);cursor:pointer;background:0 0;padding:0 0 3px;font-weight:800}.archive-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:22px;padding:32px 0 64px;display:grid}.catalogue-pagination{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:24px;font-size:.8rem;display:flex}.catalogue-pagination button{border-color:var(--ink);background:var(--white)}.catalogue-pagination button:disabled{color:var(--muted);cursor:default;background:0 0;border-color:#0000}.catalogue-preview-placeholder{aspect-ratio:1;border:var(--border);background:var(--paper);width:100%;color:var(--muted);text-align:center;place-items:center;padding:12px;font-size:.8rem;display:grid}.archive-card{border:var(--border);background:var(--white);min-width:0;box-shadow:4px 4px 0 var(--ink);text-align:left;cursor:pointer;flex-direction:column;gap:13px;padding:13px;transition:transform .16s ease-out,box-shadow .16s ease-out;display:flex}.archive-card:nth-child(3n+2){background:#fff2a9}.archive-card:hover{box-shadow:7px 7px 0 var(--ink);transform:translate(-2px,-2px)}.archive-date{min-height:2em;font-size:.8rem;font-weight:800}.archive-meta{justify-content:space-between;align-items:center;gap:6px;display:flex}.archive-meta strong{font-size:.82rem}.archive-meta .difficulty{padding:2px 5px;font-size:.58rem}.print-page{padding:56px 0 72px}.print-heading{border-bottom:var(--border);grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:32px;padding:0 4px 28px;display:grid}.print-heading h1{max-width:780px;margin-bottom:0;font-size:clamp(2.8rem,6vw,5rem);line-height:.9}.print-heading-copy{justify-self:end;justify-items:start;gap:20px;max-width:390px;display:grid}.print-heading-copy p{margin-bottom:0;line-height:1.5}.print-controls{gap:16px;display:flex}.paper-control{gap:7px;min-width:150px;display:grid}.paper-control label{text-transform:uppercase;letter-spacing:.05em;font-size:.72rem;font-weight:800}.paper-control select{border:2px solid var(--ink);background:var(--white);min-height:46px;color:var(--ink);font:inherit;border-radius:0;padding:0 34px 0 12px;font-weight:700}.paper-control select:focus-visible{outline:4px solid var(--coral);outline-offset:3px}.pack-toolbar{border:var(--border);background:var(--sky);box-shadow:6px 6px 0 var(--ink);justify-content:space-between;align-items:center;gap:24px;margin-top:28px;padding:18px 20px;display:flex}.pack-toolbar>div{gap:4px;display:grid}.pack-toolbar strong{font-family:Archivo Black,sans-serif;font-size:1.15rem}.pack-toolbar span{font-size:.76rem;font-weight:700}.pack-toolbar .primary-button:disabled{cursor:not-allowed;filter:grayscale();opacity:.55}.export-message{min-height:1.4em;margin:19px 2px 0;font-size:.8rem;font-weight:700}.export-error{color:#9e1d0d}.print-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;padding-top:20px;display:grid}.print-card{border:var(--border);background:var(--white);min-width:0;box-shadow:4px 4px 0 var(--ink);padding:13px;display:grid}.print-card-selected{box-shadow:7px 7px 0 var(--ink);background:#f1ffad}.print-card label{cursor:pointer;gap:12px;min-width:0;display:grid;position:relative}.print-card input{z-index:1;width:22px;height:22px;accent-color:var(--ink);margin:0;position:absolute;top:0;right:0}.print-card-date{min-height:22px;padding-right:29px;font-size:.8rem;font-weight:800}.print-card>button{border:2px solid var(--ink);background:var(--white);cursor:pointer;min-height:42px;margin-top:13px;font-size:.75rem;font-weight:800}.print-card>button:hover:not(:disabled){background:var(--coral)}.print-card>button:disabled{cursor:wait;opacity:.55}.player-page{padding:20px 0 70px}.player-heading{grid-template-columns:1fr auto 1fr;align-items:center;margin-bottom:5px;display:grid}.player-heading>div{text-align:center}.player-heading h1{margin-bottom:4px;font-size:1.6rem}.player-heading p{color:var(--muted);font-size:.85rem;font-weight:700}.player-heading .difficulty{justify-self:end}.back-button{cursor:pointer;background:0 0;border:0;justify-self:start;padding:8px 0;font-weight:800}.game-layout{grid-template-columns:minmax(380px,620px) minmax(260px,340px);justify-content:center;align-items:start;gap:clamp(34px,7vw,84px);display:grid}.puzzle-stage{isolation:isolate;position:relative}.puzzle-board{grid-template-columns:repeat(var(--board-size), 1fr);grid-template-rows:repeat(var(--board-size), minmax(0, 1fr));aspect-ratio:1;border:4px solid var(--ink);background:var(--ink);width:100%;box-shadow:8px 8px 0 var(--ink);gap:2px;display:grid;overflow:hidden;container-type:inline-size}.cell-number,.clue-digit{transform-origin:bottom;line-height:1;display:inline-block}.is-solved .cell-number,.is-solved .clue-digit{animation:1.4s ease-in-out number-wiggle}.solved-overlay{z-index:1;pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.solved-badge{border:var(--border);background:var(--acid);box-shadow:var(--shadow);padding:12px 24px;font-family:Archivo Black,sans-serif;font-size:clamp(2rem,6vw,3.5rem);line-height:1.1;transform:rotate(-6deg)}.is-solved .solved-badge{animation:.3s cubic-bezier(.2,1.4,.5,1) both solved-pop}@keyframes number-wiggle{0%,to{transform:rotate(0)}20%{transform:rotate(-7deg)}40%{transform:rotate(7deg)}60%{transform:rotate(-4deg)}80%{transform:rotate(4deg)}}@keyframes solved-pop{0%{opacity:0;transform:scale(.7)rotate(-6deg)}to{opacity:1;transform:scale(1)rotate(-6deg)}}.clue-cell{background:var(--blocked);min-width:0;color:var(--ink);position:relative;overflow:hidden}.clue-cell.has-across{--upper-triangle:var(--clue-across)}.clue-cell.has-down{--lower-triangle:var(--clue-down)}.clue-cell.has-clue{background:linear-gradient(45deg, var(--lower-triangle,var(--blocked)) 50%, var(--upper-triangle,var(--blocked)) 50%)}.clue-divider{pointer-events:none;width:100%;height:100%;stroke:var(--ink);stroke-width:1.25px;position:absolute;inset:0}.clue-number{font-size:clamp(.625rem, calc(100cqw * var(--clue-text-ratio) / var(--board-size)), 1.25rem);font-variant-numeric:tabular-nums;pointer-events:none;font-weight:800;line-height:1;position:absolute;transform:translate(-50%,-50%)}.clue-legend{flex-wrap:wrap;justify-content:center;gap:8px 12px;margin:20px 0 0;font-size:.75rem;font-weight:700;display:flex}.clue-legend>span{border:1px solid var(--ink);padding:5px 8px}.legend-across{background:var(--clue-across)}.legend-down{background:var(--clue-down)}.play-cell{background:var(--white);cursor:pointer;border:0;place-items:center;min-width:0;padding:0;font-family:Archivo Black,sans-serif;font-size:clamp(1rem,4.2vw,2.3rem);display:grid}.play-cell:hover:not(:disabled){background:#efffc3}.play-cell:disabled{cursor:default;color:var(--ink);opacity:1}.play-cell.selected{background:var(--acid);box-shadow:inset 0 0 0 4px var(--coral)}.play-cell.incorrect{color:#b52212;box-shadow:inset 0 0 0 4px var(--coral);background:#ffd2cb}.note-grid{grid-template-columns:repeat(3,1fr);align-items:center;width:86%;height:86%;font-family:Archivo,sans-serif;font-size:clamp(.42rem,1.2vw,.72rem);font-weight:700;display:grid}.game-message{text-align:center;min-height:1.5em;margin:22px 0 0;font-size:.9rem;font-weight:700}.controls-panel{border:var(--border);background:var(--sky);min-width:0;box-shadow:7px 7px 0 var(--ink);gap:12px;padding:22px;display:grid;container-type:inline-size}.control-toprow,.control-actions{grid-template-columns:1fr 1fr;gap:9px;display:grid}.controls-panel button{border:2px solid var(--ink);background:var(--white);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;min-width:0;min-height:44px;font-size:.82rem;font-weight:800}@media (hover:hover){.controls-panel button:hover:not(:disabled){background:var(--acid)}}.controls-panel button:active:not(:disabled){background:var(--acid)}.controls-panel button:disabled{cursor:not-allowed;opacity:.42}.keypad{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(6px,2cqw,10px);padding-bottom:3px;display:grid}.keypad button{width:100%;height:clamp(48px,18cqw,72px);min-height:48px;box-shadow:0 3px 0 var(--ink);padding:0;font-family:Archivo Black,sans-serif;font-size:clamp(1.25rem,7cqw,1.75rem);transition:background-color .1s,box-shadow .1s,transform .1s}.keypad button:active:not(:disabled){box-shadow:none;transform:translateY(3px)}.controls-panel .active-control{background:var(--acid);box-shadow:inset 0 -5px #17171533}.controls-panel .check-button{border:var(--border);background:var(--coral);width:100%;min-height:50px;font-size:.92rem}.keyboard-tip{color:#343431;text-align:center;margin:0;font-size:.67rem;line-height:1.45}.solve-time{margin:0;font-weight:700}.share-message{margin:0;font-size:.85rem;line-height:1.5}.share-message:empty{display:none}.share-link{gap:6px;min-width:0;font-size:.85rem;font-weight:700;display:grid}.share-link input,.share-link textarea{border:2px solid var(--ink);background:var(--white);width:100%;min-width:0;min-height:44px;color:var(--ink);font:inherit;padding:8px}.share-link input:focus-visible,.share-link textarea:focus-visible{outline:4px solid var(--coral);outline-offset:3px}footer{border-top:2px solid var(--ink);justify-content:center;gap:16px;width:min(1180px,100% - 32px);margin:0 auto 18px;padding:18px 0 4px;font-size:.72rem;display:flex}footer a{color:var(--muted);text-underline-offset:3px;justify-content:center;align-items:center;padding:4px 0;font-weight:600;text-decoration:underline;text-decoration-thickness:1px;display:inline-flex}footer a:hover,footer a[aria-current=page]{color:var(--ink)}@media (width<=900px){.home-page{padding-bottom:74px}.archive-grid,.print-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.game-layout{grid-template-columns:minmax(0,620px)}.controls-panel{justify-self:center;width:100%}}@media (width>=620px) and (width<=900px){.keypad{grid-template-columns:repeat(9,minmax(0,1fr));gap:6px}.keypad button{height:56px;font-size:1.4rem}}@media (width<=700px){.site-header{flex-wrap:wrap;gap:4px;width:calc(100% - 20px);min-height:0;margin-top:10px;padding:6px 10px 6px 12px}.wordmark{font-size:1rem}.nav-toggle{cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;width:36px;height:28px;padding:0;font-size:1.75rem;line-height:1;display:inline-flex}.nav-toggle[aria-expanded=true]{background:var(--acid)}.site-header nav{border-top:2px solid var(--ink);flex-basis:100%;justify-content:space-between;padding-top:4px;display:none}.site-header nav.nav-open{display:flex}nav button,nav a{flex:1;min-width:0;padding:7px 4px;font-size:.82rem}}@media (width<=560px){main{width:calc(100% - 20px)}.home-copy{margin-top:24px}.daily-ticket{box-shadow:6px 6px 0 var(--ink);padding:18px}.daily-preview{grid-template-columns:120px 1fr;gap:15px}.daily-preview h2{font-size:1.35rem}.daily-preview p{margin-bottom:13px;font-size:.72rem}.primary-button{padding:10px;font-size:.78rem}.page-heading{padding-top:44px;display:block}.page-heading p,.archive-heading-copy{margin-top:18px}.archive-heading-copy p{margin-top:0}.archive-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.print-page{padding-top:42px}.print-heading{grid-template-columns:1fr;gap:24px}.print-heading h1{font-size:clamp(2.7rem,14vw,4.5rem)}.print-heading-copy{justify-self:stretch;max-width:none}.print-controls{flex-direction:column;width:100%}.paper-control{width:100%}.pack-toolbar{flex-direction:column;align-items:stretch}.pack-toolbar .primary-button{width:100%}.print-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.player-page{width:100%}.player-heading{grid-template-columns:auto 1fr auto;gap:6px;width:calc(100% - 20px);margin-inline:auto}.player-heading h1{font-size:1.08rem}.back-button{font-size:0}.back-button span{font-size:1.4rem}.puzzle-board{box-shadow:0 7px 0 var(--ink);border-inline:0}.board-panel{width:100%}.game-layout{gap:14px}.controls-panel{width:calc(100% - 20px);box-shadow:5px 5px 0 var(--ink);padding:12px}.clue-legend,.game-message{display:none}.keypad{grid-template-columns:repeat(9,minmax(0,1fr));gap:4px}.keypad button{height:44px;min-height:44px;font-size:1.1rem}footer{gap:6px;width:calc(100% - 20px)}}@media (prefers-reduced-motion:reduce){.is-solved .cell-number,.is-solved .clue-digit,.is-solved .solved-badge{animation:none}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
