/* Studio M-04 — cool monochrome + DungGeunMo pixel display, echoing the logo mark */
@font-face{
  font-family:'DungGeunMo';
  src:url('/assets/fonts/dunggeunmo-kr.woff2') format('woff2');
  font-weight:400;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'PressStart';
  src:url('/assets/PressStart2P-Regular.ttf') format('truetype');
  font-weight:400;font-style:normal;font-display:swap;
}
:root{
  --paper:#edeff3;      /* cool off-white */
  --paper-2:#e3e7ec;    /* faint panel */
  --ink:#0f1319;        /* blue-black */
  --muted:#59626e;      /* cool grey */
  --line:#c2c8d2;       /* cool hairline */
  --accent:#2f6bed;     /* cold electric blue — per-project tint overrides this */
  --focus:#2f6bed;      /* fixed focus colour, never tinted */
  --sans:Arial,'Apple SD Gothic Neo','Malgun Gothic',sans-serif;
  --pixel:'PressStart','DungGeunMo',var(--sans);
  font-family:var(--sans);
  color:var(--ink);background:var(--paper);
  font-synthesis:none;
  -webkit-font-smoothing:antialiased;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:24px}
body{margin:0}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;cursor:pointer}
a,button{-webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible{outline:3px solid var(--focus);outline-offset:5px}
button,a{touch-action:manipulation}
p{line-height:1.75;word-break:keep-all}
h1,h2,h3{word-break:keep-all;font-family:var(--pixel);font-weight:400;letter-spacing:0}
header,main,footer{max-width:1600px;margin:auto}

/* ---- header ---- */
header{height:104px;display:flex;align-items:center;justify-content:space-between;padding:0 4%}
.brand{display:inline-flex;align-items:center;gap:12px;font-family:var(--pixel);font-size:20px;letter-spacing:1px;text-transform:uppercase}
.brand .mark{flex:none;display:block}
.brand span{font-family:var(--sans);font-size:12px;letter-spacing:0;text-transform:none;color:var(--muted);margin-left:6px}
nav{display:flex;gap:30px;font-family:var(--pixel);font-size:15px}
nav a:hover,.text-link:hover{text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:2px;text-decoration-color:var(--accent)}

/* ---- shared pixel-fragment mark (echoes the logo's scattered pixels) ---- */
.studio-line::before,.section-heading h2::before,.studio h2::before,.detail-heading h1::before{
  content:"";display:block;width:5px;height:5px;background:var(--ink);margin-bottom:20px;
  box-shadow:9px -9px var(--ink),18px -9px var(--ink),9px 0 var(--accent),
             18px 9px var(--ink),27px 9px var(--ink),0 9px var(--ink);
}

/* ---- hero ---- */
main{padding:0 4%}
.hero{display:grid;grid-template-columns:38% 62%;min-height:560px}
.hero-copy{padding:24px 34px 20px 0;display:flex;flex-direction:column}
.studio-line{font-family:var(--pixel);font-size:13px;margin:0 0 34px;color:var(--muted)}
h1{font-size:clamp(38px,4.4vw,62px);line-height:1.28;margin:0 0 42px}
.hero-description h2{font-size:22px;margin:0 0 12px}
.hero-description>p{font-family:var(--sans);margin:0 0 24px;font-size:17px}
.hero-description .sample{font-size:12px;margin-top:22px}
.sample{font-family:var(--sans);font-size:12px;color:var(--muted)}
.button{display:inline-flex;align-items:center;gap:26px;background:var(--ink);color:var(--paper);
  font-family:var(--pixel);padding:16px 22px;font-size:15px;min-height:48px;transition:background .15s}
.button:hover{background:#242c39}
.scene-counter{display:flex;align-items:center;gap:12px;margin-top:auto;padding-top:26px;
  font-family:var(--pixel);font-size:12px;letter-spacing:2px;color:var(--muted)}
.scene-counter i{height:2px;width:44px;background:var(--muted)}
figure{margin:0}
.hero-art{position:relative;background:#20262f;overflow:hidden;min-height:560px}
.hero-art img{display:block;width:100%;height:100%;position:absolute;object-fit:cover;transition:opacity .25s}
.hero-art figcaption{position:absolute;bottom:0;left:0;background:#0f1319e0;color:#eef1f5;
  font-family:var(--pixel);padding:9px 13px;font-size:12px;letter-spacing:.5px}
.hero-art[data-scene=echo] img,.hero-art[data-scene=experiment] img{object-fit:contain}
.hero-art[data-scene=garden]{background:#dbe2ea}
.hero-art[data-scene=echo]{background:#1f2b38}
.hero-art[data-scene=experiment]{background:#33404f}
.hero-art[data-scene=experiment] img{transform:scale(.9)}
.hero-art[data-scene=suspect]{background:#07181b}
.hero-art[data-scene=suspect] > img:first-child{filter:brightness(.55) saturate(.8)}
.hero-art .hero-3d{width:100%;height:100%;left:0;top:0;transform:none;object-fit:contain;image-rendering:pixelated;filter:none;z-index:2}

/* ---- scene selector (signature interaction) ---- */
.selectors{display:grid;grid-template-columns:repeat(3,1fr);margin:28px 0 0;
  border-top:2px solid var(--ink);border-bottom:2px solid var(--ink)}
.selectors button{border:0;border-right:1px solid var(--line);background:transparent;padding:22px 24px;
  text-align:left;display:flex;justify-content:space-between;align-items:center;
  font-family:var(--pixel);font-size:22px;transition:background .15s,color .15s}
.selectors button:last-child{border-right:0}
.selectors button[aria-pressed=true]{background:var(--ink);color:var(--paper);box-shadow:inset 0 5px var(--accent)}
.selectors button:not([aria-pressed=true]):hover{box-shadow:inset 0 -5px var(--accent)}
.selectors small{font-family:var(--pixel);font-size:13px;letter-spacing:1px;color:var(--muted)}
.selectors button[aria-pressed=true] small{color:#aab6c6}

/* ---- works / archive ---- */
.works{padding:86px 0 78px}
.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:26px}
.section-heading h2,.studio h2{font-size:34px;line-height:1.32;margin:0}
.section-heading p{font-family:var(--sans);font-size:14px;color:var(--muted);margin:0 8% 4px 30px;line-height:1.7}
.archive{display:grid;grid-template-columns:1.35fr 1fr;gap:32px;margin-top:30px}
.archive-item:first-child{grid-row:span 2}
.archive-item img{width:100%;height:auto;aspect-ratio:1.65;object-fit:cover;display:block;background:#20262f}
.archive-item:first-child img{aspect-ratio:1.2}
.archive-item:not(:first-child){display:grid;grid-template-columns:42% 1fr;gap:24px;
  border-top:1px solid var(--line);padding-top:20px;align-content:start}
.archive-item h3{font-size:22px;margin:12px 0 8px;display:flex;justify-content:space-between;gap:14px}
.archive-item:first-child>div{padding-top:16px}
.archive-item p{font-family:var(--sans);font-size:13px;color:var(--muted);margin:0;line-height:1.7}
.archive-meta{font-family:var(--pixel);font-size:12px;letter-spacing:.5px;color:var(--muted)}
.archive-item:hover h3{text-decoration:underline;text-underline-offset:6px;text-decoration-color:var(--accent)}

/* ---- THESUSPECT visual keys ---- */
.visual-keys{border-top:2px solid var(--ink);padding:76px 0 88px}
.visual-key-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:22px;margin-top:32px}
.visual-key-grid figure{background:#12161c;overflow:hidden}
.visual-key-grid figure:first-child{grid-row:span 2}
.visual-key-grid img{display:block;width:100%;height:100%;aspect-ratio:1.78;object-fit:cover;filter:grayscale(1);transition:filter .25s,transform .25s}
.visual-key-grid figure:first-child img{aspect-ratio:1.78}
.visual-key-grid figure:hover img{filter:grayscale(.45);transform:scale(1.02)}
.visual-key-grid figcaption{font-family:var(--sans);font-size:12px;line-height:1.5;color:#c6ccd5;padding:12px 14px 15px}
.visual-keys>.text-link{margin-top:26px}

/* ---- press kit sections ---- */
.case-intro,.media-press{border-top:2px solid var(--ink);padding:76px 0 88px}
.lead-copy{font-family:var(--sans);font-size:18px;line-height:1.85;max-width:820px;margin:34px 0 0;color:var(--ink)}
.case-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line);margin-top:32px}
.case-grid article{padding:22px 22px 20px 0;border-right:1px solid var(--line);margin-right:22px}
.case-grid article:last-child{border-right:0;margin-right:0}
.case-grid strong{font-family:var(--pixel);font-size:12px;color:var(--accent)}
.case-grid h3{font-size:19px;margin:18px 0 10px}.case-grid p{font-family:var(--sans);font-size:13px;color:var(--muted);margin:0;line-height:1.7}
.release{background:#10151d;color:var(--paper);margin:0 -4.35%;padding:70px 4%;display:grid;grid-template-columns:48% 52%;gap:5%;align-items:end}
.release .section-kicker{font-family:var(--pixel);font-size:11px;letter-spacing:1px;color:#aab2c0;margin:0 0 22px}.release h2{font-size:clamp(38px,5vw,64px);line-height:1.18;margin:0 0 20px}.release p{font-family:var(--sans);color:#aab2c0;font-size:14px;max-width:420px}.release-list{display:grid;grid-template-columns:1fr 1fr;gap:18px}.release-list>div:not(.release-links){border-top:1px solid #3a4554;padding-top:15px}.release-list span{display:block;font-family:var(--pixel);font-size:11px;color:#aab2c0}.release-list strong{display:block;font-family:var(--pixel);font-size:25px;margin:12px 0 7px;color:var(--paper)}.release-list small{font-family:var(--sans);color:#aab2c0;font-size:12px}.release-links{grid-column:1/-1;display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}.release .button{font-size:12px;padding:13px 15px}.release .button small{font-size:9px;color:#778394}.button-light{background:transparent!important;color:var(--paper)!important;border:1px solid #586474}.button-light:hover{background:#242c39!important}
.media-press-grid{display:grid;grid-template-columns:1fr 1.5fr 1fr;gap:22px;margin-top:32px;align-items:start}.media-press-grid figure{background:#12161c}.media-press-grid img{display:block;width:100%;height:220px;object-fit:cover}.media-press-grid figure:first-child img{object-fit:contain;background:#0c1116}.media-press-grid figcaption{font-family:var(--sans);font-size:11px;color:#c6ccd5;padding:11px 13px}.media-note{border-top:1px solid var(--line);padding-top:16px}.media-note h3{font-size:19px;margin:0 0 12px}.media-note p{font-family:var(--sans);font-size:13px;color:var(--muted);line-height:1.7;margin:0}
.making,.devlog{border-top:2px solid var(--ink);padding:76px 0 88px}.making-grid{display:grid;grid-template-columns:1fr 1fr;gap:12%;margin-top:32px}.making-grid h3{font-size:18px;margin:0 0 13px}.making-grid h3:not(:first-child){margin-top:28px}.making-grid p{font-family:var(--sans);font-size:14px;color:var(--muted);line-height:1.85;margin:0}.devlog ul{list-style:none;padding:0;margin:32px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:0 10%;border-top:1px solid var(--line)}.devlog li{font-family:var(--sans);font-size:14px;color:var(--muted);padding:16px 0;border-bottom:1px solid var(--line)}.devlog li::before{content:'↳';font-family:var(--pixel);color:var(--accent);margin-right:12px}

/* ---- studio ---- */
.studio{border-top:2px solid var(--ink);padding:70px 0 88px;display:grid;grid-template-columns:38% 62%}
.studio>p{font-family:var(--pixel);font-size:13px;letter-spacing:1px;text-transform:uppercase;margin:4px 0;color:var(--muted)}
.studio>div>p{font-family:var(--sans);max-width:560px;font-size:16px;margin:28px 0 16px}
.studio small{font-family:var(--sans);font-size:11px;color:var(--muted);line-height:1.7}

/* ---- contact ---- */
.contact{background:var(--ink);color:var(--paper);margin:0 -4.35%;padding:62px 4%;
  display:grid;grid-template-columns:60% 40%;align-items:end}
.contact p{font-family:var(--sans);font-size:13px;color:#aab2c0;line-height:1.7}
.contact h2{font-size:clamp(56px,7.5vw,104px);line-height:1.08;margin:26px 0 0}
.contact h2::before{content:"";display:block;width:6px;height:6px;background:var(--paper);margin-bottom:24px;
  box-shadow:10px -10px var(--paper),20px -10px var(--paper),10px 0 var(--accent),
             20px 10px var(--paper),30px 10px var(--paper),0 10px var(--paper)}
.contact-info{padding:0 0 10px 25px}
.contact h3{font-size:19px}
.text-link{display:inline-block;font-family:var(--pixel);font-size:14px;border-bottom:2px solid var(--accent);padding:9px 0;margin-top:22px}
.contact-email{font-family:var(--pixel);font-size:20px;display:block;overflow-wrap:anywhere;letter-spacing:.5px}
.contact button{margin-top:20px;padding:12px 16px;background:var(--paper);color:var(--ink);border:0;font-family:var(--pixel);font-size:13px}
#copy-status{min-height:1.2em}

/* ---- footer ---- */
footer{padding:28px 4%;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:12px}
footer .brand{font-size:15px}
footer .tagline{font-family:var(--pixel);font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--muted)}
footer span{font-family:var(--sans);font-size:11px;color:var(--muted)}
footer>a:last-child{font-family:var(--pixel);font-size:12px}

.skip{position:fixed;left:20px;top:-100px;padding:15px 18px;background:var(--accent);color:#fff;font-family:var(--pixel);z-index:20}
.skip:focus{top:10px}

/* ---- project detail ---- */
.detail{padding-top:24px}
.detail>a.text-link{border-bottom:0}
.detail-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-top:46px}
.detail-heading h1{margin:0;font-size:clamp(34px,4vw,54px);line-height:1.25}
.detail-heading p{font-family:var(--sans);margin:0 0 6px;color:var(--muted)}
.detail-media{margin-top:28px}
.detail-media img,.detail-media video{display:block;width:100%;height:auto;max-height:760px;object-fit:cover;aspect-ratio:1.8;background:#20262f}
.detail-media figcaption{font-family:var(--sans);font-size:12px;color:var(--muted);padding-top:12px}
.detail-body{display:grid;grid-template-columns:2fr 1fr;gap:12%;padding:58px 0}
.detail-body p{font-family:var(--sans);max-width:640px;color:var(--muted)}
.detail-body h2{font-size:24px;margin:0 0 18px}
.detail-body h2:not(:first-child){margin-top:52px}
.detail-body h3{font-size:16px;margin:0 0 8px}
.detail-body dl{margin:0}
.detail-body dt{font-family:var(--pixel);font-size:12px;letter-spacing:.5px;color:var(--muted);border-top:1px solid var(--line);padding-top:14px}
.detail-body dd{font-family:var(--sans);margin:9px 0 22px;font-size:15px}
.next-project{border-top:1px solid var(--line);padding:34px 0 68px;display:flex;gap:28px;flex-wrap:wrap;font-family:var(--pixel)}
.detail>h1{margin-top:78px}
video{width:100%;height:100%;object-fit:cover}

/* ---- breakpoints ---- */
@media(min-width:1500px){.hero{min-height:660px}.hero-art{min-height:640px}}
@media(max-width:850px){
  header{height:84px}
  .brand{font-size:16px}
  .brand span{display:none}
  nav{gap:18px;font-size:13px}
  .hero{grid-template-columns:44% 56%;min-height:480px}
  .hero-art{min-height:480px}
  h1{font-size:34px}
  .hero-copy{padding-right:18px}
  .section-heading h2,.studio h2{font-size:27px}
  .archive{gap:20px}
  .archive-item:not(:first-child){display:block}
  .archive-item:not(:first-child) img{aspect-ratio:2.3;margin-bottom:14px}
  .contact{grid-template-columns:55% 45%}
}
@media(max-width:600px){
  header{padding:0 6%;height:76px}
  .brand{font-size:15px;gap:9px}
  nav{gap:14px;font-size:12px}
  main{padding:0 6%}
  .hero{display:flex;flex-direction:column}
  .hero-copy{padding:6px 0 24px}
  .studio-line{font-size:12px;margin-bottom:20px}
  .studio-line::before,.section-heading h2::before,.studio h2::before,.detail-heading h1::before{margin-bottom:16px}
  h1{font-size:34px;line-height:1.3;margin-bottom:22px}
  .hero-description h2{font-size:20px}
  .hero-description>p{font-size:15px;margin-bottom:12px}
  .hero-description .sample{font-size:11px;margin:14px 0}
  .button{padding:15px 18px;font-size:14px}
  .scene-counter{display:none}
  .hero-art{min-height:0;aspect-ratio:1.25;order:2}
  .hero-art figcaption{font-size:10px;padding:8px 10px}
  .selectors{margin-top:16px}
  .selectors button{font-size:15px;padding:16px 12px}
  .selectors small{display:none}
  .works{padding:56px 0 48px}
  .section-heading{display:block}
  .section-heading h2,.studio h2{font-size:26px}
  .section-heading p{margin:18px 0 0;font-size:13px}
  .archive{display:block;margin-top:22px}
  .archive-item{display:block;margin-bottom:26px}
  .archive-item:first-child img{aspect-ratio:1.4}
  .archive-item:not(:first-child){display:grid;grid-template-columns:40% 1fr;gap:16px;padding-top:22px}
  .archive-item:not(:first-child) img{aspect-ratio:1.1;margin:0}
  .archive-item h3{font-size:19px;margin-top:8px}
  .archive-item p{font-size:12px}
  .archive-meta{font-size:11px}
  .visual-keys{padding:52px 0 58px}
  .visual-key-grid{display:block;margin-top:22px}
  .visual-key-grid figure{margin-bottom:18px}
  .visual-key-grid img,.visual-key-grid figure:first-child img{aspect-ratio:1.5}
  .visual-key-grid figcaption{font-size:11px;padding:10px 12px 12px}
  .case-intro,.media-press{padding:52px 0 58px}
  .lead-copy{font-size:15px;line-height:1.8;margin-top:24px}.making,.devlog{padding:52px 0 58px}.making-grid{display:block;margin-top:22px}.making-grid>div+div{margin-top:30px}.devlog ul{display:block;margin-top:22px}.devlog li{font-size:13px;padding:13px 0}
  .case-grid{display:block;margin-top:22px}
  .case-grid article{border-right:0;border-bottom:1px solid var(--line);margin:0;padding:18px 0}
  .case-grid article:last-child{border-bottom:0}
  .release{display:block;margin:0 -6.82%;padding:48px 6% 54px}
  .release-list{margin-top:30px}.release-list strong{font-size:20px}.release-links{gap:8px}.release .button{padding:12px 11px;font-size:10px}
  .media-press-grid{display:block;margin-top:22px}.media-press-grid figure{margin-bottom:18px}.media-press-grid img{height:auto;aspect-ratio:1.6}.media-press-grid figure:first-child img{aspect-ratio:1}
  .studio{display:block;padding:38px 0 52px}
  .studio>p{margin-bottom:24px}
  .studio>div>p{font-size:14px}
  .studio small{display:block}
  .contact{display:block;margin:0 -6.82%;padding:40px 6%}
  .contact h2{font-size:52px;margin-top:22px}
  .contact-info{padding:32px 0 0}
  .contact h3{font-size:16px}
  footer{padding:24px 6%;gap:16px}
  footer .brand{width:100%}
  .detail-heading{display:block;margin-top:28px}
  .detail-heading p{margin-top:18px}
  .detail-body{display:flex;flex-direction:column;gap:34px;padding-top:34px}
  .detail-media img,.detail-media video{aspect-ratio:1.3}
  .next-project{gap:18px;font-size:14px}
  .detail>h1{font-size:32px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition:none!important;animation:none!important}
}
.contact-links{display:flex;flex-direction:column;gap:12px;margin-top:22px}.contact-links a{font-family:var(--pixel);font-size:13px;color:var(--paper);border-bottom:1px solid #596575;padding-bottom:8px}.contact-links a:hover{color:#d7bd70}
