body{margin:0}
a{color:inherit}a:hover{color:inherit}
.kc{background:var(--bg);color:var(--text);font-family:"Geist",ui-sans-serif,system-ui,sans-serif;font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-variant-numeric:tabular-nums;transition:background-color 250ms ease,color 250ms ease;position:relative;min-height:100vh}
.kc *{box-sizing:border-box}
.kc ::selection{background:var(--accent);color:#04140C}
.mono{font-family:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,monospace}
.jp{font-family:"Shippori Mincho B1","Hiragino Mincho ProN","Yu Mincho",serif}
.acc{color:var(--acc-fg)}
.wrap{width:100%;max-width:1240px;margin:0 auto;padding-inline:clamp(16px,4vw,40px)}
.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:16px;top:-80px;z-index:50;background:var(--accent);color:#04140C;padding:12px 16px;border-radius:8px;font-weight:600;text-decoration:none;transition:top 160ms ease}
.skip:focus{top:16px}
.kc a:focus-visible,.kc button:focus-visible,.kc input:focus-visible,.kc textarea:focus-visible{outline:2px solid var(--acc-fg);outline-offset:3px;border-radius:8px}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:0 20px;border-radius:10px;font:inherit;font-size:15px;font-weight:600;text-decoration:none;cursor:pointer;border:1px solid transparent;box-shadow:none;transition:background-color 150ms ease,border-color 150ms ease,color 150ms ease,box-shadow 200ms ease,transform 150ms ease}
.btn-lg{min-height:52px;padding:0 24px;font-size:16px}
.btn-primary{background:var(--accent);color:#04140C}
.btn-primary:hover{background:var(--acc-hover);color:#04140C;box-shadow:0 1px 2px var(--drop),0 10px 28px -10px var(--glow)}
.btn-primary:active{transform:translateY(1px);box-shadow:none}
.btn-primary[aria-busy="true"]{cursor:progress;box-shadow:none}
.btn-ghost{background:transparent;color:var(--text);border-color:var(--ctl)}
.btn-ghost:hover{border-color:var(--ctl-h);background:var(--bg2);color:var(--hi);box-shadow:0 1px 2px var(--drop),0 8px 20px -12px var(--drop)}
.btn-ghost:active{transform:translateY(1px);box-shadow:none}
.btn .arrow{transition:transform 150ms ease}
.btn:hover .arrow{transform:translateX(3px)}
.icon-btn{width:44px;height:44px;padding:0;border-radius:10px;display:inline-grid;place-items:center;background:transparent;color:var(--muted);border:1px solid var(--ctl);cursor:pointer;transition:color 150ms ease,border-color 150ms ease,background-color 150ms ease}
.icon-btn:hover{color:var(--hi);border-color:var(--ctl-h);background:var(--bg2)}
/* type */
.h1{font-size:clamp(40px,5.6vw,80px);line-height:1;letter-spacing:-.045em;font-weight:600;margin:0;text-wrap:balance}
.h2{font-size:clamp(32px,4vw,52px);line-height:1.04;letter-spacing:-.04em;font-weight:600;margin:0;text-wrap:balance}
.lead{color:var(--muted);font-size:clamp(17px,1.6vw,20px);line-height:1.55;max-width:34em;margin:0;text-wrap:pretty}
.eyebrow{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:13px;letter-spacing:.08em;text-transform:uppercase;margin:0}
.eyebrow::before{content:"";width:18px;height:1px;background:var(--acc-fg)}
.hint{font-size:13px;color:var(--muted)}
/* layout */
.sec{padding-block:clamp(56px,8vw,112px)}
.pagehead{position:relative;overflow:hidden;border-bottom:1px solid var(--line);padding-top:clamp(64px,9vw,120px);padding-bottom:clamp(48px,6vw,80px)}
.grid-bg{position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:72px 72px;opacity:.5;-webkit-mask-image:radial-gradient(ellipse 60% 90% at 85% 0%,#000 0%,transparent 70%);mask-image:radial-gradient(ellipse 60% 90% at 85% 0%,#000 0%,transparent 70%)}
/* Front page uses larger type and section spacing (design: home page). body gets .kc-front. */
.kc-front .h1{font-size:clamp(42px,6.4vw,92px);line-height:.98}
.kc-front .h2{font-size:clamp(34px,4.4vw,60px);line-height:1.02}
.kc-front .sec{padding-block:clamp(72px,10vw,136px);border-bottom:1px solid var(--line)}
.kc-front .grid-bg{opacity:.55;-webkit-mask-image:radial-gradient(ellipse 70% 80% at 70% 40%,#000 0%,transparent 75%);mask-image:radial-gradient(ellipse 70% 80% at 70% 40%,#000 0%,transparent 75%)}
/* motion */
.rise{opacity:0;transform:translateY(14px);animation:rise 800ms cubic-bezier(.2,.7,.2,1) forwards}
@keyframes rise{to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.rise{animation:none !important;opacity:1;transform:none}.kc,.kc *{transition:none !important}}
.kc{-webkit-tap-highlight-color:rgba(61,220,151,.18)}
.kc a,.kc button,.kc input,.kc textarea,.kc select,.kc summary,.kc [role=button],.kc [role=radio]{touch-action:manipulation}
