:root{--bg:#f7f4ec;--paper:#fffefa;--ink:#233d34;--ink2:#304b42;--muted:#6e7970;--line:#deddd3;--accent:#cb734d;--accent2:#f1decf;--forest:#285e4d;--shadow:0 20px 50px rgba(35,61,52,.08);font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;overflow-x:clip;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;font-size:15px;line-height:1.75}button,input,select{font:inherit}a{color:inherit}a:hover{text-decoration-color:var(--accent)}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.6}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.container{width:min(1120px,calc(100% - 48px));margin-inline:auto}.site-header{border-bottom:1px solid rgba(35,61,52,.13);background:rgba(247,244,236,.96)}.header-inner{height:86px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{text-decoration:none;display:inline-flex;align-items:center;gap:11px;font-size:22px;font-weight:800;letter-spacing:.025em;line-height:1.1}.brand small{display:block;color:var(--muted);font-size:9px;letter-spacing:.21em;font-weight:700;margin-top:8px}.brand-stamp{width:46px;height:46px;background:var(--forest);color:#fff6e9;display:grid;place-items:center;border-radius:10px 10px 10px 3px;font-size:24px;font-family:serif}.main-nav{display:flex;gap:38px;font-size:14px;font-weight:700}.main-nav a{text-decoration:none;padding:8px 2px;border-bottom:2px solid transparent}.main-nav a:hover,.main-nav a[aria-current]{border-color:var(--accent)}.eyebrow,.small-tag,.card-index{font-family:Arial,sans-serif;color:var(--accent);font-size:11px;font-weight:800;letter-spacing:.19em;line-height:1.5}.eyebrow-line{display:inline-block;width:27px;height:2px;background:var(--accent);vertical-align:middle;margin-right:10px}.home-hero{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:30px;min-height:560px;padding-top:54px;padding-bottom:56px}.hero-copy{position:relative;z-index:1}.hero-copy h1{font-size:clamp(48px,5.4vw,76px);font-weight:800;letter-spacing:-.055em;line-height:1.33;margin:24px 0 20px}.hero-copy h1 em{font-style:normal;color:var(--accent)}.lead{max-width:480px;color:#5b6c63;font-size:16px;line-height:2}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}.button{appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:14px;border:1px solid transparent;border-radius:7px;min-height:52px;padding:11px 25px;font-weight:750;text-decoration:none;transition:background-color .15s,transform .15s,border-color .15s}.button:hover{transform:translateY(-1px);text-decoration:none}.button-primary{background:var(--forest);color:#fff}.button-primary:hover{background:#1b493a}.button-outline{background:transparent;border-color:#b1bdb4;color:var(--ink)}.button-outline:hover{background:#e9ede5}.button-dark{background:var(--ink);color:#fff}.button-dark:hover{background:#172d25}.button-outline-dark{border-color:var(--ink);background:#fff;color:var(--ink)}.button-outline-dark:hover{background:#f2f6f0}.muted-info{font-size:13px;color:var(--muted);margin-top:20px}.checkmark{color:var(--forest);margin-left:6px;font-weight:800}.hero-art{position:relative;height:450px;min-width:0}.paper-paper{position:absolute;background:white;border:1px solid #e6e2d9;box-shadow:0 22px 45px rgba(28,49,42,.12)}.paper-back{width:59%;height:300px;right:2%;top:29px;transform:rotate(12deg);background:#fefdf9;padding:32px}.maze-doodle{width:100%;height:100%;display:grid;place-items:center;color:#718d80}.maze-doodle svg{width:100%;height:100%}.paper-front{left:7%;top:52px;width:68%;height:354px;transform:rotate(-8deg);padding:23px 25px;display:flex;flex-direction:column;justify-content:space-between}.paper-label,.paper-bottom{display:flex;justify-content:space-between;gap:8px;color:#52695f;font-weight:700;font-size:9px;letter-spacing:.1em}.paper-bottom{font-size:8px}.hero-mini-sudoku{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));border:2px solid var(--ink);aspect-ratio:1}.hero-mini-sudoku span{display:grid;place-items:center;min-width:0;border-right:1px solid #bdc9c1;border-bottom:1px solid #bdc9c1;font:700 clamp(9px,1.25vw,15px) Arial,sans-serif;color:#203f33}.hero-mini-sudoku span:nth-child(9n){border-right:none}.hero-mini-sudoku span:nth-child(n+73){border-bottom:none}.hero-mini-sudoku span:nth-child(3n):not(:nth-child(9n)){border-right:2px solid var(--ink)}.hero-mini-sudoku span:nth-child(n+19):nth-child(-n+27),.hero-mini-sudoku span:nth-child(n+46):nth-child(-n+54){border-bottom:2px solid var(--ink)}.art-seal{position:absolute;right:1%;bottom:13px;width:95px;height:95px;background:#cb754f;border:5px solid var(--bg);border-radius:50%;color:#fff;display:grid;place-items:center;text-align:center;font:800 13px/1.35 Arial;letter-spacing:.13em;transform:rotate(10deg)}.choice-section{padding-top:48px;padding-bottom:84px}.section-heading h2{font-size:33px;line-height:1.45;letter-spacing:-.04em;margin:8px 0}.section-heading p:last-child{color:var(--muted);margin-top:7px}.choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-top:32px}.choice-card{display:grid;grid-template-columns:135px 1fr;gap:22px;align-items:center;background:#fffefa;border:1px solid #e7e4db;padding:34px 30px;min-height:250px;text-decoration:none;border-radius:10px;transition:box-shadow .15s,transform .15s}.choice-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.choice-icon{height:135px;width:135px;border-radius:12px;background:#f0e8dc;display:grid;place-items:center;color:var(--forest)}.choice-icon svg{width:85px}.sudoku-icon{grid-template-columns:repeat(3,24px);grid-template-rows:repeat(3,24px);justify-content:center;align-content:center;gap:1px;color:var(--ink);font:700 18px Arial}.sudoku-icon span{display:grid;place-items:center;background:#fffaf3;border:1px solid #adc0b5}.sudoku-icon span:nth-child(3n){border-right:2px solid var(--forest)}.choice-card:nth-child(2) .choice-icon{background:#e1ebe4}.card-index{color:var(--muted);font-size:10px}.choice-card h3{font-size:27px;line-height:1.3;margin:7px 0 12px}.choice-card h3 span{font-size:18px;color:var(--accent)}.choice-card p:not(.card-index){color:var(--muted);line-height:1.9;font-size:14px}.card-cta{display:inline-block;color:var(--forest);font-weight:800;font-size:14px;margin-top:10px}.how-section{padding:18px 0 105px}.steps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:28px}.steps-grid article{border-top:2px solid var(--ink);padding-top:17px}.steps-grid article>span{font:800 12px Arial;color:var(--accent)}.steps-grid h3{font-size:20px;margin:9px 0 6px}.steps-grid p{color:var(--muted);font-size:14px;margin:0}.site-footer{border-top:1px solid var(--line);background:#eeeae1;padding:25px 0}.footer-inner{display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:13px;color:#627167}.footer-inner strong{color:var(--ink)}.footer-mark{margin-left:12px}.footer-inner a{font-weight:700}.breadcrumb{color:var(--muted);font-size:13px;margin:27px 0 21px}.breadcrumb a{text-decoration:none}.breadcrumb span{margin:0 10px}.game-shell{padding-bottom:80px}.game-heading{display:flex;justify-content:space-between;align-items:end;gap:18px;margin-bottom:34px}.game-heading h1{font-size:clamp(33px,3.8vw,48px);line-height:1.35;letter-spacing:-.055em;margin:8px 0 10px}.heading-dot{color:var(--accent)}.game-heading p:not(.eyebrow){color:var(--muted);margin:0}.other-game{font-size:14px;font-weight:700;text-decoration:none;white-space:nowrap;border-bottom:1px solid #abbbae;padding-bottom:5px}.workspace{display:grid;grid-template-columns:minmax(260px,335px) minmax(0,1fr);gap:24px;align-items:start}.control-panel,.preview-panel{border:1px solid var(--line);border-radius:10px;background:var(--paper);box-shadow:0 8px 30px rgba(35,61,52,.035)}.control-panel{padding:30px 26px}.panel-heading{border-bottom:1px solid #e5e5dc;padding-bottom:20px;margin-bottom:25px}.panel-heading h2,.preview-top h2{font-size:23px;letter-spacing:-.035em;margin:4px 0 0;line-height:1.5}.small-tag{color:#c47250;font-size:10px}.field{margin:0 0 22px}.field label{display:block;font-weight:800;margin-bottom:9px}.field input,.field select{width:100%;height:50px;border:1px solid #bfc9c1;border-radius:5px;background:#fff;color:var(--ink);padding:0 13px;outline-offset:2px}.field input:focus,.field select:focus{outline:2px solid #88a999;border-color:#729b87}.field-note{color:#7b877d;font-size:12px;line-height:1.7;margin:8px 0 0}.full-button{width:100%}.control-divider{display:flex;align-items:center;gap:12px;color:#98a198;font-size:12px;margin:25px 0 20px}.control-divider:before,.control-divider:after{content:"";height:1px;background:#e0e2d9;flex:1}.daily-link{border:0;border-top:1px solid #e2e6dc;background:transparent;color:var(--forest);padding:23px 0 0;display:flex;width:100%;font-weight:800;text-align:left;margin-top:25px}.daily-link .arrow{margin-left:auto}.preview-panel{padding:30px 33px 32px}.preview-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:20px}.live-pill{white-space:nowrap;border-radius:999px;padding:5px 10px;background:#edf3e9;color:#37644f;font-size:12px;font-weight:800}.live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#63a472;margin-right:4px}.puzzle-info{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:12px;color:#65756c;margin-bottom:13px}.puzzle-info strong{color:var(--ink);font:800 14px Arial;letter-spacing:.06em;margin-left:6px}.preview-paper{background:#fff;border:1px solid #e8e7e1;box-shadow:0 7px 21px rgba(40,58,46,.07);padding:25px 27px 20px;max-width:620px;margin:0 auto}.paper-cap,.paper-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;color:#597064;font-weight:800}.paper-cap{padding-bottom:14px;border-bottom:1px solid #dfe3dc}.paper-cap-num{font:700 11px Arial;white-space:nowrap;letter-spacing:.045em}.paper-foot{border-top:1px solid #e8ebe4;padding-top:13px;margin-top:15px;font-size:10px;color:#75887b}.puzzle-preview{padding:21px 2px 7px;display:flex;justify-content:center;align-items:center}.sudoku-wrap{width:min(100%,460px)}.sudoku-grid{border-collapse:collapse;table-layout:fixed;width:100%;aspect-ratio:1;border:3px solid #233d34;font-family:Arial,Helvetica,sans-serif;line-height:1}.sudoku-grid td{width:11.111%;height:11.111%;padding:0;text-align:center;vertical-align:middle;border:1px solid #c7d0ca;color:#263b34;font-weight:700;font-size:clamp(14px,2.7vw,26px)}.sudoku-grid td.block-right{border-right:3px solid #233d34}.sudoku-grid td.block-bottom{border-bottom:3px solid #233d34}.sudoku-grid td.answer-added{color:#b55f44;font-weight:500}.sudoku-grid td.given{background:#fbfcf9}.maze-wrap{width:min(100%,470px)}.maze-svg{display:block;width:100%;height:auto}.preview-actions{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin:23px 0 22px}.button-small{min-height:41px;padding:7px 14px;font-size:13px}.button-text{padding-left:3px;padding-right:3px;background:transparent;color:var(--forest);font-size:12px}.print-actions{display:grid;grid-template-columns:1fr 1fr;gap:11px}.print-actions .button{padding-left:10px;padding-right:10px;font-size:14px}.pdf-link{display:block;margin:17px auto 0;color:var(--forest);font-weight:800;background:transparent;border:0;text-decoration:underline;text-underline-offset:4px}.print-hint{font-size:12px;color:#78867d;line-height:1.75;text-align:center;max-width:420px;margin:10px auto 0}.status-message{color:var(--forest);font-size:13px;min-height:25px;margin:12px 0 0}.status-message.is-error{color:#aa452d}.game-help{max-width:800px;margin:65px auto 0;border-top:1px solid #d7ded6;padding-top:26px;color:#617068;font-size:14px}.game-help h2{color:var(--ink);font-size:24px}.game-help p{line-height:2}.info-page{max-width:800px;min-height:70vh;padding-bottom:100px}.info-page h1{font-size:42px;line-height:1.4}.info-page h2{margin-top:35px;font-size:21px}.info-page p{color:#5c6c62;line-height:2}.info-note{background:#fff2e6;padding:18px 23px;font-size:13px}.print-sheet,#print-area{display:none}
@media(max-width:850px){.home-hero{min-height:0}.hero-art{height:360px}.paper-front{height:295px;padding:18px}.paper-back{height:260px}.art-seal{width:70px;height:70px;font-size:10px}.choice-card{grid-template-columns:1fr;justify-items:start;padding:26px}.choice-icon{width:100px;height:100px}.workspace{grid-template-columns:minmax(230px,295px) minmax(0,1fr)}.control-panel{padding:24px 20px}.preview-panel{padding:23px 20px}.preview-paper{padding:17px}.sudoku-grid td{font-size:clamp(14px,2.5vw,23px)}}
@media(max-width:670px){.container{width:min(100% - 32px,540px)}.header-inner{height:72px}.brand{font-size:18px}.brand-stamp{height:39px;width:39px;font-size:22px}.brand small{font-size:7px;margin-top:5px}.main-nav{gap:15px;font-size:13px}.home-hero{grid-template-columns:1fr;padding-top:40px;padding-bottom:22px;gap:0}.hero-copy h1{font-size:52px;margin:15px 0}.lead{font-size:14px}.hero-art{height:345px;max-width:400px;width:100%;margin-inline:auto}.paper-front{width:66%;height:292px;top:22px}.paper-back{top:10px}.hero-mini-sudoku span{font-size:12px}.art-seal{bottom:0}.choice-section{padding-top:34px;padding-bottom:65px}.section-heading h2{font-size:27px}.choice-grid,.steps-grid{grid-template-columns:1fr}.choice-card{grid-template-columns:96px 1fr;gap:18px;min-height:200px;padding:20px}.choice-icon{height:90px;width:90px}.choice-icon svg{width:65px}.sudoku-icon{grid-template-columns:repeat(3,19px);grid-template-rows:repeat(3,19px);font-size:14px}.choice-card h3{font-size:23px}.how-section{padding-bottom:65px}.footer-inner{align-items:start;flex-direction:column;gap:8px}.breadcrumb{margin:16px 0}.game-heading{display:block;margin-bottom:22px}.game-heading h1{font-size:36px}.game-heading p:not(.eyebrow){font-size:13px}.other-game{display:inline-block;margin-top:15px}.workspace{grid-template-columns:1fr;gap:18px}.control-panel{padding:23px 21px}.preview-panel{padding:22px 17px}.preview-paper{padding:15px}.sudoku-grid td{font-size:clamp(15px,5vw,27px)}.puzzle-preview{padding:16px 0 4px}.print-actions .button{min-height:48px}.game-help{margin-top:42px}.info-page h1{font-size:31px}}
@media(max-width:375px){.main-nav{gap:9px}.brand{font-size:16px}.brand-stamp{width:35px;height:35px}.choice-card{grid-template-columns:1fr}.choice-card .choice-icon{display:none}.hero-copy h1{font-size:45px}.hero-actions .button{width:100%}}
@media print{
  @page{size:A4 portrait;margin:14mm 14mm 14mm 14mm}
  html,body{background:#fff;color:#111;font-family:Arial,"Yu Gothic",sans-serif}
  .site-header,.game-shell,.site-footer{display:none!important}
  #print-area{display:block!important}
  .print-sheet{display:none;box-sizing:border-box;width:100%;min-height:260mm;position:relative;margin:0;padding:0;page-break-inside:avoid;break-inside:avoid}
  body[data-print-mode="problem"] #print-problem,body[data-print-mode="solution"] #print-solution{display:block!important}
  .print-header{display:flex;align-items:center;justify-content:space-between;border-bottom:1.2px solid #333;padding:0 0 10px;font-size:14px;font-weight:700}
  .print-brand small{font:700 8px Arial;letter-spacing:.1em;color:#666;margin-left:8px}
  .print-type{border:1px solid #555;padding:3px 12px;font-size:12px}
  .print-sheet h1{font-size:25px;line-height:1.4;margin:15px 0 4px}
  .print-sheet h1 small{font-size:14px;font-weight:500;margin-left:15px}
  .print-metadata{font:13px Arial,sans-serif;color:#444;margin:3px 0 0}
  .print-graphic{width:100%;display:flex;align-items:center;justify-content:center;margin:20mm auto 0}
  .sudoku-wrap.is-print{width:166mm;max-width:100%}
  .sudoku-wrap.is-print .sudoku-grid{border:2.3px solid #1c1c1c;aspect-ratio:1}
  .sudoku-wrap.is-print .sudoku-grid td{font-size:24pt;border:1px solid #969696;color:#111;height:auto}
  .sudoku-wrap.is-print .sudoku-grid td.block-right{border-right:2.3px solid #111}
  .sudoku-wrap.is-print .sudoku-grid td.block-bottom{border-bottom:2.3px solid #111}
  .sudoku-wrap.is-print .sudoku-grid td.answer-added{color:#444}
  .sudoku-wrap.is-print .sudoku-grid td.given{background:#fff}
  .maze-wrap.is-print{width:165mm;max-width:100%}
  .maze-wrap.is-print .maze-solution{stroke:#777}
  .print-instruction{font-size:13px;margin:13mm 0 0;color:#454545}
  .print-footer{position:absolute;bottom:6mm;left:0;right:0;border-top:1px solid #ddd;padding-top:7px;display:flex;justify-content:space-between;font-size:11px;color:#555}
}
