:root{--bg:#f8f7f2;--ink:#20362c;--green:#244d3c;--lime:#dce778;--line:#dce0d7;--orange:#ec865a}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--bg);color:var(--ink);font-family:'Noto Sans JP',sans-serif;font-size:14px}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:3px solid var(--orange);outline-offset:4px}header{max-width:1240px;margin:auto;padding:28px 40px;display:flex;justify-content:space-between;align-items:center}.brand{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:800;letter-spacing:.03em}.brand small{display:block;font-size:8px;letter-spacing:.23em;margin-top:4px}.mark{font-size:42px;line-height:1;color:var(--green)}nav{display:flex;gap:32px;font-weight:600}nav a:hover{color:#6a8139}.hero{max-width:1160px;margin:10px auto 68px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:40px;padding:20px 0}.eyebrow{font-size:10px;letter-spacing:.18em;font-weight:700;color:#64816b;margin:0 0 20px}h1{font-size:clamp(44px,5vw,68px);letter-spacing:.015em;line-height:1.45;margin:0;font-weight:900}h1 span{color:#e48355}.intro{line-height:2;margin:24px 0 28px;color:#5c6c60}.primary{border:0;display:inline-flex;justify-content:center;gap:40px;align-items:center;background:var(--green);color:white;font-weight:600;padding:17px 24px;border-radius:7px}.primary:hover{background:#376349}.hero-note{font-size:11px;color:#788375;margin-top:16px}.hero-art{height:420px;background:#e8eddb;border-radius:100px 16px 100px 16px;position:relative;display:flex;align-items:center;justify-content:center;transform:rotate(2deg)}#hero-shape{width:65%;height:65%;transform:rotate(-2deg)}#hero-shape svg{width:100%;height:100%;overflow:visible}.art-note{position:absolute;top:30px;left:35px;background:var(--bg);padding:8px 14px;border-radius:30px;font-size:12px;transform:rotate(-6deg)}.art-bottom{position:absolute;bottom:28px;right:32px;font-size:12px;font-weight:600;transform:rotate(-2deg)}.spark{position:absolute;font-style:normal;color:#758b3d;font-size:50px}.s1{right:25px;top:65px}.s2{bottom:45px;left:25px;font-size:32px}.collection{max-width:1160px;margin:auto;padding-bottom:70px}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:25px}.section-heading .eyebrow{margin-bottom:10px}h2{font-size:30px;line-height:1.6;margin:0;font-weight:800;letter-spacing:.02em}.section-note{font-size:12px;color:#758175;margin-bottom:9px}.filters{background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px 26px;display:grid;gap:16px}fieldset{border:0;padding:0;margin:0;display:flex;align-items:center;gap:24px;min-width:0}legend{float:left;width:54px;flex:none;font-size:12px;font-weight:700;padding:10px 0}fieldset>div{display:flex;gap:8px;flex-wrap:wrap}.chip{border:1px solid var(--line);background:white;border-radius:30px;padding:9px 18px;color:#647060;font-size:12px}.chip.active{background:var(--green);color:white;border-color:var(--green)}.list-meta{display:flex;justify-content:space-between;align-items:center;margin:25px 0 18px;color:#768271;font-size:12px}.list-meta p{margin:0}.list-meta strong{font-size:20px;color:var(--ink);margin-right:5px}.text-button{border:0;background:none;color:#5c6c60;font-size:12px;padding:8px 0}.text-button:hover{text-decoration:underline}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.card{padding:0;text-align:left;background:white;border:1px solid var(--line);border-radius:12px;overflow:hidden;color:var(--ink);transition:transform .2s,box-shadow .2s}.card:hover{transform:translateY(-4px);box-shadow:0 10px 25px #20362c10}.card-visual{height:190px;padding:35px;position:relative;background:#f0f1e9;display:flex;align-items:center;justify-content:center}.card:nth-child(4n+2) .card-visual{background:#f3ebe3}.card:nth-child(4n+3) .card-visual{background:#e8edeb}.card:nth-child(4n+4) .card-visual{background:#f2efd9}.card-visual svg{width:100%;height:100%}.card-number{position:absolute;top:14px;left:16px;font-size:9px;color:#94a08c;letter-spacing:.14em}.card-body{padding:18px}.card-tags{font-size:10px;color:#76846e;display:flex;justify-content:space-between;gap:8px}.card h3{font-size:16px;margin:10px 0 0;display:flex;justify-content:space-between;align-items:center}.card h3 span{font-size:18px;color:#8b987e}.difficulty-note{font-size:10px;color:#7b8777;margin-top:23px}.empty{padding:50px;text-align:center;background:#fff;border-radius:12px;line-height:2}.guide{background:#e9edde;padding:60px max(40px,calc((100vw - 1160px)/2));display:grid;grid-template-columns:1fr 1fr;gap:60px}.guide p{font-size:12px;line-height:2;color:#64725d}.guide ol{list-style:none;padding:0;margin:0;display:grid;gap:24px}.guide li{display:flex;gap:20px}.guide li>span{font-size:11px;background:var(--green);color:white;width:28px;height:28px;display:grid;place-content:center;border-radius:50%;flex:none}.guide h3{margin:0;font-size:15px}.guide li p{margin:7px 0 0}.book{max-width:1160px;margin:60px auto;display:flex;justify-content:space-between;gap:30px;align-items:center;padding:35px 40px;border:1px solid #d7ddcc;border-radius:12px}.book h2{font-size:24px}.book p:not(.eyebrow){font-size:12px;line-height:2;color:#71816d;margin-bottom:0}.book .eyebrow{margin-bottom:10px}.coming{font-size:11px;background:#e8eddd;padding:12px 18px;border-radius:30px;white-space:nowrap}footer{border-top:1px solid var(--line);max-width:1240px;margin:auto;padding:35px 40px 45px;display:flex;gap:20px;align-items:center;flex-wrap:wrap}footer .brand{font-size:14px}footer p,footer small{font-size:10px;color:#7a8776}footer small{margin-left:auto}dialog{border:0;border-radius:18px;width:min(720px,calc(100% - 24px));max-height:92dvh;background:var(--bg);color:var(--ink);padding:24px 34px;overflow:auto}dialog::backdrop{background:#20362cd9;backdrop-filter:blur(5px)}.dialog-top{display:flex;justify-content:space-between;align-items:center;font-size:12px}.dialog-top button{border:0;background:#e8edde;border-radius:50%;width:34px;height:34px;font-size:25px;color:var(--green)}.puzzle-heading{text-align:center;margin-top:15px}.puzzle-heading .eyebrow{margin:0 0 5px}.puzzle-heading h2{font-size:28px}.puzzle-heading>p:last-child{font-size:12px;color:#75816e}.puzzle-image{height:310px;padding:34px;background:#eaeee1;border-radius:12px;display:flex;justify-content:center}.puzzle-image svg{max-width:100%;height:100%}.puzzle-actions{display:flex;justify-content:center;gap:12px;margin-top:20px}.secondary{background:transparent;color:var(--green);border:1px solid #bac6af;padding:14px 20px;border-radius:7px;font-weight:600}.puzzle-actions .primary{padding:14px 30px}.hint-box{background:#fff1d7;padding:14px 18px;font-size:12px;line-height:1.8;border-radius:8px}.next-row{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);margin-top:22px;padding-top:13px}.next-row span,.small-note,#answer-note{font-size:10px;color:#788571;text-align:center;line-height:1.8}.small-note{margin-top:16px}body:has(dialog[open]){overflow:hidden}[hidden]{display:none!important}@media(max-width:1240px){.hero,.collection,.book{margin-left:40px;margin-right:40px}}@media(max-width:850px){.grid{grid-template-columns:repeat(3,1fr)}.hero{gap:25px}.hero-art{height:340px}.hero h1{font-size:44px}.section-note{display:none}.guide{gap:35px}.card-visual{height:170px;padding:28px}}@media(max-width:600px){header{padding:20px}.brand{font-size:14px;gap:7px}.brand small{font-size:6px}.mark{font-size:32px}nav{gap:15px;font-size:11px}.hero{margin:15px 20px 40px;grid-template-columns:1fr;gap:28px;padding:0}.hero .eyebrow{font-size:8px;margin-bottom:13px}h1,.hero h1{font-size:40px;line-height:1.35}.intro{font-size:12px;line-height:1.9;margin:18px 0}.primary{font-size:12px;padding:15px 20px;gap:32px}.hero-note{font-size:9px}.hero-art{height:240px;max-width:390px;width:100%;justify-self:center;border-radius:65px 12px 65px 12px}.art-note{top:18px;left:23px;font-size:10px}.art-bottom{bottom:18px;font-size:10px}.s1{top:30px;font-size:38px}.s2{bottom:28px}.collection{margin:0 20px;padding-bottom:35px}h2{font-size:24px}.eyebrow{font-size:8px}.filters{padding:15px 13px;gap:14px}fieldset{display:block}legend{float:none;width:auto;padding:0;margin-bottom:9px;font-size:11px}.chip{font-size:10px;padding:8px 13px}fieldset>div{gap:6px}.grid{grid-template-columns:repeat(2,1fr);gap:12px}.card-visual{height:142px;padding:26px}.card-body{padding:13px}.card h3{font-size:13px}.card-tags{font-size:9px}.card-number{top:10px;left:12px;font-size:8px}.list-meta{margin:18px 0 14px}.difficulty-note{font-size:9px;line-height:1.8}.guide{padding:35px 20px;grid-template-columns:1fr;gap:25px}.guide h2{font-size:24px}.guide p{font-size:11px}.guide ol{gap:20px}.book{margin:30px 20px;padding:25px 20px;display:block}.book h2{font-size:20px}.book p:not(.eyebrow){font-size:11px}.coming{display:inline-block;margin-top:18px;font-size:10px}.desktop{display:none}footer{padding:25px 20px;gap:6px 18px}footer small{margin:8px 0 0;width:100%}dialog{padding:16px;border-radius:12px}.puzzle-image{height:260px;padding:25px}.puzzle-heading h2{font-size:24px}.puzzle-heading>p:last-child{font-size:10px}.puzzle-actions{gap:9px}.puzzle-actions button{font-size:11px;padding:13px 17px}.dialog-top{font-size:10px}.hint-box{font-size:11px}.empty{padding:30px 12px;font-size:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.card{transition:none}}
@media(max-width:360px){header{align-items:flex-start;gap:12px;flex-direction:column}.brand{font-size:15px}header nav{width:100%;justify-content:flex-end;gap:20px}h1{font-size:35px!important;letter-spacing:-.04em!important}.hero{padding-top:24px}}
button:disabled{opacity:.4;cursor:default}button:focus-visible,a:focus-visible{outline:3px solid #bd6b37;outline-offset:4px}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*{transition:none!important}}
/* Dark, accessible footer */
footer{max-width:none;background:#183b2d;color:#f7f8f2;border-top:1px solid #183b2d;padding-left:max(20px,calc((100vw - 1160px)/2));padding-right:max(20px,calc((100vw - 1160px)/2))}
footer .brand,footer a,footer p,footer small{color:#f7f8f2}
footer a:hover{color:#dce778}footer a:focus-visible{outline-color:#dce778}

/* Consistent white cards and dedicated detail page */
.hero-art{background:#fff;border:1px solid var(--line);border-radius:12px;transform:none}.hero-art #hero-shape,.art-note,.art-bottom{transform:none}.art-note{background:white}.card-visual,.card:nth-child(n) .card-visual{background:#fff}.card{display:block}.detail-page{max-width:760px;margin:20px auto 60px;padding:28px 32px;background:white;border:1px solid var(--line);border-radius:12px;min-height:65vh}.detail-top{font-size:13px}.detail-top a{text-decoration:underline}.detail-page h1{font-size:30px}.puzzle-image{background:white}.detail-page .puzzle-heading{margin-top:25px}.detail-page .puzzle-image{height:360px}.detail-page .next-row{padding-bottom:12px}@media(max-width:600px){.hero-art{border-radius:12px}.detail-page{margin:12px 16px 32px;padding:20px 16px}.detail-page h1{font-size:26px!important}.detail-page .puzzle-image{height:280px;padding:20px}.detail-page .puzzle-actions{flex-wrap:wrap}}
.hero-challenge{text-decoration:underline;text-underline-offset:4px;color:var(--green);padding:8px 0}.hero-challenge:hover{color:#566b2b}
.pagination{display:flex;justify-content:center;align-items:center;gap:24px;margin:28px 0 10px}.pagination .secondary{font-size:12px;padding:12px 16px}.pagination span{font-size:12px;white-space:nowrap}#page-range{text-align:left;margin:0 0 14px}@media(max-width:600px){.pagination{gap:12px;flex-wrap:wrap}.pagination .secondary{font-size:11px;padding:11px 12px}.pagination span{font-size:11px}}
.browse-links,.breadcrumbs{display:flex;flex-wrap:wrap;gap:10px 20px;font-size:12px;margin:16px 0;line-height:1.8}.browse-links a,.breadcrumbs a{text-decoration:underline;text-underline-offset:3px}.detail-description{font-size:12px;line-height:1.9;color:#5c6c60;text-align:center}.breadcrumbs{max-width:760px;margin:10px auto;padding:0 20px}.theme-links{margin-top:0}
/* Clear heading hierarchy for featured puzzle and book section */
.hero-art{height:470px;display:grid;grid-template-rows:auto auto 1fr auto;justify-items:stretch;padding:26px 30px;gap:8px}.art-heading{font-size:30px;line-height:1.6;margin:0}#hero-title{font-size:18px;line-height:1.6;margin:0;color:var(--green)}.hero-art #hero-shape{height:245px;width:100%;align-self:center}.hero-art .art-bottom{position:static;justify-self:end;align-self:end}.book h2{font-size:30px;line-height:1.6}@media(max-width:600px){.hero-art{height:350px;padding:20px;gap:5px}.art-heading,.book h2{font-size:24px}#hero-title{font-size:16px}.hero-art #hero-shape{height:180px}}
.hero-art{grid-template-rows:auto 1fr auto}#hero-title{display:block;margin-top:6px}
/* Audit corrections: readable secondary text, keyboard access and touch targets. */
/* Fragment navigation keeps its focus target; suppress its ring only for a recorded pointer arrival. */
#results:focus-visible{outline:3px solid #175a3d;outline-offset:4px}
#results.pointer-arrival:focus{outline:none}
.skip-link{position:fixed;top:8px;left:8px;z-index:50;padding:12px 18px;background:#183b2d;color:#fff;transform:translateY(-160%);border-radius:6px}.skip-link:focus{transform:translateY(0)}
.hero-note,.section-note,.list-meta,.difficulty-note,.small-note,#answer-note,.card-tags,.card-number,.puzzle-heading>p:last-child,.next-row span{color:#52634f}
.eyebrow{color:#48644e}.book p:not(.eyebrow){color:#52634f}.card h3 span{color:#52634f}
.card-tags,.card-number,.difficulty-note,.small-note,#answer-note,.hero-note{font-size:12px}.chip{min-height:44px;font-size:12px}.text-button{min-height:44px;display:inline-flex;align-items:center}.next-row .text-button{padding:10px 6px}.browse-links a,.breadcrumbs a{padding:4px 0}button:focus-visible,a:focus-visible{outline-color:#175a3d}footer a:focus-visible{outline-color:#dce778}
@media(max-width:600px){.card-tags{font-size:11px;flex-wrap:wrap}.card-body{padding:12px}.difficulty-note,.small-note,#answer-note,.hero-note{font-size:11px}.card-number{font-size:11px}.card h3{gap:6px}.next-row{gap:8px}.next-row span{font-size:11px}}
.source-note{border-top:1px solid var(--line);margin-top:24px;padding-top:20px;font-size:12px;line-height:1.9;color:#52634f}.source-note h2{font-size:16px}.source-note a,.sources-page a{text-decoration:underline;text-underline-offset:3px}.sources-page{max-width:900px;margin:24px auto 60px;padding:0 24px;line-height:1.9}.sources-page h1{font-size:32px}.sources-page>section{margin:32px 0}.sources-page h2{font-size:21px}.source-list{padding-left:24px}.source-list li{padding:24px 0;border-top:1px solid var(--line)}.source-list p{margin:8px 0}.noscript-note{padding:16px 24px;background:#fff1d7;line-height:1.8}footer .footer-source{font-size:12px;text-decoration:underline}
/* Stable pagination: previous / current / next remain in one row on small screens. */
html{scroll-behavior:auto}.pagination{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;width:100%;max-width:460px;margin:28px auto 10px;gap:12px}.pagination .secondary{display:flex;align-items:center;justify-content:center;min-height:44px;text-align:center;white-space:nowrap;padding:12px 8px}.pagination [aria-disabled="true"]{opacity:.42;cursor:default;pointer-events:none}.pagination span{text-align:center}#results{scroll-margin-top:24px}@media(max-width:600px){.pagination{gap:8px}.pagination .secondary{font-size:11px;padding:12px 4px}.pagination span{font-size:11px}}
.link-arrow{width:16px;height:16px;flex:none;display:inline-block;vertical-align:middle;color:currentColor}
/* Source diagrams share exactly the current question / solution geometry. */
.source-figures{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:20px 0;align-items:start}.source-figures figure{margin:0;padding:20px;background:#fff;border:1px solid var(--line,#d8ddd5);border-radius:16px}.source-figures figcaption{font-weight:700;margin-bottom:14px}.source-figures svg{display:block;width:100%;height:220px}.source-answer{background:#fff;border:1px solid var(--line,#d8ddd5);border-radius:16px;padding:18px}.source-answer summary{cursor:pointer;font-weight:700;min-height:30px}.source-answer summary:focus-visible{outline:3px solid #628a70;outline-offset:5px}.source-answer figure{padding:16px 0;border:0}.source-answer p,.source-verification,.source-tags{font-size:.9rem;line-height:1.8}.source-list li{overflow-wrap:anywhere}.source-answer:not([open])>figure,.source-answer:not([open])>p{display:none}@media(max-width:600px){.source-figures{grid-template-columns:1fr;gap:12px}.source-figures svg{height:210px}.source-figures figure{padding:16px}}
/* Center painted logo geometry, not the font glyph's asymmetric bearings. */
header .brand{color:var(--green)}header .brand,footer .brand{align-items:center;line-height:1.4}.brand .mark{display:inline-flex;align-items:center;justify-content:center;width:1em;height:1em;flex:0 0 1em}.brand .mark svg{display:block;width:80%;height:80%;overflow:visible}.brand>span:last-child{display:block;line-height:1.4}footer .brand .mark{color:inherit}
