:root{--cl-cur:0;--paper:var(--cl-root-fill);--ink:var(--cl-root-ink);--accent:var(--cl-root-accent);--ink-60:color-mix(in oklch,var(--ink) 60%,var(--paper));--ink-38:color-mix(in oklch,var(--ink) 38%,var(--paper));--rule:color-mix(in oklch,var(--ink) 16%,var(--paper));--t-display:calc(clamp(2.6rem, 8.6vw, 7.6rem) * var(--cl-root-size));--t-lead:calc(clamp(1.05rem, 1.55vw, 1.4rem) * var(--cl-root-size));--t-body:calc(0.95rem * var(--cl-root-size));--t-micro:calc(0.72rem * var(--cl-root-size));--col:calc(var(--cl-root-gap) * 2.4);--edge:clamp(var(--cl-root-gap),3.2vw,44px)}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-text),system-ui,sans-serif;font-size:var(--t-body);line-height:var(--cl-root-lh);letter-spacing:var(--cl-root-tracking);font-variation-settings:"wght" var(--cl-root-weight);font-synthesis-weight:none}body[data-locale=ja]{font-family:var(--font-cjk),var(--font-text),system-ui,sans-serif}::selection{background:var(--accent);color:var(--paper)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}a{color:inherit;text-decoration:none}.splash,body:has(>.splash){--splash-bg:#1b1b1b;--splash-fg:#fff}body:has(>.splash){background:var(--splash-bg);color-scheme:dark}.splash ::selection{background:var(--splash-fg);color:var(--splash-bg)}.splash{min-height:100svh;background:var(--splash-bg);color:var(--splash-fg);justify-content:space-between;gap:48px;padding:24px}.splash,.splash__body{display:flex;flex-direction:column;align-items:flex-start}.splash__body{gap:16px}.splash__tagline{margin:0;font-size:24px;line-height:normal;letter-spacing:-.24px}.splash__marks{display:flex;gap:12px}.splash__mark{display:block;position:relative;width:40px;height:40px;border-radius:10px}.splash__mark img{display:block;width:100%;height:100%}.splash__mark-tip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);white-space:nowrap;font-size:11px;letter-spacing:-.11px;background:var(--splash-fg);color:var(--splash-bg);padding:4px 8px;border-radius:4px;opacity:0;pointer-events:none;transition:opacity .12s ease}.splash__mark:focus-visible .splash__mark-tip,.splash__mark:hover .splash__mark-tip{opacity:1}.splash__langs{display:flex;align-items:center;gap:8px;margin:0;font-size:12px;letter-spacing:-.12px}.splash__langs a{opacity:.4}.splash__langs a:focus-visible,.splash__langs a:hover{opacity:1}.splash__langs a[aria-current=page]{text-decoration:underline;text-underline-offset:3px}.splash__copyright{margin:0;font-size:12px;letter-spacing:-.12px;opacity:.4;white-space:nowrap}@media (max-width:480px){.splash__tagline{font-size:18px}.splash__copyright,.splash__langs{font-size:11px}}body:has(>.about){--about-bg:#fff;--about-fg:#1b1b1b;background:var(--about-bg);color:var(--about-fg);color-scheme:light}@media (prefers-color-scheme:dark){html:not([data-theme=light]) body:has(>.about){--about-bg:#1b1b1b;--about-fg:#fff;color-scheme:dark}}html[data-theme=dark] body:has(>.about){--about-bg:#1b1b1b;--about-fg:#fff;color-scheme:dark}.about ::selection{background:var(--about-fg);color:var(--about-bg)}.about :focus-visible{outline-color:var(--about-fg)}.about{display:grid;grid-template-columns:1fr 1fr;min-height:100svh;background:var(--about-bg);color:var(--about-fg);letter-spacing:normal}.about__photo{order:2;position:-webkit-sticky;position:sticky;top:0;height:100svh;margin:0}.about__photo img{object-fit:cover;object-position:50% 25%}.about__col{display:flex;flex-direction:column;gap:48px;min-height:100svh;padding:24px}.about__bar{display:flex;justify-content:space-between;gap:24px}.about__langs,.about__themes{display:flex;gap:8px;font-size:12px;letter-spacing:-.12px}.about__langs a,.about__themes button{opacity:.4}.about__themes button{padding:0;border:0;background:none;color:inherit;font:inherit;letter-spacing:inherit;cursor:pointer}.about__langs a:focus-visible,.about__langs a:hover,.about__themes button:focus-visible,.about__themes button:hover{opacity:1}.about__langs a[aria-current=page],.about__themes button[aria-pressed=true]{opacity:1;text-decoration:underline;text-underline-offset:3px}.about__content{gap:48px;max-width:520px;margin-top:24px}.about__content,.about__head{display:flex;flex-direction:column}.about__head{gap:8px}.about__greeting,.about__mission,.about__name{margin:0;font-size:24px;font-weight:inherit;line-height:1.2;letter-spacing:-.24px}.about__mission{opacity:.4}.about__letter{display:flex;flex-direction:column;gap:16px}.about__letter p{margin:0;font-size:16px;line-height:1.5;letter-spacing:-.16px}.about__letter .about__sign{margin-top:8px}.about__sign span{display:block}.about__section{display:flex;flex-direction:column;gap:12px}.about__label{margin:0;font-size:12px;font-weight:inherit;letter-spacing:-.12px;opacity:.4}.about__rows{display:flex;flex-direction:column;gap:12px;margin:0}.about__row{display:grid;grid-template-columns:120px 1fr;grid-gap:24px;gap:24px;font-size:16px;line-height:1.4;letter-spacing:-.16px}.about__row dt{opacity:.4;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.about__row dd{margin:0}.about__muted,.about__note{opacity:.4}.about__note{display:block}.about__plain{margin:0;line-height:1.4}.about__links,.about__plain{font-size:16px;letter-spacing:-.16px}.about__links{display:flex;gap:16px}.about__links a{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}.about__copyright{margin:auto 0 0;font-size:12px;letter-spacing:-.12px;opacity:.4}@media (max-width:720px){.about{grid-template-columns:1fr}.about__photo{order:0;position:relative;height:78svh}.about__col{min-height:0}.about__content{margin-top:0}.about__greeting,.about__mission,.about__name{font-size:20px}.about__letter p,.about__links,.about__plain,.about__row{font-size:15px}.about__row{grid-template-columns:104px 1fr;gap:16px}.about__copyright,.about__label,.about__langs,.about__themes{font-size:11px}}:root{--cl-root-bg:var(--cl-root-fill);--cl-root-text-color:var(--cl-root-ink);--cl-root-font-weight:var(--cl-root-weight);--cl-root-font-size:calc(11px * var(--cl-root-size));--cl-root-line-height:var(--cl-root-lh);--cl-root-track:var(--cl-root-tracking);--cl-root-case:none}.page{min-height:100svh;padding:0 var(--edge) calc(var(--cl-root-gap) * 4);display:flex;flex-direction:column;gap:calc(var(--cl-root-gap) * 3)}.rail{display:grid;grid-template-columns:auto 1fr auto;align-items:baseline;grid-gap:var(--cl-root-gap);gap:var(--cl-root-gap);padding:calc(var(--cl-root-pad-y) * 1.2) 0;border-bottom:1px solid var(--rule);position:-webkit-sticky;position:sticky;top:0;background:var(--paper);z-index:2}.rail__mark{font-family:var(--font-display),system-ui,sans-serif;font-variation-settings:"wght" calc(var(--cl-root-weight) + 180);letter-spacing:calc(var(--cl-root-tracking) - .02em);font-size:var(--t-body)}.rail__mark sup{font-size:.5em;vertical-align:super;color:var(--accent)}.rail__role{margin:0;color:var(--ink-60);font-size:var(--t-micro);text-transform:uppercase;letter-spacing:calc(var(--cl-root-tracking) + .12em)}.rail__langs{display:flex;gap:calc(var(--cl-root-gap) * .8);font-family:var(--font-mono),ui-monospace,monospace;font-size:var(--t-micro);color:var(--ink-38)}.rail__langs a:hover,.rail__langs a[aria-current=page]{color:var(--accent)}.hero{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-gap:var(--cl-root-gap) var(--cl-root-gap);gap:var(--cl-root-gap) var(--cl-root-gap);align-items:start;padding-top:calc(var(--cl-root-gap) * 2)}.hero__display{grid-column:1/9;margin:0;font-family:var(--font-display),system-ui,sans-serif;font-size:var(--t-display);font-variation-settings:"wght" calc(var(--cl-root-weight) + 120 + var(--cl-cur) * 260);line-height:.94;letter-spacing:calc(var(--cl-root-tracking) - .03em);text-wrap:balance;transition:font-variation-settings .12s linear}.hero__display span{display:block}.hero__display span:last-child{color:var(--accent);text-indent:calc(var(--cl-root-gap) * 2)}.hero__lead{font-size:var(--t-lead);max-width:46ch;color:var(--ink)}.hero__lead,.stored{grid-column:1/6;margin:calc(var(--cl-root-gap) * 1.5) 0 0}.stored{display:grid;grid-template-columns:auto 1fr;grid-gap:var(--cl-root-gap);gap:var(--cl-root-gap);align-items:start;padding-top:var(--cl-root-pad-y);border-top:1px solid var(--rule)}.stored__swatch{width:calc(var(--cl-root-gap) * 2.6);height:calc(var(--cl-root-gap) * 2.6);border-radius:var(--cl-root-radius);background:var(--accent);box-shadow:var(--cl-root-shadow)}.stored figcaption{display:grid;grid-gap:calc(var(--cl-root-gap) * .4);gap:calc(var(--cl-root-gap) * .4)}.stored b{font-family:var(--font-mono),ui-monospace,monospace;font-size:var(--t-micro);text-transform:uppercase;letter-spacing:calc(var(--cl-root-tracking) + .1em);font-variation-settings:"wght" 600}.stored span{font-size:var(--t-micro);color:var(--ink-60)}.hero__root{grid-column:9/13;grid-row:1/span 3;position:-webkit-sticky;position:sticky;top:calc(var(--cl-root-gap) * 5)}.root{background:color-mix(in oklch,var(--ink) 4%,var(--paper));border:1px solid var(--rule);border-radius:var(--cl-root-radius);padding:var(--cl-root-pad-y) var(--cl-root-pad-x);box-shadow:var(--cl-root-shadow);font-family:var(--font-mono),ui-monospace,monospace;font-size:var(--t-micro);display:grid;grid-gap:var(--cl-root-gap);gap:var(--cl-root-gap);transform:scale(calc(1 + var(--cl-cur) * .012));transition:transform .14s linear}.root__head{display:flex;justify-content:space-between;align-items:baseline}.root__name{text-transform:uppercase;letter-spacing:calc(var(--cl-root-tracking) + .14em);font-variation-settings:"wght" 700}.root__id{color:var(--ink-38)}.root__slots{display:grid;grid-gap:var(--cl-root-gap);gap:var(--cl-root-gap)}.slot{display:grid;grid-gap:calc(var(--cl-root-gap) * .25);gap:calc(var(--cl-root-gap) * .25)}.slot__name{margin:0 0 calc(var(--cl-root-gap) * .25);font-size:var(--t-micro);color:var(--accent);text-transform:uppercase;letter-spacing:calc(var(--cl-root-tracking) + .14em);font-variation-settings:"wght" 700;border-bottom:1px solid var(--rule);padding-bottom:calc(var(--cl-root-gap) * .25)}.ch-kit{min-height:calc(var(--cell-pad-y, 8px) * 2 + var(--cell-line-height, 13px))}.ch-kit[data-touched=true] .pv{color:var(--accent)}.root__foot{display:flex;justify-content:space-between;align-items:center;gap:var(--cl-root-gap);border-top:1px solid var(--rule);padding-top:var(--cl-root-pad-y)}.root__hint{margin:0;color:var(--ink-38);max-width:22ch}.root__reset{font:inherit;font-variation-settings:"wght" 700;color:var(--paper);background:var(--accent);border:0;border-radius:calc(var(--cl-root-radius) * .6);padding:calc(var(--cl-root-pad-y) * .5) calc(var(--cl-root-pad-x) * .6);cursor:pointer;text-transform:uppercase;letter-spacing:calc(var(--cl-root-tracking) + .1em)}.root__reset:disabled{background:transparent;color:var(--ink-38);cursor:default}.branches{border-top:1px solid var(--rule);padding-top:calc(var(--cl-root-gap) * 1.5)}.branches__title{margin:0 0 var(--cl-root-gap);font-family:var(--font-mono),ui-monospace,monospace;font-size:var(--t-micro);text-transform:uppercase;letter-spacing:calc(var(--cl-root-tracking) + .16em);color:var(--ink-38);font-variation-settings:"wght" 600}.branches__list{list-style:none;margin:0;padding:0;grid-gap:var(--cl-root-gap)}.branch,.branches__list{display:grid;gap:var(--cl-root-gap)}.branch{grid-template-columns:auto minmax(0,3fr) minmax(0,3fr) minmax(0,5fr);grid-gap:var(--cl-root-gap);align-items:baseline;padding:var(--cl-root-pad-y) var(--cl-root-pad-x);border:1px solid var(--rule);border-radius:var(--cl-root-radius);background:var(--cl-root-fill);box-shadow:var(--cl-root-shadow)}.branch__year{font-family:var(--font-mono),ui-monospace,monospace;font-size:var(--t-micro);color:var(--ink-38)}.branch__title{margin:0;font-family:var(--font-display),system-ui,sans-serif;font-size:calc(var(--t-lead) * 1.1);font-variation-settings:"wght" var(--cl-root-weight);letter-spacing:var(--cl-root-tracking)}.branch__discipline{margin:0;font-size:var(--t-micro);color:var(--ink-60);text-transform:uppercase;letter-spacing:.08em}.branch__claim{margin:0;color:var(--ink)}.branch__over{grid-column:1/-1;font-family:var(--font-mono),ui-monospace,monospace;font-size:var(--t-micro);color:var(--ink-38)}@media (max-width:900px){.hero{grid-template-columns:1fr}.hero__display,.hero__lead,.hero__root,.stored{grid-column:1/-1}.hero__root{grid-row:auto;position:static}.root__slots{grid-template-columns:repeat(2,minmax(0,1fr))}.branch{grid-template-columns:1fr}.rail{grid-template-columns:auto auto}.rail__role{display:none}}@media (prefers-reduced-motion:reduce){*,:after,:before{transition-duration:1ms!important;animation-duration:1ms!important}}