:root{--color-base: #0E1116;--color-bg: #FAFAFB;--color-surface: #FFFFFF;--color-surface-alt: #F4F5F7;--color-text: #1A1B1F;--color-text-strong: #0F1F3D;--color-text-muted: #5A5B62;--color-text-faint: #9296A1;--color-border: #E5E6EA;--color-border-strong: #CFD2D8;--color-accent: #5DD27F;--color-accent-strong: #3FB763;--color-accent-faint: rgba(93, 210, 127, .1);--color-primary: var(--color-text-strong);--color-primary-soft: rgba(15, 31, 61, .06);--font-sans: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Consolas", "Menlo", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-md: 1.25rem;--text-lg: 1.5625rem;--text-xl: 1.9375rem;--text-2xl: 2.4375rem;--text-3xl: 3.0625rem;--text-display: 4.75rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--space-32: 8rem;--container-max: 1200px;--content-max: 880px;--motion-micro: .15s;--motion-base: .3s;--motion-reveal: .45s;--ease-standard: cubic-bezier(.16, 1, .3, 1);--ease-exit: cubic-bezier(.4, 0, 1, 1);--radius-sm: 4px;--radius-md: 8px;--border-width: 1px;--focus-ring: 0 0 0 3px var(--color-accent-faint);--focus-outline: 1.5px solid var(--color-accent);--z-skip-link: 100}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;font-family:var(--font-sans);font-size:var(--text-base);line-height:1.8;color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img,picture,svg,video{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration:none}h1,h2,h3,h4,h5,h6{margin:0;font-weight:700;line-height:1.3}p{margin:0}ul,ol{margin:0;padding:0;list-style:none}button{font-family:inherit;font-size:inherit;cursor:pointer;border:none;background:none;color:inherit}:focus-visible{outline:var(--focus-outline);outline-offset:2px;border-radius:var(--radius-sm)}.container{width:100%;max-width:var(--container-max);margin-inline:auto;padding-inline:var(--space-6)}@media(min-width:768px){.container{padding-inline:var(--space-12)}}.content{max-width:var(--content-max);margin-inline:auto}.section{padding-block:var(--space-16)}@media(min-width:768px){.section{padding-block:var(--space-24)}}.text-hero{font-size:clamp(var(--text-3xl),6vw + .5rem,var(--text-display));font-weight:700;letter-spacing:.06em;line-height:1.15}.text-section-title{font-size:clamp(var(--text-xl),3vw + .5rem,var(--text-2xl));font-weight:700;letter-spacing:.04em;line-height:1.25}.text-mono{font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:0}.text-muted{color:var(--color-text-muted)}.text-faint{color:var(--color-text-faint)}.text-numeric{font-feature-settings:"tnum" 1;font-variant-numeric:tabular-nums}.tag{display:inline-block;font-family:var(--font-mono);font-size:var(--text-xs);padding:.25rem .625rem;border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);letter-spacing:0;background:transparent}.tag-accent{border-color:var(--color-accent);color:var(--color-text-strong);background:transparent}@media(prefers-reduced-motion:no-preference){[data-reveal],.reveal{opacity:0;transform:translateY(16px);transition:opacity var(--motion-reveal) var(--ease-standard),transform var(--motion-reveal) var(--ease-standard);will-change:opacity,transform}@media(min-width:768px){[data-reveal],.reveal{transform:translateY(24px)}}[data-reveal].is-visible,.reveal.is-visible{opacity:1;transform:translateY(0)}[data-reveal][data-delay="1"],.reveal[data-delay="1"]{transition-delay:60ms}[data-reveal][data-delay="2"],.reveal[data-delay="2"]{transition-delay:.12s}[data-reveal][data-delay="3"],.reveal[data-delay="3"]{transition-delay:.18s}[data-reveal][data-delay="4"],.reveal[data-delay="4"]{transition-delay:.24s}[data-stagger]>*,.reveal-stagger>*{opacity:0;transform:translateY(16px);transition:opacity var(--motion-reveal) var(--ease-standard),transform var(--motion-reveal) var(--ease-standard)}@media(min-width:768px){[data-stagger]>*,.reveal-stagger>*{transform:translateY(24px)}}[data-stagger].is-visible>*,.reveal-stagger.is-visible>*{opacity:1;transform:translateY(0)}[data-stagger].is-visible>*:nth-child(1),.reveal-stagger.is-visible>*:nth-child(1){transition-delay:0ms}[data-stagger].is-visible>*:nth-child(2),.reveal-stagger.is-visible>*:nth-child(2){transition-delay:60ms}[data-stagger].is-visible>*:nth-child(3),.reveal-stagger.is-visible>*:nth-child(3){transition-delay:.12s}[data-stagger].is-visible>*:nth-child(4),.reveal-stagger.is-visible>*:nth-child(4){transition-delay:.18s}.cursor-blink:after{content:"_";display:inline-block;margin-left:.1em;color:var(--color-accent);font-family:var(--font-mono);font-weight:400;font-size:.7em;line-height:1;vertical-align:baseline;animation:cursorBlink 1.06s steps(2) infinite}@keyframes cursorBlink{50%{opacity:0}}}@media(prefers-reduced-motion:reduce){[data-reveal],.reveal,[data-stagger]>*,.reveal-stagger>*{opacity:1;transform:none}.cursor-blink:after{content:""}}.section-marker,.code-section-marker{display:flex;align-items:center;gap:var(--space-3);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:var(--space-6);letter-spacing:0}.section-marker__slash,.code-section-marker__slash{color:var(--color-text-muted);opacity:.6;transition:color var(--motion-base) var(--ease-standard),opacity var(--motion-base) var(--ease-standard)}.section-marker.is-visible .section-marker__slash,.section-marker[data-reveal].is-visible .section-marker__slash,.code-section-marker.is-visible .code-section-marker__slash{color:var(--color-accent);opacity:1}.section-marker__name,.code-section-marker__name{color:var(--color-text);font-weight:500}.section-marker__rule,.code-section-marker__rule{flex:1 1 auto;height:1px;background:linear-gradient(90deg,var(--color-border) 0%,var(--color-border) 55%,transparent 100%)}.section-marker[data-tone=on-dark],.code-section-marker[data-tone=on-dark],.section-contact .section-marker,.section-contact .code-section-marker{color:#fafafab3}.section-marker[data-tone=on-dark] .section-marker__name,.code-section-marker[data-tone=on-dark] .code-section-marker__name,.section-contact .section-marker__name,.section-contact .code-section-marker__name{color:#fafafae6}.section-marker[data-tone=on-dark] .section-marker__rule,.code-section-marker[data-tone=on-dark] .code-section-marker__rule,.section-contact .section-marker__rule,.section-contact .code-section-marker__rule{background:linear-gradient(90deg,rgba(250,250,250,.25) 0%,rgba(250,250,250,.25) 55%,transparent 100%)}.hover-bar,.code-hover{position:relative;transition:transform var(--motion-base) var(--ease-standard),border-color var(--motion-base) var(--ease-standard)}.hover-bar:before,.code-hover:before{content:"";position:absolute;left:var(--space-6);top:var(--space-3);width:0;height:2px;background:var(--color-accent);opacity:0;transition:width var(--motion-base) var(--ease-standard),opacity var(--motion-base) var(--ease-standard);pointer-events:none}.hover-bar:hover:before,.hover-bar:focus-visible:before,.code-hover:hover:before,.code-hover:focus-visible:before{width:24px;opacity:1}.metric,.metric-badge{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4) 0;background:transparent;border:none;position:relative}.metric--center,.metric-badge[data-align=center]{align-items:center;text-align:center}.metric__label,.metric-badge__label{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-faint);letter-spacing:.02em}.metric__value,.metric-badge__value{display:flex;align-items:baseline;gap:.25rem;color:var(--color-text-strong);position:relative}.metric__value:before,.metric-badge__value:before{content:"";position:absolute;left:-10px;top:8px;width:4px;height:4px;background:var(--color-accent);border-radius:50%}.metric--center .metric__value:before,.metric-badge[data-align=center] .metric-badge__value:before{display:none}.metric__number,.metric-badge__number{font-family:var(--font-mono);font-size:var(--text-2xl);font-weight:700;line-height:1;color:var(--color-text-strong);font-feature-settings:"tnum" 1;font-variant-numeric:tabular-nums}.metric__unit,.metric-badge__unit{font-size:var(--text-sm);color:var(--color-text-muted)}.metric__prefix,.metric-badge__prefix{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-muted);margin-right:.1em}
