:root{--bg:#fafaf7;--ink:#202420;--muted:#596159;--accent:#285644;--line:#dde2da;color:var(--ink);background:var(--bg);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:18px;line-height:1.7}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}a:hover{color:var(--accent);text-underline-offset:.25em;text-decoration:underline}button,select{font:inherit;color:inherit}a:focus-visible,button:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:4px}header,main,footer{max-width:1160px;margin:auto;padding-inline:28px}.site-header{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:28px;min-height:112px;padding-block:20px;display:flex}.brand{letter-spacing:-.06em;white-space:nowrap;font-size:1.75rem;font-weight:850}.brand-dot{color:var(--accent)}.brand small{letter-spacing:.18em;margin-top:-9px;font-size:.72rem;display:block}.site-header nav{flex-wrap:wrap;flex:1;gap:20px;font-size:.85rem;font-weight:600;display:flex}.site-header nav a[aria-current=page]{color:var(--accent);text-underline-offset:8px;text-decoration:underline}.language{gap:3px;font-size:.78rem;display:grid}select{border:1px solid var(--line);background:0 0;border-radius:4px;max-width:100%;min-height:44px;padding:8px}.intro{max-width:920px;padding:40px 0 26px}.eyebrow{color:var(--accent);letter-spacing:.08em;margin:0 0 12px;font-size:.78rem;font-weight:700}.intro h1{letter-spacing:-.055em;word-break:keep-all;overflow-wrap:anywhere;max-width:850px;margin:0 0 22px;font-size:clamp(2.1rem,5vw,3.8rem);line-height:1.18}.lede{color:var(--muted);max-width:760px;font-size:1.05rem}.intro .lede{margin-bottom:0}.topics{border-block:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.topic{border-right:1px solid var(--line);padding:18px 18px 20px;display:block}.topic:first-child{padding-left:0}.topic:last-child{border:0}.topic-no{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.78rem}.topic h2{overflow-wrap:anywhere;margin:8px 0 6px;font-size:1.05rem;line-height:1.35}.topic h2 span{float:right;color:var(--accent);font-weight:400}.topic p{color:var(--muted);margin:0;font-size:.82rem;line-height:1.55}.topic:hover{background:#f0f3ee;text-decoration:none}.entries{padding:34px 0 70px}.section-heading{border-bottom:2px solid var(--ink);align-items:center;gap:14px;padding-bottom:14px;display:flex}.section-heading h2{margin:0;font-size:1.3rem}.count{color:var(--muted);font-size:.8rem}.empty{max-width:620px;padding:45px 0 30px}.empty>span{color:var(--accent);font-size:2rem}.empty h3{margin:12px 0;font-size:1.1rem}.empty p{color:var(--muted);font-size:.9rem}.compact{padding-bottom:10px}.filters{border:1px solid var(--line);border-radius:8px;margin-top:18px}.filters>summary,.archive .series-directory>summary{cursor:pointer;align-items:center;gap:8px;min-height:44px;padding:11px 14px;font-size:.83rem;font-weight:650;list-style:none;display:flex}.filters>summary::-webkit-details-marker,.archive .series-directory>summary::-webkit-details-marker{display:none}.filters>summary:after,.archive .series-directory>summary:after{content:"";border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);width:7px;height:7px;margin-left:auto;transition:transform .15s;transform:rotate(45deg)translateY(-2px)}.filters[open]>summary:after,.archive .series-directory[open]>summary:after{transform:rotate(-135deg)translateY(-2px)}.filters[open]>summary{border-bottom:1px solid var(--line)}.pager{justify-content:center;align-items:center;gap:18px;padding:26px 0 0;display:flex}.pager button{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:24px;min-height:44px;padding:8px 18px;font-size:.85rem}.pager button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.pager button:disabled{opacity:.35;cursor:default}.pager span{color:var(--muted);font-variant-numeric:tabular-nums;text-align:center;min-width:64px;font-size:.85rem}.legacy-filters{flex-wrap:wrap;gap:10px;margin-top:22px;display:flex}.legacy-filters button{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:24px;min-height:44px;padding:8px 16px;font-size:.85rem}.legacy-filters button[aria-pressed=true]{background:var(--accent);color:#fff;border-color:var(--accent)}.post-row{border-bottom:1px solid var(--line);padding:17px 0}.post-row h3{letter-spacing:-.02em;margin:4px 0 5px;font-size:1.16rem;line-height:1.45}.post-row p:not(.eyebrow){color:var(--muted);margin:0;font-size:.85rem}.post-row .eyebrow{flex-wrap:wrap;align-items:baseline;gap:10px;margin:0;font-size:.72rem;display:flex}.post-row .eyebrow time{color:var(--muted);font-variant-numeric:tabular-nums;font-weight:400}.list-toc{margin-top:6px}.list-toc summary{color:var(--muted);cursor:pointer;font-size:.76rem}.list-toc ul{margin:6px 0 0;padding-left:1.1rem;font-size:.8rem}.list-toc li{padding-block:3px}.post-row[hidden],[hidden]{display:none!important}.reading{max-width:720px;margin:60px auto 90px}.reading h1{letter-spacing:-.04em;overflow-wrap:anywhere;font-size:clamp(2rem,4vw,3rem);line-height:1.3}.back{color:var(--muted);margin-bottom:32px;font-size:.85rem;display:inline-block}.metadata{color:var(--muted);border-bottom:1px solid var(--line);flex-wrap:wrap;gap:20px;padding-bottom:22px;font-size:.78rem;display:flex}.reader-control{align-items:center;gap:14px;margin:20px 0;font-size:.85rem;display:flex}.article-brief{border-block:2px solid var(--ink);margin:24px 0}.article-brief div{border-bottom:1px solid var(--line);grid-template-columns:112px 1fr;gap:18px;padding:15px 0;display:grid}.article-brief div:last-child{border-bottom:0}.article-brief strong{color:var(--accent);letter-spacing:.03em;font-size:.8rem}.article-brief p{margin:0;font-size:.94rem;line-height:1.65}.store-cta{background:var(--accent);color:#fff;border-radius:4px;justify-content:space-between;align-items:center;gap:18px;margin:22px 0;padding:16px 18px;font-weight:750;display:flex}.store-cta:hover{color:#fff;background:#1f4435;text-decoration:none}.related-reading{border-top:2px solid var(--ink);margin-top:48px;padding-top:24px}.related-reading h2{font-size:1.2rem}.related-reading ul{padding:0;list-style:none}.related-reading li{border-bottom:1px solid var(--line);padding:15px 0}.related-reading a{color:var(--accent);text-underline-offset:.22em;font-weight:750;text-decoration:underline}.related-reading p{color:var(--muted);margin:5px 0 0;font-size:.84rem}.toc{background:#eef2ed;margin:22px 0;padding:18px}.archive .series-directory{border:1px solid var(--line);background:0 0;border-radius:8px;margin:10px 0 0;padding:0}.archive .series-directory[open]>summary{border-bottom:1px solid var(--line)}.archive .series-directory section{padding:0 14px 12px}.prose{overflow-wrap:anywhere;line-height:1.85}.prose.large{font-size:1.22rem}.prose img{max-width:100%;height:auto}.prose a,.translation-list a{color:var(--accent);text-decoration:underline}.prose pre{background:#eaf0e8;padding:20px;font-size:.85rem;overflow:auto}.prose table{display:block;overflow:auto}.chapter-nav{border-top:1px solid var(--line);justify-content:space-between;gap:20px;margin-top:40px;padding-top:20px;display:flex}.translation-list{padding-left:1.2rem}.translation-list li{padding-block:8px}footer{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;align-items:center;gap:20px;padding-block:28px;font-size:.8rem;display:flex}footer p{flex:1}footer .brand{color:var(--ink);font-size:1.3rem}.skip{background:var(--ink);color:#fff;z-index:2;padding:12px;position:absolute;top:-100px;left:20px}.skip:focus{top:12px}@media (width<=800px){.language>span{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.site-header{justify-content:space-between;gap:14px;min-height:0}.site-header nav{flex-basis:100%;order:3;gap:12px 22px}.topics{grid-template-columns:repeat(2,minmax(0,1fr))}.topic:nth-child(2){border-right:0}.topic:nth-child(3),.topic:nth-child(4){border-top:1px solid var(--line)}.topic:nth-child(3){padding-left:0}.intro{padding-top:42px}footer p{flex-basis:70%}}@media (width<=480px){.pager{gap:10px}.pager span{min-width:52px}header,main,footer{padding-inline:20px}.site-header{padding-block:12px}.brand{font-size:1.45rem}.site-header nav{font-size:.8rem}.intro{padding:24px 0 20px}.intro h1{word-break:normal}.topic{padding:14px 14px 16px}.topic:nth-child(3){border-top:1px solid var(--line)}.topic h2{margin:8px 0}.post-row{padding:15px 0}.reading{margin-top:35px}.article-brief div{grid-template-columns:1fr;gap:4px}footer{gap:12px}.entries{padding-top:35px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}img.app-icon{box-shadow:0 0 0 1px var(--line);border-radius:22.5%;margin:0 0 22px;display:block}.app-quick-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;margin:20px 0 32px;padding:0;list-style:none;display:grid}.app-quick-grid li{border:1px solid var(--line);border-radius:10px;padding:14px}.app-quick-grid a{flex-direction:column;align-items:flex-start;gap:10px;display:flex}.app-quick-grid img{width:52px;height:52px;box-shadow:0 0 0 1px var(--line);border-radius:22.5%}.app-quick-grid strong{overflow-wrap:anywhere;font-size:.9rem;line-height:1.35}.app-quick-grid span{color:var(--accent);font-size:.74rem;font-weight:700}.app-store-groups h3{border-top:2px solid var(--ink);margin:40px 0 0;padding-top:28px;font-size:1.05rem}.app-store-groups h3:first-child{border-top:0;margin-top:24px;padding-top:0}.app-store-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:8px 0 0;padding:0;list-style:none;display:grid}.app-store-list li{margin:0}.app-store-row{border:1px solid var(--line);border-radius:10px;align-items:center;gap:12px;height:100%;padding:12px;display:flex}.app-store-row:hover{border-color:var(--accent);background:#f0f3ee;text-decoration:none}.app-store-row img{width:48px;height:48px;box-shadow:0 0 0 1px var(--line);border-radius:22.5%;flex:none}.app-store-row .icon-placeholder{background:var(--line);border-radius:22.5%;flex:none;width:48px;height:48px}.app-store-row .tool-icon{background:var(--accent);color:#fff;width:48px;height:48px;box-shadow:0 0 0 1px var(--line);border-radius:22.5%;flex:none;padding:11px}.app-store-meta{flex-direction:column;gap:3px;min-width:0;display:flex}.app-store-meta strong{overflow-wrap:anywhere;font-size:.9rem;line-height:1.3}.app-store-meta em{color:var(--muted);font-size:.76rem;font-style:normal}.app-store-meta em.live{color:var(--accent);font-weight:700}.app-tags{flex-wrap:wrap;gap:4px;margin-top:2px;display:flex}.app-tags span{border:1px solid var(--line);color:var(--muted);white-space:nowrap;border-radius:999px;padding:1px 7px;font-size:.66rem;line-height:1.5}@media (width<=800px){.app-store-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=480px){.app-quick-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.app-store-list{grid-template-columns:1fr}}.archive-controls{flex-wrap:wrap;gap:16px;margin-block:24px;display:flex}.archive-controls label{gap:6px;min-width:160px;max-width:100%;font-size:.85rem;display:grid}.list-toc{margin-top:14px;font-size:.85rem}.list-toc summary,.series-directory summary{cursor:pointer;color:var(--accent);font-weight:650}.list-toc ul{padding-left:22px}.list-toc a,.series-directory a{text-underline-offset:.2em;text-decoration:underline}.series-directory h3{font-size:1rem}.series-directory ol{padding-left:24px}.date-note{color:var(--muted);border-left:3px solid var(--line);padding-left:16px;font-size:.82rem}.post-row time{white-space:nowrap}@media (width<=480px){.archive-controls label{flex:100%}}.game-directory{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-block:20px;display:grid}@media (width<=800px){.game-directory{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=480px){.game-directory{grid-template-columns:1fr}}.game-directory>div{border:1px solid var(--line);border-radius:8px;align-content:start;gap:6px;padding:12px 14px;display:grid}.game-directory button{text-align:left;font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;font-weight:650}.game-directory a{overflow-wrap:anywhere;font-size:.75rem}.game-directory button:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.prose .app-icon{object-fit:contain;border-radius:24px;width:144px;height:144px}
