/* base.css ― reset＋素の要素＋a11y。tokens.css の後。 */
*,*::before,*::after{box-sizing:border-box}
*{margin:0}
html{-webkit-text-size-adjust:100%}
body{
  background:var(--c-bg);color:var(--c-text);
  font-family:var(--font-sans);font-size:var(--fs-16);line-height:var(--lh-normal);
  -webkit-font-smoothing:antialiased;font-feature-settings:"cv11","ss01";
  transition:background var(--mo-base) var(--ease),color var(--mo-base) var(--ease);
}
img,svg,video{max-width:100%;height:auto;display:block}
a{color:var(--c-primary);text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:3px}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,h4{line-height:var(--lh-tight);letter-spacing:-.01em;font-weight:700}
h1{font-size:clamp(2rem,4.5vw,var(--fs-56))}
h2{font-size:clamp(1.5rem,3vw,var(--fs-40))}
h3{font-size:var(--fs-24)}
p{line-height:var(--lh-normal)}
small{font-size:var(--fs-12)}
.num,.tnum{font-feature-settings:"tnum" 1;font-variant-numeric:tabular-nums}
code,kbd{font-family:var(--font-mono);font-size:.9em}

/* a11y */
:focus-visible{outline:2px solid var(--c-primary);outline-offset:2px;border-radius:var(--r-sm)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:var(--sp-4);top:-3rem;z-index:200;background:var(--c-primary);color:var(--c-primary-ink);padding:.6em 1em;border-radius:var(--r-sm);transition:top var(--mo-fast)}
.skip-link:focus{top:var(--sp-4)}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* utilities（最小限） */
.u-grad-text{background:var(--grad-agent);-webkit-background-clip:text;background-clip:text;color:transparent}
.u-mono{font-family:var(--font-mono)}
.u-sub{color:var(--c-text-sub)}
.u-mute{color:var(--c-text-mute)}
.u-center{text-align:center}
.u-hide{display:none!important}
@media(max-width:768px){.u-pc{display:none!important}}
@media(min-width:769px){.u-sp{display:none!important}}
