:root{color-scheme:light;--color-bg-space:#fafaf8;--color-bg-surface:#ffffff;--color-bg-subtle:#f2f2ef;--color-line-subtle:#e4e4e0;--color-line-default:#cfcfca;--color-line-strong:#141414;--color-text-tertiary:#6f6f6a;--color-text-secondary:#4d4d4a;--color-text-primary:#141414;--color-action-primary:#141414;--color-signal-default:#ff5b1f;--color-signal-hover:#e0480f;--spacing-1:4px;--spacing-2:8px;--spacing-3:12px;--spacing-4:16px;--spacing-5:20px;--spacing-6:24px;--spacing-8:32px;--spacing-10:40px;--spacing-12:48px;--spacing-16:64px;--spacing-20:80px;--spacing-30:120px;--spacing-40:160px;--radius-none:0;--radius-button:2px;--radius-pill:999px;--layout-content-max:1120px;--layout-gutter:clamp(20px,11vw,160px);--layout-section-y:clamp(64px,14vh,160px);--font-sans:"IBM Plex Sans JP","Hiragino Sans","Noto Sans JP",system-ui,sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;--fs-display:clamp(36px,5.2vw,64px);--fs-h2:clamp(26px,3vw,40px);--fs-h3:clamp(18px,1.6vw,22px);--fs-lead:clamp(16px,1.3vw,18px);--fs-body:clamp(15px,1.1vw,16px);--fs-small:clamp(13px,1vw,14px);--fs-button:15px;--fs-label:clamp(11px,0.9vw,12px);--fs-number:clamp(32px,3.6vw,48px);--ease-ui:cubic-bezier(0.22,1,0.36,1);--ease-draw:cubic-bezier(0.65,0,0.35,1);--dur-fast:0.25s;--dur-slow:0.6s;--z-sky:0;--z-content:1;--z-instrument:15;--z-header:20;--z-loader:50}*,:after,:before{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background:var(--color-bg-space);color:var(--color-text-primary);font-family:var(--font-sans);font-size:var(--fs-body);font-weight:400;line-height:1.9;letter-spacing:.02em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}blockquote,body,dd,dl,figure,h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{font-weight:500;text-wrap:balance}ol,ul{margin:0;padding:0;list-style:none}a{color:inherit;text-decoration:none}canvas,img,svg{display:block;max-width:100%}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--color-signal-default);outline-offset:3px}.visuallyHidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap;border:0}.skipLink{position:absolute;top:-100px;left:var(--spacing-4);z-index:calc(var(--z-header) + 1);padding:var(--spacing-3) var(--spacing-5);background:var(--color-bg-surface);border:1px solid var(--color-line-strong);font-size:var(--fs-small)}.skipLink:focus{top:var(--spacing-4)}.display{font-size:var(--fs-display);line-height:1.3;letter-spacing:-.01em}.display,.h2{font-weight:500}.h2{font-size:var(--fs-h2);line-height:1.4}.h3{font-size:var(--fs-h3);font-weight:500;line-height:1.5}.lead{font-size:var(--fs-lead)}.body,.lead{font-weight:400;line-height:1.9}.body{font-size:var(--fs-body);letter-spacing:.02em}.small{font-size:var(--fs-small);line-height:1.8}.label,.small{font-weight:400}.label{font-size:var(--fs-label);line-height:1.5;letter-spacing:.2em;text-transform:uppercase;color:var(--color-text-tertiary)}.label,.number{font-family:var(--font-mono)}.number{font-size:var(--fs-number);font-weight:300;line-height:1.2;letter-spacing:.08em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.signal{color:var(--color-signal-default)}.linkLine{display:inline;background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-position:0 100%;background-size:0 1px;transition:background-size var(--dur-slow) var(--ease-ui),color var(--dur-fast) var(--ease-ui)}.linkLine:focus-visible,.linkLine:hover{background-size:100% 1px;color:var(--color-text-primary)}.linkLineStatic{box-shadow:inset 0 -1px 0 var(--color-line-default);transition:box-shadow var(--dur-fast) var(--ease-ui)}.linkLineStatic:focus-visible,.linkLineStatic:hover{box-shadow:inset 0 -1px 0 var(--color-line-strong)}a:active,button:active{transform:translateY(1px)}.js [data-scene]>*{opacity:0;will-change:opacity,transform,filter}html.lenis{scroll-behavior:auto}html.is-intro,html.is-intro body,html.is-leaving,html.is-leaving body,html.is-menu,html.is-menu body{overflow:hidden}html.is-leaving main{pointer-events:none}.lenis body{height:auto}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.js [data-scene]>*{opacity:1;transform:none;filter:none}a:active,button:active{transform:none}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.Logo_logo__uhhca{display:inline-flex;align-items:center;gap:var(--spacing-3);color:var(--color-text-primary)}.Logo_mark__9EYVM{width:26px;height:26px;flex:none}.Logo_word__IHzRO{font-family:var(--font-mono);font-size:13px;letter-spacing:.34em;transition:letter-spacing var(--dur-slow) var(--ease-ui)}.Logo_edges__QYgix line{stroke-dasharray:24;stroke-dashoffset:0}.Logo_vertex__sqFkq{transform-box:fill-box;transform-origin:center;transition:transform var(--dur-slow) var(--ease-ui)}a:focus-visible .Logo_edges__QYgix line,a:hover .Logo_edges__QYgix line{animation:Logo_redraw__W_1qo .75s var(--ease-ui) both}a:hover .Logo_edges__QYgix line:nth-child(2){animation-delay:90ms}a:hover .Logo_edges__QYgix line:nth-child(3){animation-delay:.18s}a:focus-visible .Logo_vertex__sqFkq,a:hover .Logo_vertex__sqFkq{transform:scale(1.2)}a:focus-visible .Logo_word__IHzRO,a:hover .Logo_word__IHzRO{letter-spacing:.38em}@keyframes Logo_redraw__W_1qo{0%{stroke-dashoffset:24}to{stroke-dashoffset:0}}@media (prefers-reduced-motion:reduce){a:focus-visible .Logo_edges__QYgix line,a:hover .Logo_edges__QYgix line{animation:none}a:focus-visible .Logo_word__IHzRO,a:hover .Logo_word__IHzRO{letter-spacing:.34em}}