/* ==========================================================================
   isprithul.me · base: reset, typography, layout primitives
   ========================================================================== */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 12px)}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:var(--font-body);font-size:1rem;line-height:1.55;
  text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;
  transition:background-color .25s ease,color .25s ease;
}
img,svg{max-width:100%}
img{display:block;height:auto}
[hidden]{display:none !important}
a{color:inherit}
p{margin:0}
p,blockquote,.field__err{text-wrap:pretty}
ul,ol{margin:0;padding:0}
button{font:inherit;color:inherit}
h1,h2,h3,h4{
  font-family:var(--font-display);color:var(--heading);margin:0;
  line-height:1.06;letter-spacing:-.015em;text-wrap:balance;font-weight:800;
}
:focus-visible{outline:2px solid var(--hover);outline-offset:2px}

/* layout */
.wrap{
  width:100%;max-width:var(--maxw);margin-inline:auto;
  padding-left:var(--gutter);padding-right:var(--gutter-r);
}
@media (min-width:768px){
  .wrap{padding-left:max(32px, env(safe-area-inset-left, 0px));padding-right:max(32px, env(safe-area-inset-right, 0px))}
}
.sec{padding-block:var(--sec-pad)}
.sec + .sec{border-top:1px solid var(--line)}
.sec__head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:16px 24px;margin-bottom:28px}
.sec__title{font-size:var(--fs-2xl)}
.sec__title--minor{font-size:clamp(1.45rem,2.3vw,1.85rem)}  /* everything except Projects + Contact */

/* text helpers */
.mono{font-family:var(--font-mono)}
.link{
  color:var(--heading);text-decoration:underline;text-decoration-color:var(--wire);
  text-decoration-thickness:2px;text-underline-offset:4px;
}
.link:hover{text-decoration-color:var(--hover)}
.link-btn{
  background:none;border:0;padding:0;cursor:pointer;text-align:left;
  font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--heading);
  text-decoration:underline;text-decoration-color:var(--wire);text-decoration-thickness:2px;text-underline-offset:4px;
}
.link-btn:hover{text-decoration-color:var(--hover)}
.skip{position:absolute;left:-9999px;top:8px;z-index:200;background:var(--bg);color:var(--ink);padding:8px 12px;border:1px solid var(--sym)}
.skip:focus{left:16px}
.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}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important}
}
