/* Base / reset — shared document primitives only */
*{box-sizing:border-box}
html{
  scroll-behavior:smooth;
  scroll-padding-top:78px;
  background:var(--bg,#050505);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}
body{
  margin:0;
  background:var(--bg,#050505);
  color:var(--text,#f6f6f3);
  font-family:"Pretendard Variable",Pretendard,"Noto Sans KR",sans-serif;
  overflow-x:hidden;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
body.menu-open{overflow:hidden}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button,a{-webkit-tap-highlight-color:transparent}
img,video{display:block;max-width:100%}
::selection{background:var(--red,#e01d26);color:white}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:80;opacity:.18;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.16'/%3E%3C/svg%3E")}
.shell{width:min(var(--max,1680px),calc(100% - var(--pad,24px)*2));margin-inline:auto}
.skip{position:fixed;top:-80px;left:20px;z-index:1000;background:#fff;color:#000;padding:12px 16px}
.skip:focus{top:12px}
.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}
