@font-face{font-family:KouzanBrush;src:url(/fonts/KouzanBrushFont.otf) format("opentype");font-weight:400;font-display:swap}:root{--washi: #f5ebd4;--washi-light: #faf3e3;--washi-shadow: #e8dabe;--sumi: #1b1b1c;--sumi-soft: #33333a;--shu: #d0342c;--shu-deep: #a81f1a;--shu-light: #f26a5f;--ai: #1f3c6e;--ai-deep: #0f2347;--kin: #c9a961;--kin-deep: #a8872e;--sakura: #f4c2c2;--matcha: #7b8f5e;--text: var(--sumi);--text-muted: rgba(27, 27, 28, .6);--rule: rgba(27, 27, 28, .18);--rule-strong: rgba(27, 27, 28, .42);--grid-max: 1200px;--gutter: clamp(20px, 4vw, 56px);--display: "KouzanBrush", "Hiragino Mincho ProN", "Yu Mincho", serif;--serif: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", "MS Mincho", serif;--serif-italic: "Hiragino Mincho ProN", "Yu Mincho", serif;--fs-meta: 11px;--fs-caption: 13px;--fs-body: 15px;--fs-lead: 18px;--fs-h3: 22px;--fs-h2: 32px;--fs-h1: clamp(72px, 16vw, 200px);--fs-numeral: clamp(48px, 10vw, 96px)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;padding:0;font-family:var(--serif);font-size:var(--fs-body);line-height:1.85;color:var(--text);background-color:var(--washi);background-image:url(/washi-bg.jpg);background-repeat:repeat;background-size:480px;-webkit-font-smoothing:antialiased;font-feature-settings:"palt" 1}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;background:radial-gradient(ellipse 80% 60% at 0% 0%,rgba(27,27,28,.05),transparent 60%),radial-gradient(ellipse 60% 80% at 100% 100%,rgba(31,60,110,.04),transparent 60%)}a{color:inherit;text-decoration:none;transition:color .16s ease}a:hover{color:var(--shu-deep)}.page{position:relative;min-height:100vh;display:flex;flex-direction:column;z-index:1}.page-header{position:sticky;top:0;z-index:50;padding:16px var(--gutter);background:#f5ebd4db;-webkit-backdrop-filter:saturate(140%) blur(10px);backdrop-filter:saturate(140%) blur(10px);border-bottom:1px solid var(--rule)}.page-header-inner{max-width:var(--grid-max);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:var(--gutter)}.page-header-logo{font-family:var(--display);font-size:24px;letter-spacing:.06em;color:var(--sumi)}.page-header-logo:hover{color:var(--shu-deep)}.page-header-meta{display:flex;gap:24px;font-family:var(--serif);font-size:var(--fs-meta);letter-spacing:.32em;text-transform:uppercase;color:var(--text-muted)}.page-main{flex:1}.page-footer{margin-top:auto;padding:56px var(--gutter) 40px;border-top:1px solid var(--rule);background:#e8dabe57;font-size:var(--fs-caption);color:var(--text-muted)}.page-footer-inner{max-width:var(--grid-max);margin:0 auto;display:grid;grid-template-columns:1fr auto;gap:24px;align-items:end}.page-footer-mark{font-family:var(--display);font-size:28px;color:var(--sumi);letter-spacing:.06em;line-height:1}.page-footer-mark span{display:block;font-family:var(--serif);font-size:var(--fs-meta);letter-spacing:.32em;text-transform:uppercase;color:var(--text-muted);margin-top:8px;font-weight:400}.page-footer-links{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:20px;font-size:var(--fs-caption)}.page-footer-links a{color:var(--sumi);border-bottom:1px solid var(--rule);padding-bottom:2px}.page-footer-links a:hover{border-bottom-color:var(--shu)}.hero{position:relative;min-height:84vh;padding:120px var(--gutter) 80px;overflow:hidden;border-bottom:1px solid var(--rule)}.hero-grid{position:relative;z-index:2;max-width:var(--grid-max);margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--gutter);align-items:end}.hero-kanji{position:absolute;inset:0;display:flex;align-items:center;justify-content:flex-end;pointer-events:none;z-index:1;font-family:var(--display);font-size:clamp(420px,78vw,1100px);line-height:.82;color:#1b1b1c0b;letter-spacing:-.02em;-webkit-user-select:none;user-select:none;transform:translate(8%,-2%)}.hero-eyebrow{display:flex;align-items:center;gap:16px;font-size:var(--fs-meta);letter-spacing:.42em;text-transform:uppercase;color:var(--shu-deep);margin-bottom:32px;animation:rise .7s 80ms cubic-bezier(.2,.8,.2,1) both}.hero-eyebrow:before{content:"";display:block;width:32px;height:1px;background:var(--shu)}.hero-title{font-family:var(--display);font-size:var(--fs-h1);line-height:.94;letter-spacing:.04em;font-weight:400;margin:0 0 24px;color:var(--sumi);text-shadow:0 1px 0 rgba(245,235,212,.6),0 0 28px rgba(27,27,28,.06)}.hero-title-char{display:inline-block;animation:brushDrop .9s cubic-bezier(.2,.8,.2,1) both}.hero-title-char:nth-child(1){animation-delay:.22s}.hero-title-char:nth-child(2){animation-delay:.32s}.hero-title-char:nth-child(3){animation-delay:.42s}.hero-title-char:nth-child(4){animation-delay:.52s}.hero-title-char:nth-child(5){animation-delay:.62s}.hero-rule{width:88px;height:2px;background:var(--sumi);margin:8px 0 28px;transform-origin:left;animation:ruleSlide .6s .72s cubic-bezier(.2,.8,.2,1) both}.hero-tagline{font-family:var(--serif);font-size:var(--fs-lead);max-width:30em;color:var(--sumi-soft);letter-spacing:.04em;line-height:1.85;margin:0 0 56px;animation:rise .8s .88s cubic-bezier(.2,.8,.2,1) both}.hero-cta{display:flex;flex-wrap:wrap;gap:12px;animation:rise .8s 1.04s cubic-bezier(.2,.8,.2,1) both}.hero-cta-button{position:relative;display:inline-flex;align-items:center;gap:12px;padding:18px 28px;font-family:var(--serif);font-size:var(--fs-caption);letter-spacing:.32em;text-transform:uppercase;color:var(--washi-light);background:var(--sumi);border:1px solid var(--sumi);border-radius:0;transition:background .2s ease,color .2s ease,transform .22s cubic-bezier(.2,.8,.2,1)}.hero-cta-button:after{content:"→";font-family:var(--serif);letter-spacing:0;transition:transform .22s cubic-bezier(.2,.8,.2,1)}.hero-cta-button:hover{background:var(--shu-deep);border-color:var(--shu-deep);color:var(--washi-light);transform:translateY(-2px)}.hero-cta-button:hover:after{transform:translate(4px)}.hero-cta-button[aria-disabled=true]{opacity:.78;cursor:not-allowed}.hero-aside{position:relative;display:flex;align-items:flex-end;gap:28px;animation:rise .8s 1.2s cubic-bezier(.2,.8,.2,1) both}.hero-vertical{writing-mode:vertical-rl;font-family:var(--serif);font-size:var(--fs-meta);letter-spacing:.6em;color:var(--sumi-soft);text-transform:none;height:12em;display:flex;align-items:flex-start;padding:4px 0;border-left:1px solid var(--rule)}.hero-stamp{width:84px;height:84px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--shu);color:var(--washi-light);font-family:var(--display);font-size:42px;letter-spacing:0;transform:rotate(-8deg);box-shadow:0 8px 28px #a81f1a52;border:3px double rgba(245,235,212,.85);outline:1px solid var(--shu-deep);outline-offset:0}.hero-stamp:after{content:"";position:absolute;inset:4px;border:1px dashed rgba(245,235,212,.5);pointer-events:none}@media(max-width:720px){.hero{min-height:auto;padding:64px var(--gutter) 56px}.hero-grid{grid-template-columns:1fr}.hero-aside{margin-top:24px;align-items:center}.hero-kanji{transform:translate(15%,-2%);font-size:clamp(360px,95vw,720px);opacity:.55}}.floating-pieces{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}@keyframes floatPieceUp{0%{transform:translate3d(0,100vh,0) rotate(var(--initial-rotate, 0deg));opacity:0}18%{opacity:.28}82%{opacity:.28}to{transform:translate3d(0,-110vh,0) rotate(calc(var(--initial-rotate, 0deg) + 160deg));opacity:0}}.floating-piece{position:absolute;bottom:-20vh;animation-name:floatPieceUp;animation-timing-function:linear;animation-iteration-count:infinite;filter:drop-shadow(0 6px 18px rgba(90,62,27,.22));-webkit-user-select:none;user-select:none;-webkit-user-drag:none;mix-blend-mode:multiply}@media(prefers-reduced-motion:reduce){.floating-piece{animation:none;display:none}}.section{padding:120px var(--gutter);position:relative}.section--soft{background:#e8dabe52;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.section-inner{max-width:var(--grid-max);margin:0 auto}.section-eyebrow{display:flex;align-items:center;gap:16px;font-size:var(--fs-meta);letter-spacing:.42em;text-transform:uppercase;color:var(--shu-deep);margin-bottom:24px}.section-eyebrow:before{content:"";display:block;width:32px;height:1px;background:var(--shu)}.section-heading{font-family:var(--display);font-size:var(--fs-h2);line-height:1.2;letter-spacing:.04em;font-weight:400;margin:0 0 56px;color:var(--sumi);max-width:16em}.features-intro{padding:96px var(--gutter) 16px;position:relative}.features-intro .section-heading{margin-bottom:0}.feat{position:relative;padding:112px var(--gutter);overflow:hidden}.feat-eyebrow{display:flex;align-items:center;gap:14px;font-family:var(--serif);font-size:var(--fs-meta);letter-spacing:.5em;text-transform:uppercase;color:var(--shu-deep);margin:0 0 22px}.feat-eyebrow:before{content:"";width:28px;height:1px;background:var(--shu)}.feat-title{font-family:var(--display);font-size:clamp(28px,4.4vw,44px);line-height:1.25;letter-spacing:.04em;font-weight:400;margin:0 0 22px;color:var(--sumi)}.feat-lead{font-family:var(--serif);font-size:var(--fs-lead);line-height:1.85;color:var(--sumi-soft);margin:0;max-width:32em;letter-spacing:.02em}.feat-foot{margin:24px 0 0;font-family:var(--serif-italic);font-style:italic;font-size:var(--fs-caption);color:var(--sumi-soft);line-height:1.85;border-top:1px solid var(--rule);padding-top:18px;max-width:32em}.feat-bg-kanji{position:absolute;font-family:var(--display);font-weight:400;font-size:clamp(280px,38vw,560px);line-height:.78;letter-spacing:-.04em;color:#a81f1a0d;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:0;white-space:nowrap;mix-blend-mode:multiply}.feat-bg-kanji--tr{top:-56px;right:-32px}.feat-bg-kanji--tl{top:-56px;left:-48px}.feat-bg-kanji--bl{bottom:-88px;left:-32px}.feat-bg-kanji--br{bottom:-88px;right:-48px}.feat-roster{background:#e8dabe57;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.feat-roster-paper{position:relative;z-index:1;max-width:var(--grid-max);margin:0 auto;padding:56px clamp(28px,5vw,72px) 56px;background:#faf3e3c7;background-image:radial-gradient(ellipse 60% 40% at 0% 0%,rgba(168,31,26,.05),transparent 60%),radial-gradient(ellipse 40% 60% at 100% 100%,rgba(31,60,110,.04),transparent 60%);border:1px solid var(--sumi);outline:1px solid var(--sumi);outline-offset:6px;box-shadow:0 1px #1b1b1c0d,0 30px 64px -36px #1b1b1c52}.feat-roster-paper:before,.feat-roster-paper:after{content:"";position:absolute;left:18px;right:18px;height:1px;background:var(--rule)}.feat-roster-paper:before{top:18px}.feat-roster-paper:after{bottom:18px}.banzuke-banner{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:clamp(16px,3vw,36px);padding:0 0 28px;border-bottom:2px solid var(--sumi);margin-bottom:28px;position:relative}.banzuke-banner:after{content:"";position:absolute;left:0;right:0;bottom:-7px;height:1px;background:var(--sumi)}.banzuke-banner-side{font-family:var(--display);font-size:clamp(40px,6vw,64px);line-height:1;color:var(--shu-deep);letter-spacing:0;position:relative;padding:0 16px}.banzuke-banner-side:before,.banzuke-banner-side:after{content:"";position:absolute;left:50%;width:56px;height:1px;background:var(--rule-strong);transform:translate(-50%)}.banzuke-banner-side:before{top:-8px}.banzuke-banner-side:after{bottom:-8px}.banzuke-banner-center{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}.banzuke-banner-overline{font-family:var(--serif);font-size:var(--fs-meta);letter-spacing:.5em;text-transform:uppercase;color:var(--shu-deep);padding-left:.5em}.banzuke-banner-title{font-family:var(--display);font-size:clamp(40px,6vw,72px);font-weight:400;letter-spacing:.16em;margin:0;color:var(--sumi);line-height:1;text-shadow:0 1px 0 rgba(245,235,212,.6)}.banzuke-banner-romaji{font-family:var(--serif-italic);font-style:italic;font-size:11px;letter-spacing:.42em;text-transform:uppercase;color:var(--text-muted)}.banzuke-prelude{font-family:var(--serif);font-size:var(--fs-lead);line-height:1.9;color:var(--sumi-soft);text-align:center;margin:0 0 40px;letter-spacing:.04em}.banzuke-list{display:grid;grid-template-columns:repeat(11,minmax(0,1fr));gap:0;list-style:none;margin:0;padding:0;border-top:1px solid var(--sumi);border-bottom:1px solid var(--sumi);background:repeating-linear-gradient(to right,transparent 0,transparent calc((100% / 11) - 1px),var(--rule) calc((100% / 11) - 1px),var(--rule) calc(100% / 11)),#f5ebd48c}.banzuke-card{writing-mode:vertical-rl;text-orientation:upright;display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:26px 10px 28px;height:380px;position:relative;transition:background .22s ease;animation:banzukeRise .7s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(.12s + var(--idx, 0) * 50ms)}.banzuke-card:hover{background:#fffaedf2}.banzuke-card-mark{font-family:var(--display);font-size:17px;letter-spacing:0;color:var(--shu);padding-bottom:10px;border-bottom:1px solid var(--rule)}.banzuke-card-name{font-family:var(--display);font-size:clamp(22px,2vw,30px);letter-spacing:.06em;color:var(--sumi);line-height:1.25}.banzuke-card-tagline{font-family:var(--serif);font-size:11px;line-height:1.7;letter-spacing:.04em;color:var(--sumi-soft);margin-top:auto;padding-top:12px;border-top:1px dashed var(--rule);max-height:200px;overflow:hidden}.banzuke-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:28px;padding-top:22px;border-top:2px solid var(--sumi);position:relative}.banzuke-footer:before{content:"";position:absolute;left:0;right:0;top:7px;height:1px;background:var(--sumi)}.banzuke-footer-text{font-family:var(--serif);font-size:var(--fs-caption);letter-spacing:.32em;color:var(--sumi-soft)}.banzuke-footer-seal{width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:var(--shu);color:var(--washi-light);font-family:var(--display);font-size:26px;letter-spacing:0;border:2px double rgba(245,235,212,.85);outline:1px solid var(--shu-deep);transform:rotate(-6deg);box-shadow:0 8px 18px #a81f1a4d}@keyframes banzukeRise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1080px){.banzuke-list{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:92px;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;background:#f5ebd48c}.banzuke-card{scroll-snap-align:start;border-right:1px solid var(--rule);height:340px}.banzuke-card:last-child{border-right:none}}@media(max-width:720px){.feat-roster-paper{padding:36px 24px;outline-offset:4px}.banzuke-banner-side{font-size:36px;padding:0 8px}}.feat-joseki{background:var(--washi)}.book-spread{position:relative;z-index:1;max-width:var(--grid-max);margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);background:repeating-linear-gradient(to bottom,transparent 0,transparent 31px,rgba(27,27,28,.035) 31px,rgba(27,27,28,.035) 32px),#faf3e3eb;border:1px solid var(--sumi);box-shadow:inset 0 1px #f5ebd4cc,0 1px #1b1b1c0d,0 36px 88px -40px #1b1b1c5c}.book-corner{position:absolute;width:18px;height:18px;background:var(--washi);z-index:2}.book-corner--tl{top:-1px;left:-1px;clip-path:polygon(0 0,100% 0,0 100%);border-bottom:1px solid var(--sumi);border-right:1px solid var(--sumi)}.book-corner--tr{top:-1px;right:-1px;clip-path:polygon(100% 0,100% 100%,0 0);border-bottom:1px solid var(--sumi);border-left:1px solid var(--sumi)}.book-corner--bl{bottom:-1px;left:-1px;clip-path:polygon(0 0,100% 100%,0 100%);border-top:1px solid var(--sumi);border-right:1px solid var(--sumi)}.book-corner--br{bottom:-1px;right:-1px;clip-path:polygon(100% 0,100% 100%,0 100%);border-top:1px solid var(--sumi);border-left:1px solid var(--sumi)}.book-fold{width:32px;position:relative;background:radial-gradient(ellipse 50% 80% at 50% 50%,rgba(27,27,28,.18) 0%,rgba(27,27,28,.06) 30%,transparent 70%),linear-gradient(to right,transparent 0,rgba(27,27,28,.04) 30%,rgba(27,27,28,.1) 50%,rgba(27,27,28,.04) 70%,transparent 100%)}.book-fold:before{content:"";position:absolute;top:16px;bottom:16px;left:50%;width:1px;background:#1b1b1c2e;transform:translate(-50%)}.book-page{position:relative;padding:clamp(40px,5vw,64px) clamp(36px,4.5vw,56px) clamp(56px,6vw,72px);display:flex;flex-direction:column}.book-page-folio{display:flex;justify-content:space-between;font-family:var(--serif-italic);font-style:italic;font-size:10.5px;letter-spacing:.32em;text-transform:uppercase;color:var(--text-muted);padding-bottom:14px;margin-bottom:28px;border-bottom:1px solid var(--rule)}.book-page--left .feat-eyebrow{margin-bottom:18px}.book-marginalia{margin-top:auto;padding-top:32px;font-family:var(--display);font-size:17px;line-height:1.7;letter-spacing:.06em;color:var(--shu-deep);font-style:normal;border-top:1px solid var(--rule)}.joseki-tags{list-style:none;margin:28px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.joseki-tags li{font-family:var(--serif);font-size:11.5px;letter-spacing:.18em;color:var(--sumi);padding:5px 11px;border:1px solid var(--rule-strong);background:#f5ebd499}.book-page--right{border-left:none}.kifu-figcaption{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:22px;padding-bottom:14px;border-bottom:1px solid var(--sumi)}.kifu-figcaption-label{font-family:var(--display);font-size:18px;letter-spacing:.06em;color:var(--sumi)}.kifu-figcaption-sub{font-family:var(--serif-italic);font-style:italic;font-size:10.5px;letter-spacing:.32em;text-transform:uppercase;color:var(--shu-deep)}.kifu-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;column-gap:28px;font-family:var(--serif);font-feature-settings:"palt" 0}.kifu-list li{display:flex;align-items:baseline;gap:12px;padding:8px 0;border-bottom:1px dotted var(--rule)}.kifu-list li:last-child,.kifu-list li:nth-last-child(2){border-bottom:none}.kifu-num{font-family:var(--serif-italic);font-style:italic;font-size:11px;letter-spacing:.04em;color:var(--shu);min-width:1.8em}.kifu-move{font-size:16px;letter-spacing:.06em}.kifu-sente .kifu-move{color:var(--sumi)}.kifu-gote .kifu-move{color:var(--ai-deep)}.kifu-stamp{position:absolute;right:-16px;bottom:-16px;width:78px;height:78px;display:flex;align-items:center;justify-content:center;background:var(--shu);color:var(--washi-light);font-family:var(--display);font-size:24px;letter-spacing:.04em;border:2px double rgba(245,235,212,.85);outline:1px solid var(--shu-deep);transform:rotate(-7deg);box-shadow:0 12px 28px #a81f1a52;z-index:3}@media(max-width:960px){.book-spread{grid-template-columns:1fr}.book-fold{height:32px;width:auto;background:linear-gradient(to bottom,transparent 0,rgba(27,27,28,.06) 30%,rgba(27,27,28,.14) 50%,rgba(27,27,28,.06) 70%,transparent 100%)}.book-fold:before{inset:50% 16px auto;width:auto;height:1px;transform:translateY(-50%)}.kifu-list{column-gap:18px}.kifu-stamp{right:12px;bottom:12px}}.feat-commentary{background:#e8dabe57;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.commentary-spread{position:relative;z-index:1;max-width:var(--grid-max);margin:0 auto;display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:clamp(32px,5vw,80px);align-items:start}.commentary-aside-col{position:sticky;top:96px;padding-right:clamp(0px,2vw,24px);border-right:1px solid var(--rule)}.commentary-aside-col .feat-foot{border-top:1px solid var(--rule)}.commentary-stage{position:relative;display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"open    pull" ".       cite" ".       margin";gap:0 clamp(12px,2vw,28px);align-items:start}.commentary-quotemark{font-family:var(--display);font-size:clamp(80px,10vw,160px);line-height:.85;color:var(--shu);letter-spacing:0;-webkit-user-select:none;user-select:none;text-shadow:0 1px 0 rgba(245,235,212,.6)}.commentary-quotemark--open{grid-area:open;align-self:start;margin-top:-8px;text-align:right;padding-right:4px}.commentary-quotemark--close{display:none}.commentary-pull{grid-area:pull;margin:0;padding:8px 0 0;font-family:var(--display);font-size:clamp(38px,5.4vw,72px);line-height:1.25;letter-spacing:.06em;color:var(--sumi);font-weight:400;position:relative}.commentary-pull:after{content:"";display:block;width:64px;height:2px;background:var(--shu);margin-top:28px}.commentary-pull-cite{grid-area:cite;margin-top:18px;font-style:normal;display:flex;flex-wrap:wrap;align-items:baseline;gap:14px}.commentary-pull-name{font-family:var(--display);font-size:22px;letter-spacing:.06em;color:var(--sumi)}.commentary-pull-name:before{content:"——";margin-right:8px;color:var(--shu);letter-spacing:0}.commentary-pull-from{font-family:var(--serif-italic);font-style:italic;font-size:13px;letter-spacing:.04em;color:var(--text-muted)}.commentary-pull-mode{margin-left:auto;font-family:var(--serif);font-size:10px;letter-spacing:.42em;text-transform:uppercase;padding:4px 12px;border:1px solid var(--sumi);color:var(--sumi);background:var(--washi-light)}.commentary-margin{grid-area:margin;margin:56px 0 0;padding:28px 0 0;list-style:none;border-top:1px solid var(--sumi);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;counter-reset:margin}.commentary-margin-item{position:relative;padding:0 22px;border-right:1px dashed var(--rule);counter-increment:margin;animation:marginRise .6s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(.18s + var(--idx, 0) * 90ms)}.commentary-margin-item:first-child{padding-left:0}.commentary-margin-item:last-child{padding-right:0;border-right:none}.commentary-margin-item:before{content:"其の" counter(margin,cjk-ideographic);display:block;font-family:var(--serif-italic);font-style:italic;font-size:10.5px;letter-spacing:.32em;text-transform:uppercase;color:var(--shu-deep);margin-bottom:12px}.commentary-margin-quote{margin:0 0 14px;font-family:var(--serif-italic);font-style:italic;font-size:14px;line-height:1.85;color:var(--sumi);letter-spacing:.02em}.commentary-margin-attr{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0;font-family:var(--serif);font-size:11px;color:var(--sumi-soft)}.commentary-margin-attr em{font-style:italic;color:var(--text-muted)}.commentary-margin-mode{margin-left:auto;font-size:9px;letter-spacing:.36em;text-transform:uppercase;padding:2px 8px;border:1px solid var(--rule-strong);color:var(--sumi)}@keyframes marginRise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:960px){.commentary-spread{grid-template-columns:1fr}.commentary-aside-col{position:static;padding-right:0;border-right:none;border-bottom:1px solid var(--rule);padding-bottom:28px}.commentary-stage{grid-template-columns:auto minmax(0,1fr)}.commentary-margin{grid-template-columns:1fr}.commentary-margin-item{padding:18px 0;border-right:none;border-bottom:1px dashed var(--rule)}.commentary-margin-item:last-child{border-bottom:none}}@media(max-width:560px){.commentary-quotemark--open{font-size:64px}.commentary-stage{grid-template-columns:1fr;grid-template-areas:"open" "pull" "cite" "margin"}.commentary-quotemark--open{text-align:left}}.feat-twin{background:var(--washi)}.feat-twin-inner{position:relative;z-index:1;max-width:var(--grid-max);margin:0 auto}.feat-twin-head{margin-bottom:56px;max-width:38em}.blueprint{position:relative;margin:0;padding:56px clamp(28px,4vw,56px) 64px;display:grid;grid-template-columns:1fr auto 1fr;gap:0;background:linear-gradient(transparent 31px,#1f3c6e0a 32px),linear-gradient(90deg,transparent 31px,rgba(31,60,110,.04) 32px),#faf3e399;background-size:32px 32px;border:1px solid var(--sumi);box-shadow:inset 0 0 0 1px #f5ebd499,0 1px #1b1b1c0d,0 32px 64px -36px #1b1b1c47}.blueprint-caption{position:absolute;top:-28px;left:0;display:flex;align-items:center;gap:16px;font-family:var(--serif-italic);font-style:italic;font-size:11px;letter-spacing:.42em;text-transform:uppercase;color:var(--shu-deep)}.blueprint-caption span:first-child{position:relative;padding-right:16px;border-right:1px solid var(--rule-strong)}.blueprint-caption span:last-child{color:var(--text-muted);letter-spacing:.32em}.blueprint-bracket{position:absolute;width:22px;height:22px;pointer-events:none}.blueprint-bracket--tl{top:-1px;left:-1px;border-top:1.5px solid var(--sumi);border-left:1.5px solid var(--sumi)}.blueprint-bracket--tr{top:-1px;right:-1px;border-top:1.5px solid var(--sumi);border-right:1.5px solid var(--sumi)}.blueprint-bracket--bl{bottom:-1px;left:-1px;border-bottom:1.5px solid var(--sumi);border-left:1.5px solid var(--sumi)}.blueprint-bracket--br{bottom:-1px;right:-1px;border-bottom:1.5px solid var(--sumi);border-right:1.5px solid var(--sumi)}.blueprint-half{padding:36px clamp(20px,3vw,40px) 12px;position:relative;display:flex;flex-direction:column}.blueprint-half--device{background:linear-gradient(170deg,rgba(201,169,97,.1),transparent 60%)}.blueprint-half--cloud{background:linear-gradient(190deg,transparent 30%,rgba(31,60,110,.1) 100%)}.blueprint-glyph{width:88px;height:156px;margin-bottom:28px;position:relative}.blueprint-glyph--phone{border:1.5px solid var(--sumi);border-radius:14px;background:#fffaedb3}.phone-speaker{position:absolute;top:8px;left:50%;transform:translate(-50%);width:42%;height:4px;border-radius:2px;background:var(--rule-strong)}.phone-screen{position:absolute;inset:18px 8px;border:1px solid var(--rule-strong);background:repeating-linear-gradient(to bottom,transparent 0,transparent 9px,rgba(27,27,28,.06) 9px,rgba(27,27,28,.06) 10px)}.phone-home{position:absolute;bottom:6px;left:50%;transform:translate(-50%);width:30%;height:3px;border-radius:2px;background:var(--rule-strong)}.blueprint-glyph--rack{border:1.5px solid var(--sumi);background:#fffaedb3;display:flex;flex-direction:column;padding:8px;gap:6px}.rack-led{position:absolute;top:6px;right:8px;width:5px;height:5px;border-radius:50%;background:var(--shu);box-shadow:0 0 6px #d0342c99}.rack-bay{flex:1;border:1px solid var(--rule-strong);background:linear-gradient(90deg,var(--ai-deep) 0,var(--ai-deep) 4px,transparent 4px,transparent 100%),repeating-linear-gradient(to right,transparent 0,transparent 4px,rgba(27,27,28,.08) 4px,rgba(27,27,28,.08) 5px);position:relative}.rack-bay:after{content:"";position:absolute;top:50%;right:6px;width:18px;height:1px;background:#1b1b1c2e;transform:translateY(-50%)}.blueprint-tag{font-family:var(--serif);font-size:var(--fs-meta);letter-spacing:.42em;text-transform:uppercase;color:var(--text-muted);margin-bottom:10px}.blueprint-name{font-family:var(--display);font-size:clamp(28px,3.6vw,44px);letter-spacing:.06em;color:var(--sumi);margin:0 0 28px;line-height:1;font-weight:400;display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.blueprint-name span{font-family:var(--serif-italic);font-style:italic;font-size:13px;letter-spacing:.32em;text-transform:uppercase;color:var(--shu-deep)}.blueprint-spec{list-style:none;margin:0;padding:0;border-top:1px solid var(--sumi)}.blueprint-spec li{display:grid;grid-template-columns:minmax(80px,.55fr) minmax(0,1.45fr);gap:16px;padding:13px 0;border-bottom:1px solid var(--rule);font-family:var(--serif);font-size:13.5px;align-items:baseline}.blueprint-spec-key{font-family:var(--serif-italic);font-style:italic;font-size:10.5px;letter-spacing:.32em;text-transform:uppercase;color:var(--shu-deep)}.blueprint-spec-val{text-align:right;color:var(--sumi);letter-spacing:.02em;line-height:1.6}.blueprint-foot{margin:22px 0 0;font-family:var(--serif);font-size:var(--fs-caption);line-height:1.85;color:var(--sumi-soft)}.blueprint-axle{position:relative;width:68px;display:flex;align-items:center;justify-content:center}.blueprint-axle:before,.blueprint-axle:after{content:"";position:absolute;left:0;right:0;height:1px;background:repeating-linear-gradient(to right,var(--sumi) 0,var(--sumi) 4px,transparent 4px,transparent 9px)}.blueprint-axle:before{top:28%}.blueprint-axle:after{bottom:28%}.blueprint-axle-disc{width:56px;height:56px;border-radius:50%;background:var(--washi-light);border:1px solid var(--sumi);position:relative;z-index:2;box-shadow:0 12px 24px -12px #1b1b1c52}.blueprint-axle-disc--ghost{position:absolute;width:78px;height:78px;border:1px dashed rgba(27,27,28,.22);background:transparent;z-index:1;box-shadow:none}.blueprint-axle-label{position:absolute;z-index:3;font-family:var(--display);font-size:18px;letter-spacing:.04em;color:var(--shu-deep);background:var(--washi-light);padding:0 4px}@media(max-width:960px){.blueprint{grid-template-columns:1fr;padding:56px 28px}.blueprint-half{padding:28px 0 12px}.blueprint-half--device{border-bottom:1px dashed var(--rule-strong);padding-bottom:28px;margin-bottom:16px}.blueprint-axle{order:2;width:100%;height:68px;margin:8px 0}.blueprint-axle:before,.blueprint-axle:after{inset:50% auto auto;width:1px;height:auto;background:repeating-linear-gradient(to bottom,var(--sumi) 0,var(--sumi) 4px,transparent 4px,transparent 9px);transform:translateY(-50%)}.blueprint-axle:before{left:28%;top:0;bottom:0;height:auto}.blueprint-axle:after{height:auto;inset:0 28% 0 auto}}@media(max-width:720px){.feat{padding:80px var(--gutter)}.blueprint-glyph{width:76px;height:130px}}.about-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:var(--gutter);align-items:start}.about-quote{position:relative;font-family:var(--serif-italic);font-style:italic;font-size:clamp(20px,2.6vw,28px);line-height:1.7;color:var(--sumi);letter-spacing:.02em;padding-left:28px;border-left:2px solid var(--shu)}.about-body{font-family:var(--serif);font-size:var(--fs-body);color:var(--sumi-soft);line-height:1.95}.about-body p+p{margin-top:18px}.about-links{margin-top:56px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid var(--sumi);border-bottom:1px solid var(--sumi)}.about-link{display:flex;align-items:center;gap:14px;padding:22px 24px 20px;font-family:var(--serif);font-size:var(--fs-body);color:var(--sumi);letter-spacing:.04em;white-space:nowrap;transition:color .2s ease,background .22s ease,padding-left .22s cubic-bezier(.2,.8,.2,1)}.about-link:not(:first-child){border-left:1px solid var(--rule)}.about-link:before{content:"";flex:1;order:2;height:1px;background:var(--rule);align-self:center;min-width:12px}.about-link:after{content:"→";order:3;color:var(--shu);transition:transform .22s cubic-bezier(.2,.8,.2,1)}.about-link span{order:1}.about-link:hover{color:var(--shu-deep);background:#f5ebd480}.about-link:hover:before{background:var(--shu)}.about-link:hover:after{transform:translate(6px)}@media(max-width:720px){.about-grid{grid-template-columns:1fr}.about-quote{padding-left:18px}.about-links{grid-template-columns:1fr;border-bottom:none}.about-link{padding:18px 4px;border-bottom:1px solid var(--rule)}.about-link:not(:first-child){border-left:none}.about-link:last-child{border-bottom:none}}.legal{padding:96px var(--gutter) 120px}.legal-inner{max-width:760px;margin:0 auto}.legal-eyebrow{display:flex;align-items:center;gap:16px;font-size:var(--fs-meta);letter-spacing:.42em;text-transform:uppercase;color:var(--shu-deep);margin-bottom:18px}.legal-eyebrow:before{content:"";width:32px;height:1px;background:var(--shu)}.legal-title{font-family:var(--display);font-size:clamp(40px,6vw,56px);line-height:1.1;font-weight:400;letter-spacing:.04em;margin:0 0 12px;color:var(--sumi)}.legal-meta{font-size:var(--fs-meta);letter-spacing:.32em;text-transform:uppercase;color:var(--text-muted);margin:0 0 56px}.legal-section{margin:0}.legal-section h2{font-family:var(--display);font-size:var(--fs-h3);font-weight:400;letter-spacing:.04em;margin:56px 0 16px;padding-top:32px;border-top:1px solid var(--rule);color:var(--sumi)}.legal-section h2:first-of-type{border-top:none;padding-top:0;margin-top:0}.legal-section p,.legal-section li{font-size:var(--fs-body);color:var(--sumi);line-height:1.95}.legal-section ol,.legal-section ul{padding-left:24px}.legal-section li{margin:8px 0}.legal-table{width:100%;border-collapse:collapse;margin:16px 0;font-size:var(--fs-body)}.legal-table th,.legal-table td{padding:16px 18px;text-align:left;vertical-align:top;border-bottom:1px solid var(--rule)}.legal-table th{width:30%;font-family:var(--display);font-weight:400;letter-spacing:.04em;color:var(--sumi);background:#e8dabe66}.placeholder{display:inline-block;font-family:var(--serif);font-size:.9em;color:var(--shu-deep);background:#d0342c14;padding:1px 8px;border:1px dashed rgba(208,52,44,.4);letter-spacing:.02em}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes brushDrop{0%{opacity:0;transform:translateY(-32px) rotate(-2deg);filter:blur(4px)}to{opacity:1;transform:translateY(0) rotate(0);filter:blur(0)}}@keyframes ruleSlide{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@media(prefers-reduced-motion:reduce){.hero-eyebrow,.hero-title-char,.hero-rule,.hero-tagline,.hero-cta,.hero-aside{animation:none}}
