:root{color-scheme:light;--ink: #111111;--muted: #666666;--line: #9f9f9f;--paper: #ffffff;--wash: #f6f6f3;--cell: #fbfbfa;--given: #d9d9d9;--peer: #f7e8bd;--peer-given: #d5c7aa;--selected: #f59b12;--same: #ceddeb;--bad: #ffd8d6;--good: #d9ead7;--focus: #1f6feb}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif}body.modal-open{overflow:hidden}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}.site-header{display:flex;align-items:center;justify-content:space-between;min-height:68px;padding:0 7vw;border-bottom:1px solid #dddddd;background:#fff}.brand{display:inline-flex;align-items:center;gap:10px;color:var(--ink);font-size:1.25rem;font-weight:800;text-decoration:none}.brand img{display:block;width:34px;height:34px}.site-nav{display:flex;align-items:center;gap:6px}.site-nav a{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border:1px solid transparent;border-radius:4px;color:#333;font-size:.95rem;text-decoration:none}.site-nav a:hover,.site-nav a.is-active{border-color:#111;background:#111;color:#fff}main{width:min(1120px,calc(100% - 32px));margin:0 auto}.site-footer{padding:18px 16px;border-top:1px solid #dddddd;color:#555;font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center}.site-disclaimer{margin:0;padding:16px;border-top:1px solid #dddddd;color:#666;font-size:.86rem;line-height:1.45;text-align:center}.play-section{padding:28px 0 46px}.game-meta{display:flex;align-items:center;gap:8px;width:min(780px,100%);margin-bottom:8px;overflow-x:auto;padding-bottom:2px;scrollbar-width:thin}.game-meta>div{display:flex;align-items:center;justify-content:flex-start;flex:0 0 auto;gap:7px;min-height:32px;padding:0 10px;border:1px solid #d8d8d8;border-radius:3px;background:var(--wash)}.game-meta>div:first-child{flex:1 1 auto;min-width:228px}.meta-label{color:var(--muted);font-size:.7rem;font-weight:800;text-transform:uppercase}.game-meta strong{font-size:.84rem;text-align:right;white-space:nowrap}.game-status{min-height:24px;margin:0 0 10px;color:var(--muted);font-size:.95rem}.game-container{display:grid;grid-template-columns:minmax(0,780px) 240px;gap:48px;align-items:start}.board-wrap{width:min(780px,100%)}.sudoku-board{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));width:100%;aspect-ratio:1;border:5px solid #111111;background:#111}.sudoku-cell{position:relative;display:grid;place-items:center;min-width:0;min-height:0;padding:0;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--cell);color:#111;cursor:pointer}.sudoku-cell:nth-child(3n){border-right-width:5px}.sudoku-cell:nth-child(9n){border-right-width:0}.sudoku-cell:nth-child(n+19):nth-child(-n+27),.sudoku-cell:nth-child(n+46):nth-child(-n+54){border-bottom-width:5px}.sudoku-cell:nth-child(n+73):nth-child(-n+81){border-bottom-width:0}.sudoku-cell.given{background:var(--given);font-weight:900}.sudoku-cell.peer{background:var(--peer)}.sudoku-cell.peer.given{background:var(--peer-given)}.sudoku-cell.same-number{background:var(--same)}.sudoku-cell.invalid{background:var(--bad)}.sudoku-cell.correct-user{background:var(--good)}.sudoku-cell.selected{background:var(--selected)}.cell-value{font-size:clamp(1.55rem,5.5vw,3.35rem);font-weight:900;line-height:1}.notes-grid{display:grid;grid-template-columns:repeat(3,1fr);width:82%;height:82%;color:#555;font-size:clamp(.46rem,1.15vw,.8rem);font-weight:700;line-height:1}.notes-grid span{display:grid;place-items:center;min-width:0}.control-panel{display:grid;gap:14px}.mode-toggle,.difficulty-tabs{display:grid;overflow:hidden;border:1px solid #d5d5d5;border-radius:4px;background:#fff}.mode-toggle{grid-template-columns:repeat(2,minmax(100px,1fr))}.difficulty-tabs{grid-template-columns:repeat(3,minmax(78px,1fr))}.mode-button,.difficulty-tab{min-height:38px;border:0;border-right:1px solid #d5d5d5;background:#fff;color:#555;cursor:pointer}.mode-button:last-child,.difficulty-tab:last-child{border-right:0}.mode-button.is-active,.difficulty-tab.is-active{background:#111;color:#fff}.number-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.number-grid button,.edit-row button{min-height:70px;border:1px solid #a8a8a8;border-radius:4px;background:#ddd;color:#111;font-size:2rem;font-weight:900;cursor:pointer}.number-grid button:hover,.edit-row button:hover,.today-button:hover{background:#d1d1d1}.edit-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.erase-button{font-size:2.45rem;line-height:1}.undo-button{font-size:1rem!important}.undo-button:disabled{color:#999;cursor:not-allowed}.candidate-check{display:inline-flex;align-items:center;gap:6px;color:#222;font-size:.95rem}.candidate-check input{width:16px;height:16px;margin:0}.puzzle-switcher{display:flex;align-items:end;flex-wrap:wrap;gap:12px;width:min(780px,100%);margin-top:18px}.date-picker{display:grid;gap:5px;min-width:168px;color:var(--muted);font-size:.82rem;font-weight:700}.date-picker input{min-height:40px;border:1px solid #d5d5d5;border-radius:4px;padding:0 10px;color:#111;background:#fff}.today-button,.new-game-button{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 18px;border-radius:4px;font-weight:800;cursor:pointer}.today-button{border:1px solid #a8a8a8;background:#ddd;color:#111}.new-game-button{border:1px solid #111111;background:#111;color:#fff}.completion-modal[hidden]{display:none}.completion-modal{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:20px;background:#11111194}.completion-dialog{position:relative;width:min(480px,100%);padding:28px;border:1px solid #111111;border-radius:8px;background:linear-gradient(135deg,#f59b1229,#fff0 42%),#fff;box-shadow:0 24px 60px #00000047}.completion-close{position:absolute;top:12px;right:12px;display:grid;place-items:center;width:34px;height:34px;border:1px solid #cfcfcf;border-radius:4px;background:#fff;color:#111;font-size:1.2rem;font-weight:900;cursor:pointer}.completion-dialog h2{max-width:calc(100% - 40px);font-size:2rem}.completion-summary{margin:10px 0 18px;color:#333;font-size:1rem;line-height:1.55}.completion-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px}.completion-stats div{display:grid;gap:4px;min-height:62px;padding:10px;border:1px solid #d8d8d8;border-radius:5px;background:#f7f7f4}.completion-stats span,.share-box span{color:var(--muted);font-size:.72rem;font-weight:800;text-transform:uppercase}.completion-stats strong{font-size:1.05rem}.share-box{display:grid;gap:7px}.share-box textarea{width:100%;min-height:96px;resize:vertical;border:1px solid #cfcfcf;border-radius:5px;padding:10px;background:#fff;color:#111;font:inherit;line-height:1.45}.completion-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.completion-actions button{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 16px;border-radius:4px;font-weight:800;cursor:pointer}.share-button,.play-again-button{border:1px solid #111111;background:#111;color:#fff}.copy-button{border:1px solid #a8a8a8;background:#ddd;color:#111}.info-band{width:100vw;margin-left:calc(50% - 50vw);padding:52px 0 44px;border-top:1px solid #d9e4e2;background:#eef4f3}.info-band-inner{width:min(780px,calc(100% - 32px));margin:0 auto}.content-section,.faq-section{width:min(780px,100%);padding:0 0 34px}.info-band .content-section,.info-band .faq-section{width:100%}.how-to-section{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.95fr);gap:34px;align-items:center;padding:6px 0 38px}.how-to-copy p{color:#333;font-size:1.05rem;line-height:1.65}.how-to-steps{display:grid;gap:10px;margin:18px 0 0;padding-left:20px;color:#333;line-height:1.55}.how-to-steps li::marker{font-weight:900}.how-to-visual{display:grid;gap:12px;justify-items:center}.how-to-image{display:block;width:100%;height:auto;border:1px solid #d1ddda;border-radius:6px;background:#fff;box-shadow:0 10px 24px #1111111a}.how-to-caption{width:100%;margin:0;color:#555;font-size:.9rem;line-height:1.5}.archive-page .content-section,.archive-page .faq-section{width:min(880px,100%)}.eyebrow{margin:0 0 8px;color:var(--muted);font-size:.8rem;font-weight:700;letter-spacing:0;text-transform:uppercase}h1,h2{margin:0;letter-spacing:0}h1{font-size:2.2rem;line-height:1.1}h2{font-size:1.45rem;line-height:1.2}.content-section p,.faq-item p,.empty-state{color:#333;font-size:1.05rem;line-height:1.65}.faq-list{display:grid;gap:10px;margin-top:16px}.faq-item{border-top:1px solid #dddddd;padding:14px 0}.faq-item:last-child{border-bottom:1px solid #dddddd}.faq-item summary{cursor:pointer;font-weight:800}.faq-item a{color:#111;font-weight:800;text-decoration-thickness:2px;text-underline-offset:3px}.archive-page{padding:34px 0 52px}.archive-intro{padding-bottom:20px}.archive-list{display:grid;gap:12px;width:min(880px,100%);padding-bottom:38px}.archive-card{display:grid;grid-template-columns:minmax(180px,1fr) auto;align-items:center;gap:18px;min-height:78px;padding:14px 16px;border:1px solid #d8d8d8;border-radius:6px;background:#fff}.archive-date{display:grid;gap:3px}.archive-date strong{font-size:1.08rem}.archive-date span{color:var(--muted);font-size:.9rem}.archive-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.archive-actions a{display:inline-flex;align-items:center;justify-content:center;min-width:86px;min-height:38px;border:1px solid #111111;border-radius:4px;color:#111;font-weight:800;text-decoration:none}.archive-actions a:hover{background:#111;color:#fff}.sudoku-cell:focus-visible,.mode-button:focus-visible,.difficulty-tab:focus-visible,.number-grid button:focus-visible,.edit-row button:focus-visible,.today-button:focus-visible,.new-game-button:focus-visible,.completion-close:focus-visible,.completion-actions button:focus-visible,.share-box textarea:focus-visible,.date-picker input:focus-visible,.site-nav a:focus-visible,.archive-actions a:focus-visible{outline:3px solid var(--focus);outline-offset:2px;z-index:2}@media(max-width:960px){.site-header{padding:0 16px}main{width:min(100% - 16px,720px)}.game-meta{width:100%}.game-container{display:flex;flex-direction:column;gap:34px}.board-wrap,.puzzle-switcher,.content-section,.faq-section,.how-to-section{width:100%}.how-to-section{grid-template-columns:1fr}.control-panel{width:min(100%,520px);margin:0 auto}.number-grid{grid-template-columns:repeat(5,1fr);gap:8px}.number-grid button,.edit-row button{min-height:42px;font-size:.95rem}.edit-row{order:3}.candidate-check{justify-content:center;order:4}h1{font-size:1.7rem}}@media(max-width:560px){main{width:100%}.play-section,.archive-page{padding-top:16px}.game-meta,.game-status,.control-panel,.puzzle-switcher,.content-section,.faq-section,.how-to-section,.archive-list{width:calc(100% - 24px);margin-left:auto;margin-right:auto}.game-meta{gap:6px}.game-meta>div{min-height:30px;padding:0 8px}.game-meta>div:first-child{min-width:212px}.game-meta strong{text-align:left}.completion-modal{align-items:end;padding:12px}.completion-dialog{padding:24px 18px 18px}.completion-dialog h2{font-size:1.55rem}.completion-stats{grid-template-columns:1fr}.completion-stats div{min-height:48px}.completion-actions{display:grid;grid-template-columns:1fr 1fr}.play-again-button{grid-column:1 / -1}.board-wrap{width:100%}.sudoku-board{border-width:4px}.sudoku-cell{border-right-width:1px;border-bottom-width:1px}.sudoku-cell:nth-child(3n){border-right-width:4px}.sudoku-cell:nth-child(9n){border-right-width:0}.sudoku-cell:nth-child(n+19):nth-child(-n+27),.sudoku-cell:nth-child(n+46):nth-child(-n+54){border-bottom-width:4px}.sudoku-cell:nth-child(n+73):nth-child(-n+81){border-bottom-width:0}.puzzle-switcher{align-items:stretch}.date-picker{flex:1 1 100%}.today-button{flex:1 1 88px}.difficulty-tabs,.new-game-button{flex:1 1 100%}.site-nav a{padding:0 10px}.how-to-section{padding-bottom:30px}.archive-page .content-section,.archive-page .faq-section{width:calc(100% - 24px);margin-left:auto;margin-right:auto}.archive-card{grid-template-columns:1fr}.archive-actions{display:grid;grid-template-columns:repeat(3,1fr)}.archive-actions a{min-width:0}}
