@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-400-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-500-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-400-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-500-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Sans;font-style:normal;font-weight:400 700;font-stretch:75% 100%;font-display:swap;src:url(/fonts/instrument-sans-400-700-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans;font-style:normal;font-weight:400 700;font-stretch:75% 100%;font-display:swap;src:url(/fonts/instrument-sans-400-700-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Noto Serif JP;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/noto-serif-jp-500.ttf)format("truetype")}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--paper:#f3efe6;--paper-raised:#faf7f0;--paper-sunk:#e9e3d5;--ink:#17140f;--ink-2:#554f45;--ink-3:#696256;--line:#d8d0bf;--line-strong:#17140f;--accent:#bf2d1b;--accent-deco:#d43d27;--seal:#bf2d1b;--ok:#4c7446;--btn-bg:var(--ink);--btn-fg:var(--paper);--btn-hover-bg:var(--accent);--btn-hover-fg:#fff;--media-bg:#f5f5f5;--header-bg:#f3efe6db;--backdrop:#17140f6b;--focus:var(--accent);--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .09 0 0 0 0 .08 0 0 0 0 .06 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");--font-sans:"Instrument Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "Cascadia Code", Consolas, monospace;--font-ja:"Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;--step--2:.75rem;--step--1:clamp(.8125rem, .79rem + .1vw, .875rem);--step-0:clamp(1rem, .96rem + .18vw, 1.125rem);--step-1:clamp(1.1875rem, 1.1rem + .45vw, 1.5rem);--step-2:clamp(1.5rem, 1.25rem + 1.2vw, 2.375rem);--step-3:clamp(2rem, 1.45rem + 2.7vw, 3.75rem);--step-4:clamp(2.75rem, 1.5rem + 5.6vw, 6.5rem);--gutter:clamp(1.25rem, 4.5vw, 4rem);--max:85rem;--gap:clamp(1rem, 2vw, 2rem);--space-section:clamp(4rem, 8.5vw, 7.5rem);--header-h:4rem;--ease:cubic-bezier(.22, 1, .36, 1)}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--paper:#121110;--paper-raised:#1a1917;--paper-sunk:#0c0b0b;--ink:#ede8dd;--ink-2:#aea89b;--ink-3:#8f897d;--line:#2b2926;--line-strong:#5a564f;--accent:#f0614a;--accent-deco:#e04a33;--seal:#c23320;--ok:#8fb583;--btn-bg:#c23320;--btn-fg:#fff;--btn-hover-bg:var(--ink);--btn-hover-fg:var(--paper);--media-bg:#0a0a0a;--header-bg:#121110d1;--backdrop:#0000009e;--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 .97 0 0 0 0 .9 0 0 0 .045 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}@media (width>=120rem){:root{--max:100rem}}*,:before,:after{box-sizing:border-box}*{margin:0;padding:0}html{background-color:var(--paper);scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) - 1px);scrollbar-gutter:stable;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--paper) var(--grain);min-width:320px;min-height:100svh;color:var(--ink);font-family:var(--font-sans);font-size:var(--step-0);font-kerning:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;line-height:1.6;overflow-x:clip}body:has(dialog[open]){overflow:hidden}img,svg{max-width:100%;display:block}img{height:auto}ul,ol{list-style:none}button{font:inherit;color:inherit}a{color:inherit}h1,h2,h3{text-wrap:balance;font-weight:600}p{text-wrap:pretty}::selection{background:var(--accent);color:#fff}.icon{flex-shrink:0;display:inline-block}:focus-visible{outline:2px solid var(--focus);outline-offset:3px}.skip-link{z-index:2000;background:var(--ink);color:var(--paper);font-size:var(--step--1);padding:.7rem 1.1rem;font-weight:600;text-decoration:none;transition:transform .2s;position:fixed;top:.75rem;left:.75rem;transform:translateY(-250%)}.skip-link:focus{transform:translateY(0)}main:focus{outline:none}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.wrap{width:min(100% - 2 * var(--gutter), var(--max));margin-inline:auto}.ja{font-family:var(--font-ja);letter-spacing:.18em;text-transform:none;font-weight:500}.reveal{opacity:0;transition:opacity .9s var(--ease), transform .9s var(--ease);transform:translateY(1.25rem)}.reveal.is-visible{opacity:1;transform:none}.reveal[data-delay="1"]{transition-delay:80ms}.reveal[data-delay="2"]{transition-delay:.16s}.reveal[data-delay="3"]{transition-delay:.24s}@keyframes rise{0%{opacity:0;transform:translateY(.35em)}}@keyframes fade{0%{opacity:0}}@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, currentColor 55%, transparent)}70%,to{box-shadow:0 0 0 .45rem #0000}}::view-transition-old(root){animation-duration:.45s;animation-timing-function:ease}::view-transition-new(root){animation-duration:.45s;animation-timing-function:ease}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;transition-delay:0s!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reveal{opacity:1;transform:none}}.label,.eyebrow,.section-index,.status{font-family:var(--font-mono);font-size:var(--step--2);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);font-weight:500;line-height:1.4}.label{align-items:baseline;gap:.75rem;display:flex}.label>span:first-child:not(.ja){color:var(--accent)}.label .ja{margin-left:auto;font-size:.8125rem}.eyebrow,.section-index{align-items:center;gap:.75rem;display:flex}.eyebrow-rule,.section-rule{background:var(--line-strong);width:2.5rem;height:1px}.section-no{color:var(--accent)}.eyebrow .ja,.section-index .ja{font-size:.8125rem}.dot{background:var(--accent-deco);border-radius:50%;width:.17em;height:.17em;margin-left:.07em;display:inline-block}.status{color:var(--ink-2);align-items:center;gap:.6rem;display:inline-flex}.status-dot{width:.5rem;height:.5rem;color:var(--ok);background:currentColor;border-radius:50%;animation:2.4s ease-out infinite pulse}.btn{min-height:3rem;font-family:var(--font-sans);letter-spacing:.005em;white-space:nowrap;cursor:pointer;transition:background-color .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease);background:0 0;border:1px solid #0000;border-radius:0;justify-content:center;align-items:center;gap:.65rem;padding:.6rem 1.35rem;font-size:.9375rem;font-weight:500;line-height:1.2;text-decoration:none;display:inline-flex}.btn .icon{transition:transform .4s var(--ease)}.btn-primary{background:var(--btn-bg);border-color:var(--btn-bg);color:var(--btn-fg)}.btn-ghost{border-color:var(--line-strong);color:var(--ink)}@media (hover:hover){.btn-primary:hover{background:var(--btn-hover-bg);border-color:var(--btn-hover-bg);color:var(--btn-hover-fg)}.btn-ghost:hover{background:var(--ink);border-color:var(--ink);color:var(--paper)}.btn:hover .icon:last-child{transform:translate(.2rem)}.btn[href^=\#]:hover .icon:last-child{transform:translateY(.2rem)}}.btn:active{transform:translateY(1px)}.icon-btn{border:1px solid var(--line);cursor:pointer;width:2.75rem;height:2.75rem;transition:background-color .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease);background:0 0;place-items:center;font-size:.9rem;display:grid}@media (hover:hover){.icon-btn:hover{background:var(--ink);border-color:var(--ink);color:var(--paper)}}.text-link{min-height:2.75rem;color:var(--ink);transition:color .3s var(--ease);background:linear-gradient(currentColor,currentColor) 0 calc(100% - .55rem)/100% 1px no-repeat;align-items:center;gap:.5rem;font-size:.9375rem;font-weight:500;text-decoration:none;display:inline-flex}.text-link .icon:last-child{transition:transform .4s var(--ease);font-size:.8em}@media (hover:hover){.text-link:hover{color:var(--accent)}.text-link:hover .icon:last-child{transform:translate(.15rem,-.15rem)}}.tag-list{flex-wrap:wrap;gap:.4rem;display:flex}.tag-list li{border:1px solid var(--line);font-family:var(--font-mono);color:var(--ink-2);padding:.3rem .6rem;font-size:.75rem;line-height:1.3}.lang-switch{font-family:var(--font-mono);letter-spacing:.08em;align-items:center;font-size:.75rem;font-weight:500;display:inline-flex}.lang-option{min-width:2.25rem;min-height:2.75rem;color:var(--ink-3);cursor:pointer;transition:color .3s var(--ease);background:0 0;border:0;position:relative}.lang-option:after{content:"";background:var(--accent-deco);height:1px;transition:transform .4s var(--ease);position:absolute;bottom:.7rem;left:.5rem;right:.5rem;transform:scaleX(0)}.lang-option[aria-pressed=true]{color:var(--ink)}.lang-option[aria-pressed=true]:after{transform:scaleX(1)}.lang-option:hover{color:var(--ink)}.theme-toggle{cursor:pointer;background:0 0;border:0;place-items:center;width:2.75rem;height:2.75rem;display:grid}.theme-glyph{width:1.05rem;height:1.05rem;transition:transform .7s var(--ease);background:linear-gradient(90deg,currentColor 50%,#0000 50%);border:1.5px solid;border-radius:50%}:root[data-theme=dark] .theme-glyph{transform:rotate(180deg)}@media (hover:hover){.theme-toggle:hover .theme-glyph{transform:rotate(45deg)}:root[data-theme=dark] .theme-toggle:hover .theme-glyph{transform:rotate(225deg)}}.section{padding-block:var(--space-section);border-top:1px solid var(--line)}.section-grid{gap:clamp(2rem, 5vw, 3.5rem) var(--gap);display:grid}.section-grid>*{min-width:0}.section-title{font-size:var(--step-3);letter-spacing:-.035em;margin-top:.9rem;font-stretch:85%;line-height:1}.section-head--wide{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1.5rem 2rem;display:flex}@media (width>=64rem){.section-grid{grid-template-columns:repeat(12,minmax(0,1fr))}.section-head{top:calc(var(--header-h) + 2.5rem);grid-column:1/span 3;align-self:start;position:sticky}.section-body{grid-column:4/-1}.section-head--wide{grid-column:1/-1;position:static}}.site-header{z-index:100;border-bottom:1px solid var(--line);background:var(--header-bg);-webkit-backdrop-filter:blur(14px)saturate(1.3);backdrop-filter:blur(14px)saturate(1.3);position:sticky;top:0}.site-header-inner{height:var(--header-h);justify-content:space-between;align-items:center;gap:1rem;display:flex}.brand{letter-spacing:-.015em;align-items:center;gap:.55rem;min-height:2.75rem;font-size:1.0625rem;font-weight:600;text-decoration:none;display:inline-flex}.brand-mark{background:var(--accent-deco);width:.7rem;height:.7rem;transition:transform .5s var(--ease);border-radius:50%}a.brand:hover .brand-mark{transform:scale(1.4)}.site-nav{display:none}.site-nav ul{gap:clamp(1.25rem,2.6vw,2.75rem);display:flex}.site-nav a,.footer-nav a{color:var(--ink-2);transition:color .3s var(--ease);align-items:baseline;gap:.5rem;padding:.75rem 0;font-size:.9375rem;font-weight:500;text-decoration:none;display:inline-flex;position:relative}.nav-no{font-family:var(--font-mono);font-size:var(--step--2);color:var(--ink-3);transition:color .3s var(--ease)}.site-nav a:after,.footer-nav a:after{content:"";transform-origin:0;height:1px;transition:transform .5s var(--ease);background:currentColor;position:absolute;bottom:.5rem;left:0;right:0;transform:scaleX(0)}.site-nav a:hover,.site-nav a.is-active,.footer-nav a:hover{color:var(--ink)}.site-nav a:hover:after,.site-nav a.is-active:after,.footer-nav a:hover:after{transform:scaleX(1)}.site-nav a.is-active .nav-no{color:var(--accent)}.site-controls{align-items:center;gap:.25rem;display:flex}.header-status{margin-right:1rem;display:none}.menu-btn{cursor:pointer;background:0 0;border:0;place-items:center;width:2.75rem;height:2.75rem;margin-right:-.6rem;display:grid}.menu-glyph{border-top:1.5px solid;width:1.35rem;height:.5rem;position:relative}.menu-glyph:after{content:"";width:62%;transition:width .4s var(--ease);border-top:1.5px solid;position:absolute;bottom:0;right:0}.menu-btn:hover .menu-glyph:after{width:100%}@media (width>=56rem){.site-nav{display:block}.menu-btn{display:none}}@media (width>=78rem){.header-status{display:inline-flex}}.scroll-progress{background:var(--accent-deco);transform-origin:0;width:100%;height:2px;position:absolute;bottom:-1px;left:0;transform:scaleX(0)}@supports (animation-timeline:scroll()){.scroll-progress{animation:linear both scroll-progress;animation-timeline:scroll(root)}}@keyframes scroll-progress{to{transform:scaleX(1)}}.menu-dialog{background:var(--paper) var(--grain);width:100%;max-width:none;height:100dvh;max-height:none;color:var(--ink);opacity:0;transition:opacity .35s ease, overlay .35s allow-discrete, display .35s allow-discrete;border:0;margin:0;position:fixed;inset:0}.menu-dialog[open]{opacity:1}@starting-style{.menu-dialog[open]{opacity:0}}.menu-dialog::backdrop{background:var(--paper)}.menu-inner{min-height:100%;padding:0 var(--gutter) 1.5rem;flex-direction:column;display:flex}.menu-top{height:var(--header-h);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.menu-heading{font-family:var(--font-mono);font-size:var(--step--2);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);align-items:center;gap:.75rem;display:flex}.menu-heading .ja{font-size:.8125rem}.menu-inner nav{flex-direction:column;flex:1;justify-content:center;padding-block:1.5rem;display:flex}.menu-list{border-top:1px solid var(--line-strong)}.menu-list a{border-bottom:1px solid var(--line);grid-template-columns:2.5rem 1fr auto;align-items:baseline;gap:.5rem;padding:1.15rem 0;text-decoration:none;display:grid}.menu-list li{animation:rise .7s var(--ease) both}.menu-list li:nth-child(2){animation-delay:50ms}.menu-list li:nth-child(3){animation-delay:.1s}.menu-list li:nth-child(4){animation-delay:.15s}.menu-no{font-family:var(--font-mono);font-size:var(--step--2);color:var(--ink-3)}.menu-label{letter-spacing:-.035em;font-size:clamp(2.1rem,10.5vw,3.5rem);font-weight:600;font-stretch:85%;line-height:1.05}.menu-list .ja{color:var(--ink-3);font-size:.8125rem}.menu-list a[aria-current] .menu-no{color:var(--accent)}.menu-foot{font-family:var(--font-mono);font-size:var(--step--2);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.site-footer{font-size:var(--step--1);color:var(--ink-2);padding-block:clamp(2.5rem,6vw,4rem) 1.5rem}.footer-grid{gap:2rem var(--gap);grid-template-columns:1fr 1fr;padding-bottom:clamp(2rem,5vw,3.5rem);display:grid}.footer-brand .brand{min-height:0;color:var(--ink)}.footer-note{margin-top:.5rem}.footer-nav{gap:.1rem;display:grid}.footer-nav a{font-size:inherit;padding:.45rem 0}.footer-nav a:after{bottom:.3rem}.footer-meta{align-content:start;gap:.35rem;display:grid}.footer-top{min-height:2.75rem;color:var(--ink);place-self:start;align-items:center;gap:.85rem;font-weight:500;text-decoration:none;display:inline-flex}.footer-top-box{border:1px solid var(--line-strong);width:2.75rem;height:2.75rem;transition:background-color .3s var(--ease), color .3s var(--ease);place-items:center;font-size:1.25rem;display:grid}.footer-top-box .icon{transition:transform .4s var(--ease)}@media (hover:hover){.footer-top:hover .footer-top-box{background:var(--ink);color:var(--paper)}.footer-top:hover .icon{transform:translateY(-.2rem)}}.footer-base{border-top:1px solid var(--line);font-family:var(--font-mono);font-size:var(--step--2);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 2rem;padding-top:1.25rem;display:flex}.footer-base .ja{letter-spacing:.22em;font-size:.8125rem}@media (width>=48rem){.footer-grid{grid-template-columns:4fr 3fr 3fr auto}.footer-top{justify-self:end}}.hero{padding-block:clamp(1.5rem,4vw,2.75rem) clamp(2.5rem,6vw,4rem)}.hero-grid{--hero-size:clamp(4rem, 22vw, 10.75rem);gap:clamp(1.5rem, 4vw, 2.25rem) var(--gap);display:grid}.hero-grid>*{min-width:0}.hero-meta{flex-wrap:wrap;align-items:center;gap:.75rem 1.5rem;animation:.9s both fade;display:flex}@media (width>=78rem){.hero{padding-top:clamp(3rem,5vw,4rem)}.hero-meta{display:none}}.hero-title{font-size:var(--hero-size);letter-spacing:-.045em;margin-left:-.04em;font-stretch:78%;line-height:.86}.hero-line{animation:rise 1s var(--ease) both;display:block}.hero-line+.hero-line{animation-delay:80ms}.hero-intro{gap:.85rem;animation:1s .25s both fade;display:grid}.hero-role{font-family:var(--font-mono);font-size:var(--step--1);letter-spacing:.04em;color:var(--accent);font-weight:500}.hero-desc{max-width:33rem;font-size:var(--step-1);letter-spacing:-.01em;color:var(--ink);line-height:1.4}.hero-actions{grid-template-columns:1fr 1fr;gap:.6rem;margin-top:1.5rem;display:grid}.hero-actions .btn-primary{grid-column:1/-1}.hero-actions .btn{padding-inline:.75rem}.hero-figure{grid-template-columns:minmax(0,1fr) auto;gap:.6rem .75rem;display:grid}.hero-panel{border:1px solid var(--line-strong);background:#0b0b0e;position:relative}.hero-panel img{aspect-ratio:5/4;object-fit:cover;object-position:50% 28%;width:100%}.seal{background:var(--seal);color:#fff;letter-spacing:.12em;writing-mode:vertical-rl;padding:.6rem .32rem;font-size:1rem;font-weight:700;line-height:1;position:absolute;bottom:1.25rem;left:-.5rem}.hero-vertical{writing-mode:vertical-rl;letter-spacing:.32em;color:var(--ink-3);font-size:.8125rem}.hero-figure figcaption{font-family:var(--font-mono);font-size:var(--step--2);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);grid-column:1;justify-content:space-between;display:flex}.hero-specs{border-top:1px solid var(--line-strong);grid-template-columns:1fr 1fr;display:grid}.hero-specs>div{border-bottom:1px solid var(--line);padding:.9rem .75rem .9rem 0}.hero-specs>div:nth-child(2n){border-left:1px solid var(--line);padding-left:.75rem}.hero-specs dt{font-family:var(--font-mono);font-size:var(--step--2);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}.hero-specs dd{font-size:var(--step--1);margin-top:.3rem;font-weight:500;line-height:1.35}@media (width>=30rem){.hero-actions{flex-wrap:wrap;display:flex}.hero-actions .btn{padding-inline:1.35rem}}@media (width>=48rem){.hero-grid{grid-template-columns:repeat(12,minmax(0,1fr));row-gap:clamp(1.75rem,3.5vw,2.5rem)}.hero-meta,.hero-title,.hero-specs{grid-column:1/-1}.hero-intro{grid-column:1/span 7;align-content:end}.hero-figure{grid-column:8/-1}.hero-panel img{aspect-ratio:4/5;object-position:46% 50%}.hero-specs{grid-template-columns:repeat(4,1fr)}.hero-specs>div,.hero-specs>div:nth-child(2n){border:0;padding:1rem 1rem 0 0}.hero-specs>div:nth-child(n+2){border-left:1px solid var(--line);padding-left:1rem}}@media (width>=64rem){.hero-grid{--hero-size:clamp(6rem, 12.8vw, 12.25rem)}.hero-title,.hero-intro{grid-column:1/span 7}.hero-intro{align-content:start}.hero-figure{margin-top:calc(var(--hero-size) * .075);grid-area:2/8/span 2/-1;grid-template-rows:minmax(0,1fr) auto}@media (width>=78rem){.hero-figure{grid-row:1/span 2}}.hero-panel{min-height:20rem}.hero-panel img{aspect-ratio:auto;object-position:42% 50%;height:100%;position:absolute;inset:0}.hero-actions{margin-top:1.75rem}}.about-lead{max-width:48rem;font-size:var(--step-2);letter-spacing:-.025em;color:var(--ink-3);font-weight:500;line-height:1.22}.about-lead strong{color:var(--ink);font-weight:600}.about-cols{gap:2rem var(--gap);margin-top:clamp(2.5rem,6vw,4.5rem);display:grid}.about-col{border-top:1px solid var(--line-strong);padding-top:1rem}.about-col p{max-width:34rem;color:var(--ink-2);margin-top:1rem}@media (width>=48rem){.about-cols{grid-template-columns:1fr 1fr}}.stack-list{border-top:1px solid var(--line-strong)}.stack-row{gap:.75rem var(--gap);border-bottom:1px solid var(--line);grid-template-columns:3rem minmax(0,1fr);padding-block:clamp(1.25rem,3vw,2rem);display:grid}.stack-no{font-family:var(--font-mono);font-size:var(--step--2);letter-spacing:.06em;color:var(--accent);padding-top:.1rem}.stack-group{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.stack-group .label{color:var(--ink-2)}.stack-group .ja{color:var(--ink-3);white-space:nowrap;font-size:.8125rem}.stack-skills{font-size:var(--step-2);letter-spacing:-.03em;flex-wrap:wrap;grid-column:2;gap:.15rem 0;font-weight:500;font-stretch:88%;line-height:1.15;display:flex}.stack-skills li{transition:color .3s var(--ease)}.stack-skills li:not(:last-child):after{content:"/";color:var(--line);margin-inline:.45em;font-weight:400}@media (hover:hover){.stack-skills li:hover{color:var(--accent)}}@media (width>=48rem){.stack-row{grid-template-columns:3.5rem 11rem minmax(0,1fr);align-items:baseline}.stack-group{justify-content:start;gap:.4rem;display:grid}.stack-skills{grid-column:3}}.filters{gap:clamp(1rem,3vw,2rem);display:flex}.filter-btn{min-height:2.75rem;font-family:var(--font-mono);letter-spacing:.1em;color:var(--ink-3);cursor:pointer;transition:color .3s var(--ease);background:0 0;border:0;align-items:baseline;gap:.4rem;font-size:.8125rem;font-weight:500;display:inline-flex;position:relative}.filter-count{letter-spacing:.04em;font-size:.6875rem}.filter-btn:after{content:"";background:var(--accent-deco);transform-origin:0;height:2px;transition:transform .5s var(--ease);position:absolute;bottom:.45rem;left:0;right:0;transform:scaleX(0)}.filter-btn:hover,.filter-btn[aria-pressed=true]{color:var(--ink)}.filter-btn[aria-pressed=true]:after{transform:scaleX(1)}.project-list{border-top:1px solid var(--line-strong);grid-column:1/-1}.project-list>li{border-bottom:1px solid var(--line)}.project{gap:1.5rem var(--gap);padding-block:clamp(1.75rem,5vw,4rem);display:grid}.project>*{min-width:0}.project-media,.sheet-media{border:1px solid var(--line);background:var(--media-bg);position:relative;overflow:hidden}.project-media{cursor:pointer}.project-media img,.sheet-media img{aspect-ratio:2;object-fit:cover;width:100%;transition:transform 1.1s var(--ease)}.project-media[data-mono],.sheet-media[data-mono]{background:var(--paper-raised)}[data-mono] img{mix-blend-mode:multiply}:root[data-theme=dark] [data-mono]{background:var(--media-bg)}:root[data-theme=dark] [data-mono] img{mix-blend-mode:normal;filter:invert()hue-rotate(180deg)}.project-hint{background:var(--ink);color:var(--paper);font-family:var(--font-mono);font-size:var(--step--2);letter-spacing:.1em;text-transform:uppercase;transition:transform .5s var(--ease);align-items:center;gap:.5rem;padding:.6rem .9rem;display:inline-flex;position:absolute;bottom:0;left:0;transform:translateY(101%)}.project-body{flex-direction:column;align-items:flex-start;display:flex}.project-meta{width:100%;font-family:var(--font-mono);font-size:var(--step--2);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);align-items:baseline;gap:.75rem;font-weight:500;display:flex}.project-no{color:var(--accent)}.project-meta .ja{margin-left:auto;font-size:.8125rem}.project-title{letter-spacing:-.04em;margin-top:.9rem;font-size:clamp(1.875rem,1.4rem + 2.1vw,3.125rem);font-stretch:85%;line-height:1}.project-desc{max-width:32rem;color:var(--ink-2);margin-top:1rem}.project .tag-list{margin-top:1.25rem}.project-actions{flex-wrap:wrap;align-items:center;gap:.5rem 1.5rem;margin-top:1.75rem;display:flex}@media (hover:hover){:is(.project-media:hover img,.project:has(.btn:hover) .project-media img){transform:scale(1.035)}.project-media:hover .project-hint{transform:none}}@media (width>=56.25rem){.project{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);align-items:center;column-gap:clamp(2rem,4.5vw,4.5rem)}.project-list>li:nth-child(2n) .project{grid-template-columns:minmax(0,1fr) minmax(0,1.55fr)}.project-list>li:nth-child(2n) .project-media{order:2}.project-actions{margin-top:2.25rem}}.contact{--btn-bg:var(--seal);--btn-fg:#fff;--btn-hover-bg:var(--ink);--btn-hover-fg:var(--paper);border-top:1px solid var(--line-strong);background:var(--paper-sunk) var(--grain);padding-block:clamp(3.5rem,8vw,6rem) clamp(3rem,7vw,5rem);position:relative}.contact:before{content:"";top:-2px;left:max(var(--gutter), (100% - var(--max)) / 2);background:var(--accent-deco);width:4rem;height:3px;position:absolute}.contact-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 2rem;display:flex}.contact-main{gap:1.25rem var(--gap);margin-top:clamp(2.25rem,6vw,4rem);display:grid}.contact-headline{font-size:var(--step-4);letter-spacing:-.045em;margin-left:-.04em;font-stretch:80%;line-height:.92}.contact-lead{max-width:30rem;font-size:var(--step-1);color:var(--ink-2);line-height:1.4}.contact-email{gap:1.25rem var(--gap);border-top:1px solid var(--line-strong);margin-top:clamp(2.25rem,6vw,4rem);padding-top:1.25rem;display:grid}.contact-email-main{min-width:0;container-type:inline-size}.contact-email-link{letter-spacing:-.03em;overflow-wrap:anywhere;background:linear-gradient(var(--accent-deco), var(--accent-deco)) no-repeat 0 calc(100% - .25rem) / 0 2px;max-width:100%;min-height:2.75rem;transition:background-size .7s var(--ease);align-items:center;margin-top:.2rem;padding-block:.3rem;font-size:clamp(1.25rem,min(9cqi,6.4vw),4.75rem);font-weight:500;font-stretch:85%;line-height:1.1;text-decoration:none;display:inline-flex}@media (hover:hover){.contact-email-link:hover{background-size:100% 2px}}.contact-actions{flex-wrap:wrap;gap:.6rem;display:flex}.contact-error{font-size:var(--step--1);color:var(--accent)}.contact-links{margin-top:clamp(2.25rem,6vw,4rem)}.contact-links ul{border-top:1px solid var(--line);display:grid}.contact-link{border-bottom:1px solid var(--line);min-height:4.5rem;transition:padding .5s var(--ease);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.15rem 1rem;padding-block:1rem;text-decoration:none;display:grid}.contact-link-name{font-size:var(--step-1);letter-spacing:-.015em;align-items:center;gap:.65rem;font-weight:500;display:inline-flex}.contact-link-name .icon{font-size:.8em}.contact-link-detail{font-family:var(--font-mono);color:var(--ink-3);overflow-wrap:anywhere;grid-column:1;font-size:.8125rem}.contact-link-arrow{color:var(--ink-3);transition:transform .5s var(--ease), color .3s var(--ease);grid-area:1/2/span 2;font-size:1.1rem}@media (hover:hover){.contact-link:hover{padding-inline:.75rem}.contact-link:hover .contact-link-arrow{color:var(--accent);transform:translate(.2rem,-.2rem)}.contact-link[download]:hover .contact-link-arrow{transform:translateY(.25rem)}}.contact-location{font-family:var(--font-mono);font-size:var(--step--2);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin-top:1.25rem}@media (width>=56.25rem){.contact-main,.contact-email{grid-template-columns:repeat(12,minmax(0,1fr));align-items:end}.contact-headline,.contact-email-main{grid-column:1/span 7}.contact-lead,.contact-actions{grid-column:8/-1}.contact-lead{padding-bottom:.5rem}.contact-actions{padding-bottom:.75rem}.contact-error{grid-column:1/-1}.contact-links ul{column-gap:var(--gap);grid-template-columns:repeat(3,minmax(0,1fr))}}.sheet{border:0;border-left:1px solid var(--line-strong);background:var(--paper) var(--grain);width:min(46rem,100%);max-width:none;height:100dvh;max-height:none;color:var(--ink);opacity:0;transition:translate .55s var(--ease), opacity .4s ease, overlay .55s allow-discrete, display .55s allow-discrete;margin:0;position:fixed;inset:0 0 0 auto;overflow:hidden;translate:3rem}.sheet[open]{opacity:1;translate:0}@starting-style{.sheet[open]{opacity:0;translate:3rem}}.sheet::backdrop{background:var(--backdrop);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:.4s both fade}.sheet-panel{grid-template-rows:auto minmax(0,1fr) auto;height:100%;display:grid}.sheet-head,.sheet-body,.sheet-foot{padding-inline:clamp(1.25rem,5vw,3rem)}.sheet-head{min-height:var(--header-h);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;display:flex}.sheet-meta{font-family:var(--font-mono);font-size:var(--step--2);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);flex-wrap:wrap;align-items:baseline;gap:.25rem .9rem;font-weight:500;display:flex}.sheet-no{color:var(--accent)}.sheet-meta .ja{font-size:.8125rem}.sheet-body{overscroll-behavior:contain;padding-block:clamp(1.75rem,5vw,3rem);overflow-y:auto}.sheet-body:focus-visible{outline-offset:-2px}.sheet-title{font-size:var(--step-3);letter-spacing:-.04em;font-stretch:85%;line-height:1}.sheet-desc{max-width:36rem;color:var(--ink-2);margin-top:1rem}.sheet-media{margin-top:clamp(1.5rem,4vw,2.25rem)}.sheet-section{margin-top:clamp(2rem,5vw,3rem)}.sheet-section .label{border-bottom:1px solid var(--line-strong);color:var(--ink-2);padding-bottom:.75rem}.sheet-lead{font-size:var(--step-1);letter-spacing:-.01em;margin-top:1.1rem;line-height:1.4}.arch{font-family:var(--font-mono);font-size:var(--step--1);margin-top:1.1rem;line-height:1.5}.arch--flow{counter-reset:layer;display:grid}.arch--flow li{counter-increment:layer;border:1px solid var(--line);background:var(--paper-raised);padding:.85rem 1rem .85rem 3rem;position:relative}.arch--flow li:before{content:counter(layer, decimal-leading-zero);color:var(--accent);position:absolute;left:1rem}.arch--flow li+li{margin-top:1.25rem}.arch--flow li+li:after{content:"";border-left:1px solid var(--line-strong);height:1.25rem;position:absolute;bottom:100%;left:1.6rem}.arch--stack{flex-wrap:wrap;gap:.4rem;display:flex}.arch--stack li{border:1px solid var(--line);background:var(--paper-raised);padding:.4rem .7rem}.sheet-points{counter-reset:point}.sheet-points li{counter-increment:point;border-bottom:1px solid var(--line);color:var(--ink-2);padding:1rem 0 1rem 3rem;position:relative}.sheet-points li:before{content:counter(point, decimal-leading-zero);font-family:var(--font-mono);font-size:var(--step--2);letter-spacing:.06em;color:var(--ink-3);position:absolute;top:1.2rem;left:0}.sheet-foot{border-top:1px solid var(--line);background:var(--paper);flex-wrap:wrap;gap:.6rem;padding-block:1rem;display:flex}.sheet-foot .btn{flex:auto}@media (width<=46rem){.sheet{border-left:0;translate:0 2rem}@starting-style{.sheet[open]{translate:0 2rem}}}
