/* ============================================================
   PAINS — Home
   "Data-center" visual language: monochrome, hairline grids,
   monospace technical labels, photos contained in framed
   modules (never full-bleed under text).
   ============================================================ */
:root{
  --black:#070b12;
  --panel:#0b1220;
  --paper:#f2f1ec;
  --ink:#141410;
  --line:rgba(242,241,236,.16);      /* hairline on dark */
  --line-ink:rgba(20,20,15,.16);     /* hairline on light */
  --muted:rgba(242,241,236,.56);     /* muted text on dark */
  --muted-ink:#615d54;               /* muted text on light */
  --page:min(1240px,calc(100% - clamp(40px,8vw,128px)));
  --sans:-apple-system,BlinkMacSystemFont,'Segoe UI','Noto Sans KR','Apple SD Gothic Neo',Arial,sans-serif;
  --mono:ui-monospace,'SF Mono','Cascadia Code','Roboto Mono',Menlo,Consolas,sans-serif;
}
*{box-sizing:border-box}
html{background:var(--black)}
body.pains-theme.home-page{margin:0;overflow-x:hidden;background:var(--black);color:var(--paper);font-family:var(--sans);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
body.pains-theme.home-page main{display:block;width:100%;overflow:hidden}
body.pains-theme.home-page img{display:block;max-width:100%}
body.pains-theme.home-page a:focus-visible{outline:2px solid var(--paper);outline-offset:4px}
.manifesto,.module,.community,.schedule{scroll-margin-top:70px}
.mono{font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase}
.home-eyebrow{margin:0;font-family:var(--mono);font-weight:600;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:inherit}

/* --- Home-only header: dark, glassy, blends with the hero --- */
body.pains-theme.home-page header.pains-header{background:rgba(10,10,10,.82)!important;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid rgba(242,241,236,.14)!important;box-shadow:none!important}
body.pains-theme.home-page .pains-header h1 a{color:#fff!important;letter-spacing:.02em}
body.pains-theme.home-page .hamburger-btn{background:rgba(242,241,236,.06)!important;border-color:rgba(242,241,236,.26)!important;box-shadow:none!important}
body.pains-theme.home-page .hamburger-btn span{background:#fff!important}

/* ===== Hero: stadium photo + wordmark (kept) ===== */
.home-hero{position:relative;width:100%;min-height:100svh;overflow:hidden;background:#050505}
.home-hero__media{position:absolute;inset:0}
.home-hero__media:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.85) 0%,rgba(0,0,0,.12) 60%),linear-gradient(90deg,rgba(0,0,0,.28),transparent 62%)}
.home-hero__media img{width:100%;height:100%;object-fit:cover;filter:saturate(.62) contrast(1.07)}
.home-hero__content{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:flex-end;width:var(--page);min-height:100svh;margin:0 auto;padding:120px 0 40px}
.hero-brand{display:grid;grid-template-columns:repeat(5,1fr);align-items:end;width:100%;margin:0;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.6)}
.hero-brand span{color:#fff;font:800 clamp(68px,12vw,188px)/.76 'Helvetica Neue',Arial,'Pretendard',sans-serif;letter-spacing:-.08em}
.hero-brand span:not(:first-child){text-align:center}.hero-brand span:last-child{text-align:right}
.hero-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;padding-top:16px;color:rgba(255,255,255,.72);font-family:var(--mono);font-weight:500;font-size:10px;letter-spacing:.16em}
.hero-meta span:nth-child(2){text-align:center}.hero-meta span:last-child{text-align:right}
.home-hero__lead{display:none;margin:18px 0 0;color:rgba(255,255,255,.86);font-size:15px;font-weight:600;letter-spacing:-.02em}
.home-hero__actions{display:none;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}
.home-cta{display:flex;min-height:48px;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.5);color:#fff;text-decoration:none;font-size:14px;font-weight:700}
.home-cta--primary{border-color:var(--paper);background:var(--paper);color:var(--ink)}
.scroll-mark{position:absolute;z-index:2;right:24px;bottom:34px;display:inline-flex;align-items:center;gap:8px;color:rgba(255,255,255,.82);text-decoration:none;font-family:var(--mono);font-size:10px;letter-spacing:.2em}
.scroll-mark span{font-size:15px;animation:nudge 1.8s ease-in-out infinite}
@keyframes nudge{0%,100%{transform:translateY(0)}50%{transform:translateY(4px)}}

/* ===== Shared bits ===== */
.kicker{display:flex;align-items:center;gap:14px;margin:0 0 28px}
.kicker__no{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.12em}
.kicker__line{flex:0 0 44px;height:1px;background:var(--line)}
.kicker__label{font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}

/* Photo frame: contained, monochrome, technical corner ticks */
.frame{position:relative;overflow:hidden;aspect-ratio:4/3;border:1px solid var(--line);background:#161616}
.frame img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.05) brightness(.97);transition:filter .6s ease,transform 1s ease}
.figure:hover .frame img{filter:grayscale(.12) contrast(1.03);transform:scale(1.035)}
.figure--blue .frame{background:#061426}
.figure--blue .frame img{filter:saturate(1.06) contrast(1.04) brightness(.94)}
.figure--blue:hover .frame img{filter:saturate(1.12) contrast(1.04) brightness(.98);transform:scale(1.025)}
.frame::before,.frame::after{content:"";position:absolute;width:13px;height:13px;z-index:2;opacity:.85;pointer-events:none}
.frame::before{top:9px;left:9px;border-top:1px solid var(--paper);border-left:1px solid var(--paper)}
.frame::after{bottom:9px;right:9px;border-bottom:1px solid var(--paper);border-right:1px solid var(--paper)}
.figure{margin:0}
.figure figcaption{display:flex;justify-content:space-between;gap:12px;margin-top:12px;color:var(--muted);font-family:var(--mono);font-size:10px;letter-spacing:.16em}

/* ===== 01 — Identity / manifesto (light spec band) ===== */
.manifesto{width:100%;padding:clamp(96px,11vw,168px) max(40px,calc((100vw - 1240px)/2));background:var(--paper);color:var(--ink)}
.section-index{padding-bottom:20px;border-bottom:1px solid var(--line-ink);font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.2em;color:#7a766c}
.manifesto__copy{display:grid;grid-template-columns:minmax(200px,.7fr) minmax(0,1.7fr);gap:48px;padding-top:clamp(60px,8vw,108px)}
.manifesto__copy .home-eyebrow{color:#4a463d}
.manifesto__copy h2{grid-column:2;margin:0!important;color:var(--ink)!important;font:800 clamp(52px,7.4vw,112px)/.9 'Helvetica Neue',Arial,'Pretendard',sans-serif!important;letter-spacing:-.06em!important;overflow-wrap:normal;word-break:keep-all}
.manifesto__copy h2 span{display:block;color:inherit!important}
.manifesto__copy>p:last-child{grid-column:2;width:min(600px,100%);margin:30px 0 0!important;color:#403c34!important;font-size:clamp(16px,1.2vw,19px)!important;line-height:1.78!important;word-break:keep-all}
.home-data-strip{display:grid;grid-template-columns:repeat(3,1fr);margin-top:clamp(66px,9vw,124px);border-block:1px solid var(--line-ink)}
.home-data-strip>div{min-width:0;padding:28px 20px 24px 0;border-right:1px solid var(--line-ink)}
.home-data-strip>div+div{padding-left:22px}.home-data-strip>div:last-child{border-right:0}
.home-data-strip strong,.home-data-strip span{display:block}
.home-data-strip strong{font:800 clamp(44px,5.4vw,80px)/1 'Helvetica Neue',Arial,'Pretendard',sans-serif;letter-spacing:-.05em}
.home-data-strip span{margin-top:10px;font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:.16em;color:#726e64}

/* ===== 02 / 03 — Story modules (dark, contained photo) ===== */
.module{background:var(--black);color:var(--paper)}
.module+.module{border-top:1px solid var(--line)}
.module__inner{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,5.5vw,92px);align-items:center;width:var(--page);margin:0 auto;padding:clamp(84px,11vw,150px) 0}
.module--reverse .figure{order:-1}
.module__text h2{margin:0!important;color:var(--paper)!important;font:750 clamp(34px,4.3vw,62px)/1.08 var(--sans)!important;letter-spacing:-.045em!important;word-break:keep-all}
.module__text>p:not(.home-eyebrow){max-width:44ch;margin:24px 0 0!important;color:var(--muted)!important;font-size:clamp(15px,1.15vw,18px)!important;line-height:1.78!important;word-break:keep-all;white-space:pre-line}
.module .figure .frame{aspect-ratio:5/4}
.text-link{display:inline-flex;align-items:center;gap:16px;margin-top:34px;padding-bottom:8px;border-bottom:1px solid var(--paper);color:var(--paper);text-decoration:none;font-size:13px;font-weight:700;letter-spacing:.02em}
.text-link span{font-size:14px;transition:transform .3s ease}
.text-link:hover span{transform:translate(3px,-3px)}

/* Project visual variants: project artwork, seminar photo, and column artwork. */
.project-visual{min-width:0}
.module .figure.project-visual.is-column{align-self:start}
.module .figure.project-visual.is-column .frame{aspect-ratio:auto}
.project-visual.is-column .frame img{height:auto;object-fit:contain}
.project-visual .project-variants{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:18px;padding:1px;background:var(--line)}
.project-variants button{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:10px;min-width:0;padding:12px 13px;border:0;background:#0b1019;color:var(--muted);font-family:var(--mono);text-align:left;cursor:pointer;transition:background-color .25s ease,color .25s ease}
.project-variants button span{font-size:9px;letter-spacing:.12em;opacity:.7}
.project-variants button strong{min-width:0;overflow:hidden;font-size:9px;font-weight:600;letter-spacing:.09em;text-overflow:ellipsis;white-space:nowrap}
.project-variants button:hover,.project-variants button.is-active{background:#13243a;color:#eaf4ff}
.project-variants button.is-active{box-shadow:inset 0 -2px #4ca4ff}
.project-variants button:focus-visible{position:relative;z-index:1;outline:2px solid #74b9ff;outline-offset:2px}

/* ===== 04 — Community (light, two contained photos) ===== */
.community{width:100%;padding:clamp(96px,11vw,160px) max(40px,calc((100vw - 1240px)/2));background:var(--paper);color:var(--ink)}
.community .section-index{margin-bottom:clamp(46px,6vw,78px)}
.community__head{display:grid;grid-template-columns:minmax(200px,.7fr) minmax(0,1.7fr);gap:48px;align-items:start}
.community__head .kicker{grid-column:1}
.community__head h2{grid-column:2;margin:0!important;color:var(--ink)!important;font:750 clamp(38px,4.6vw,70px)/1.08 var(--sans)!important;letter-spacing:-.05em!important;word-break:keep-all;white-space:pre-line}
.community__head>p:last-child{grid-column:2;max-width:600px;margin:26px 0 0!important;color:#403c34!important;font-size:clamp(15px,1.15vw,18px)!important;line-height:1.78!important;word-break:keep-all}
.community__head .kicker__label{color:var(--muted-ink)}
.community__gallery{display:grid;grid-template-columns:1.28fr .72fr;gap:24px;align-items:start;margin-top:clamp(52px,7vw,96px)}
.community .frame{border-color:var(--line-ink);background:#e4e2da}
.community .frame::before,.community .frame::after{border-color:rgba(20,20,15,.7)}
.community .frame img{object-fit:contain;filter:none}
.community .figure:hover .frame img{filter:none}
.community__gallery .figure:first-child .frame{aspect-ratio:761/517}
.community__gallery .figure:last-child .frame{aspect-ratio:1079/889}
.community .figure figcaption{color:var(--muted-ink)}

/* ===== 05 — Archive index (dark link list) ===== */
.archive-cta{width:100%;padding:clamp(88px,10vw,140px) max(40px,calc((100vw - 1240px)/2));background:var(--black);color:var(--paper);counter-reset:arch}
.archive-cta>.home-eyebrow{margin-bottom:40px;color:var(--muted)}
.archive-cta>a{display:grid;grid-template-columns:auto 1fr auto;align-items:baseline;gap:clamp(18px,3vw,40px);padding:28px 0;border-top:1px solid var(--line);color:var(--paper);text-decoration:none}
.archive-cta>a:last-child{border-bottom:1px solid var(--line)}
.archive-cta>a::before{counter-increment:arch;content:"0" counter(arch);font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.1em;color:var(--muted);transition:color .3s ease}
.archive-cta>a>span:first-child{font:800 clamp(30px,4vw,62px)/1 'Helvetica Neue',Arial,'Pretendard',sans-serif;letter-spacing:-.04em;transition:transform .35s ease}
.archive-cta>a>span:last-child{font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:.16em;color:var(--muted);transition:color .3s ease}
.archive-cta>a:hover>span:first-child{transform:translateX(12px)}
.archive-cta>a:hover>span:last-child,.archive-cta>a:hover::before{color:var(--paper)}

/* ===== 05 — Schedule (dark, upcoming list) ===== */
.schedule{width:100%;padding:clamp(88px,10vw,150px) max(40px,calc((100vw - 1240px)/2));background:var(--black);color:var(--paper)}
.schedule .section-index{margin-bottom:clamp(46px,6vw,78px);border-bottom-color:var(--line);color:var(--muted)}
.schedule__head{display:grid;grid-template-columns:minmax(200px,.7fr) minmax(0,1.7fr);gap:48px;align-items:end}
.schedule__head .kicker{grid-column:1;margin-bottom:0}
.schedule__head h2{grid-column:2;margin:0!important;color:var(--paper)!important;font:750 clamp(34px,4.3vw,60px)/1.05 var(--sans)!important;letter-spacing:-.045em!important;word-break:keep-all}
.schedule__head>p:last-child{grid-column:2;max-width:560px;margin:20px 0 0!important;color:var(--muted)!important;font-size:clamp(15px,1.1vw,17px)!important;line-height:1.7!important;word-break:keep-all}
.schedule__list{list-style:none;margin:clamp(46px,6vw,80px) 0 0;padding:0}
.schedule__item{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:clamp(18px,4vw,56px);padding:25px 4px;border-top:1px solid var(--line);transition:background-color .3s ease,padding-left .3s ease}
.schedule__item:last-child{border-bottom:1px solid var(--line)}
.schedule__item:hover{background:rgba(242,241,236,.03);padding-left:14px}
.schedule__date{display:flex;align-items:baseline;gap:10px;min-width:116px}
.schedule__date b{font:800 clamp(22px,2.4vw,32px)/1 'Helvetica Neue',Arial,'Pretendard',sans-serif;letter-spacing:-.03em}
.schedule__date i{font-family:var(--mono);font-style:normal;font-size:11px;letter-spacing:.14em;color:var(--muted)}
.schedule__title{font-size:clamp(16px,1.5vw,21px);font-weight:600;letter-spacing:-.01em;word-break:keep-all}
.schedule__tag{justify-self:end;padding:6px 13px;border:1px solid var(--line);border-radius:999px;font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--muted);white-space:nowrap}
.schedule__item--placeholder{color:rgba(242,241,236,.48)}
.schedule__item--placeholder .schedule__date b{font-family:var(--mono);font-size:18px;font-weight:500}

.reveal{opacity:1!important;transform:none!important}

/* ===== Responsive ===== */
@media(max-width:820px){
  .module__inner{grid-template-columns:1fr;gap:34px;padding:clamp(70px,14vw,110px) 0}
  .module--reverse .figure{order:0}
  .module .figure .frame{aspect-ratio:4/3}
  .project-visual .project-variants{margin-top:14px}
  .community__gallery{grid-template-columns:1fr;gap:18px}
  .community__gallery .figure:first-child .frame{aspect-ratio:761/517}
  .community__gallery .figure:last-child .frame{aspect-ratio:1079/889}
}
@media(max-width:760px){
  html{scroll-behavior:auto;overscroll-behavior-y:none}
  :root{--page:calc(100% - 36px)}
  body.pains-theme.home-page{overscroll-behavior-y:none}
  body.pains-theme.home-page main{display:flex;flex-direction:column}
  .home-hero{order:1;min-height:72svh}
  #home-schedule{order:2}
  #manifesto{order:3}
  #home-about{order:4}
  #home-projects{order:5}
  #home-community{order:6}
  .archive-cta{order:7}
  body.pains-theme.home-page header.pains-header{background:rgba(7,11,18,.97)!important;-webkit-backdrop-filter:none;backdrop-filter:none}
  .home-hero__media img{filter:none}
  .home-hero__content{min-height:72svh;padding:92px 0 28px}
  .hero-brand{padding-bottom:12px}.hero-brand span{font-size:16vw;letter-spacing:-.1em}
  .hero-meta{grid-template-columns:1fr 1fr;gap:8px;font-size:8px}.hero-meta span:nth-child(2){text-align:right}.hero-meta span:last-child{display:none}
  .home-hero__lead{display:block}
  .home-hero__actions{display:grid}
  .manifesto,.community,.archive-cta{padding:64px 20px}
  .module__inner{gap:28px;padding:60px 0}
  .manifesto__copy,.community__head{display:block}
  .manifesto__copy h2{margin-top:24px!important;font-size:clamp(42px,12vw,58px)!important}
  .manifesto__copy>p:last-child{margin-top:24px!important}
  .community__head .kicker{margin-bottom:22px}
  .community__head h2{margin-top:0!important;font-size:clamp(34px,10vw,50px)!important}
  .community__head>p:last-child{margin-top:22px!important}
  .home-data-strip{grid-template-columns:1fr;margin-top:52px}
  .home-data-strip>div,.home-data-strip>div+div{padding:22px 0;border-right:0;border-bottom:1px solid var(--line-ink)}
  .home-data-strip>div:last-child{border-bottom:0}
  .archive-cta>a{grid-template-columns:auto 1fr auto;gap:16px;padding:22px 0}
  .archive-cta>a>span:first-child{font-size:clamp(24px,7.5vw,38px)}
  .schedule{padding:64px 20px}
  .schedule .section-index{font-size:0}
  .schedule .section-index::after{content:"UPCOMING SCHEDULE";font-size:10px}
  .schedule__head{display:block}
  .schedule__head .kicker{margin-bottom:20px}
  .schedule__head h2{margin-top:0!important;font-size:clamp(32px,9vw,46px)!important}
  .schedule__head>p:last-child{margin-top:18px!important}
  .schedule__list{overflow-anchor:none}
  .schedule__item{grid-template-columns:66px 1fr;gap:12px;min-height:96px;padding:18px 2px}
  .schedule__date{min-width:66px;flex-direction:column;align-items:flex-start;gap:2px}
  .schedule__date b{font-size:21px}
  .schedule__title{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}
  .schedule__tag{grid-column:2;justify-self:start;padding:5px 10px}
  .project-variants button{display:flex;min-height:46px;justify-content:center;gap:6px;padding:11px 8px}
  .project-variants button span{font-size:8px}
  .project-variants button strong{display:block;font-size:9px}
}
@media(hover:none){.frame img,.text-link span,.archive-cta>a>span:first-child{transition:none}.figure:hover .frame img,.figure--blue:hover .frame img{filter:none;transform:none}.schedule__item:hover{padding-left:4px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.scroll-mark span{animation:none}.frame img,.text-link span,.archive-cta>a>span:first-child{transition:none}}
