/* Typography and color: user specification, 1.5.11. Layout remains in the original sheets. */
:root {
  --font-base: "Montserrat", "Pretendard Variable", Pretendard, system-ui, sans-serif;
  --bg: #000000;
  --bg-elevated: #0B0B0B;
  --text-strong: #F4F2EE;
  --text-body: #B9B6B0;
  --text-muted: #7D7A75;
  --line: rgba(255,255,255,0.12);
  --gold: #C8A877;
  --ink: var(--text-strong);
  --muted: var(--text-muted);
  --blue: var(--text-strong);
  --pale: var(--bg-elevated);
  --accent: var(--gold);
}
*, *::before, *::after { font-family: var(--font-base); }
body { background: var(--bg); font-size:16px; font-weight:400; line-height:1.7; color:var(--text-body); word-break:keep-all; -webkit-font-smoothing:antialiased; }
button, input, select, textarea { font-size:inherit; font-weight:400; line-height:inherit; }
strong, b { font-weight:600; }
:is(h1,:where(.visual-h1)) { font-size:clamp(40px,4.6vw,66px); font-weight:400; letter-spacing:-.03em; line-height:1.2; color:var(--text-strong); }
:is(h2,:where(.visual-h2)) { font-weight:400; font-size:clamp(28px,3.6vw,48px); letter-spacing:-.03em; line-height:1.3; color:var(--text-strong); }
:is(h3,:where(.visual-h3)) { font-weight:500; font-size:clamp(18px,1.6vw,22px); letter-spacing:-.02em; line-height:1.4; color:var(--text-strong); }
.title-en { font-weight:300; font-size:clamp(32px,4.5vw,60px); letter-spacing:-.03em; line-height:1.1; color:var(--text-strong); }
.hero-title { font-weight:300; font-size:clamp(44px,7vw,96px); letter-spacing:-.03em; line-height:1.05; color:var(--text-strong); }
p, li { color:var(--text-body); font-size:16px; line-height:1.75; }
.hero-sub { font-weight:300; font-size:clamp(18px,2vw,24px); letter-spacing:-.02em; color:var(--text-strong); }
.lead, .prose, address, dd { color:var(--text-body); font-size:16px; line-height:1.75; }
address { font-style:normal; }
.caption, .note, .small, .micro, .development, figcaption, .product-note, .footer-bottom p { color:var(--text-muted); font-size:13px; line-height:1.75; }
.eyebrow { font-weight:500; font-size:13px; letter-spacing:.04em; color:var(--gold); line-height:1.7; }
.eyebrow::before { content:"→ "; }
.text-link, .film-link { font-weight:500; font-size:14px; color:var(--text-strong); border-bottom:1px solid var(--line); transition:color .2s, border-color .2s; }
.text-link:hover, .film-link:hover { color:var(--gold); border-color:var(--gold); }
.button, .btn-outline { font-weight:500; font-size:14px; letter-spacing:.02em; color:var(--text-strong); border:1px solid rgba(255,255,255,.3); background:transparent; }
.button:hover, .btn-outline:hover, .footer-top .button:hover { border-color:var(--gold); color:var(--gold); background:transparent; }
nav a { font-weight:400; font-size:14px; color:var(--text-body); }
nav a[aria-current=page], nav a.active, nav a:hover { color:var(--text-strong); }
.spec-value { font-variant-numeric:tabular-nums; color:var(--text-strong); font-weight:500; }
.accent { color:var(--gold); }
.light-section :is(h2,:where(.visual-h2)) { color:#111; }
.light-section p:not(.eyebrow), .light-section .prose { color:#555; }
.light-section .text-link { color:#111; border-color:rgba(0,0,0,.12); }
.light-section .text-link:hover { color:var(--gold); border-color:var(--gold); }
.footer-title { font-size:34px; font-weight:400; line-height:1.4; letter-spacing:-.03em; color:var(--text-strong); }
.fact-list dt { font-size:15px; font-weight:500; color:var(--text-strong); }
.research-map span { font-size:13px; color:var(--text-muted); }
.empty-number { font-size:116px; font-weight:300; line-height:1; letter-spacing:-.03em; color:var(--text-muted); }
.email { font-size:clamp(25px,2.9vw,42px); line-height:1.35; letter-spacing:-.03em; color:var(--text-strong); }
.phone { font-size:26px; color:var(--text-strong); }
.cinema-bottom { font-size:10px; letter-spacing:.04em; color:var(--text-muted); }
.cinema-bottom a { font-size:12px; color:var(--text-strong); }
.story-copy .story-signature { font-size:17px; color:var(--text-strong); }
.story-signature span { font-size:13px; color:var(--text-muted); }
.story-controls button { background:transparent; border:1px solid rgba(255,255,255,.3); color:var(--text-strong); font-size:12px; font-weight:500; letter-spacing:.02em; }
.story-controls button[aria-pressed=true] { background:transparent; border-color:var(--gold); color:var(--gold); }
.story-controls button:hover { background:transparent; border-color:var(--gold); color:var(--gold); }
.story-controls button:focus-visible { outline:2px solid var(--text-strong); }
.demo-concept-label.eyebrow { margin:0; }
.demo-concept .spec-value, .product-demo-card .spec-value { font-size:clamp(40px,4vw,56px); line-height:1.15; font-weight:500; color:var(--text-strong); letter-spacing:-.03em; }
.demo-concept-status { font-size:12px; line-height:1.5; color:var(--text-strong); }
.demo-concept-detail { font-size:16px; line-height:1.75; }
.demo-concept-core-copy { font-size:16px; font-weight:400; line-height:1.75; color:var(--text-strong); }
.mobile-menu summary { font-size:14px; color:var(--text-strong); }
.skip { color:#111; }
/* Explicit header addition: preserve the original blue logo, add the requested two lines. */
.site-header { padding-inline:32px; border-bottom:1px solid var(--line); background:var(--bg); }
.desktop-nav { gap:28px; }
.desktop-nav a { white-space:nowrap; letter-spacing:.02em; }
.site-header .brand { display:flex; align-items:center; gap:16px; padding-inline:0; width:auto; min-width:0; flex-shrink:1; }
.brand img { width:100px; height:auto; flex-shrink:0; }
.brand-copy { display:flex; flex-direction:column; min-width:0; white-space:nowrap; }
.brand-name { font-size:21px; font-weight:500; line-height:1.35; letter-spacing:-.03em; color:var(--text-strong); }
.brand-subtitle { font-size:11px; font-weight:400; line-height:1.6; color:var(--text-body); }
@media(min-width:1001px) and (max-width:1100px) {
 .desktop-nav { gap:16px; }
 .desktop-nav a { font-size:14px; }
 .brand img { width:80px; }
 .brand-name { font-size:18px; }
 .brand-subtitle { font-size:10px; }
}
@media(max-width:1000px) {
 .desktop-nav { display:none; }
 .mobile-menu { display:block; position:relative; }
 .mobile-menu summary { cursor:pointer; list-style:none; border-radius:30px; background:#222; padding:10px 22px; }
 .mobile-menu summary::-webkit-details-marker { display:none; }
 .mobile-menu nav { position:absolute; right:0; top:56px; width:240px; background:#171717; border:1px solid var(--line); padding:16px; z-index:30; }
 .mobile-menu nav a { display:block; padding:9px 12px; }
}
@media(max-width:768px) {
 .site-header { padding-inline:20px; min-height:78px; }
 :is(h2,:where(.visual-h2)), :is(h2,:where(.visual-h2)).title-en { font-size:28px; }
 .hero-title { font-size:40px; }
 :is(h1,:where(.visual-h1)) { font-size:39px; }
 .hero-sub { font-size:18px; }
 .footer-title { font-size:28px; }
 .empty-number { font-size:86px; }
 .email { font-size:29px; }
 .cinema-bottom { font-size:8px; }
 .cinema-bottom a { font-size:11px; }
 .site-header .brand { gap:10px; padding-inline:0; }
 .brand img { width:60px; }
 .brand-name { font-size:15px; }
 .brand-subtitle { font-size:8.8px; }
}
@media(max-width:360px) {
 .site-header .brand { gap:8px; }
 .brand img { width:44px; }
 .brand-name { font-size:13px; }
 .brand-subtitle { font-size:7.5px; }
}
