/* ========================================================================
   V4 / EDITORIAL PORTFOLIO — homepage only
   Intentionally avoids card grids, gradients, glassmorphism and pill UI.
   ======================================================================== */
.v4-home {
  --v4-paper: #f3f0e8;
  --v4-ink: #11110f;
  --v4-muted: #706d65;
  --v4-line: rgba(17,17,15,.22);
  --v4-accent: #ff4b23;
  --v4-dark: #121210;
  margin: 0;
  background: var(--v4-paper);
  color: var(--v4-ink);
  font-family: Arial, Helvetica, sans-serif;
  overflow-x: clip;
  font-synthesis: none;
}
.v4-home *, .v4-home *::before, .v4-home *::after { box-sizing: border-box; }
.v4-home a { color: inherit; }
.v4-home button, .v4-home input, .v4-home textarea, .v4-home select { font: inherit; }
.v4-shell { width: min(100% - 56px, 1480px); margin-inline: auto; }
.v4-skip { position: fixed; left: 18px; top: 18px; z-index: 9999; transform: translateY(-160%); background: #fff; color: #111; padding: 12px 16px; border: 1px solid #111; }
.v4-skip:focus { transform: none; }
.v4-progress { position: fixed; inset: 0 0 auto 0; height: 3px; z-index: 1000; pointer-events: none; }
.v4-progress i { display:block; width:100%; height:100%; transform:scaleX(0); transform-origin:left center; background:var(--v4-accent); will-change:transform; }

.v4-header { position: sticky; top: 0; z-index: 100; background: color-mix(in srgb, var(--v4-paper) 94%, transparent); backdrop-filter: blur(12px); border-bottom: 1px solid var(--v4-line); }
.v4-header-inner { min-height: 70px; display:grid; grid-template-columns: minmax(180px,1fr) auto minmax(250px,1fr); align-items:center; gap:28px; }
.v4-wordmark { display:flex; align-items:baseline; gap:12px; text-decoration:none; min-width:0; }
.v4-wordmark strong { font-size:12px; line-height:1; letter-spacing:.02em; }
.v4-wordmark span { color:var(--v4-muted); font-size:9px; letter-spacing:.1em; white-space:nowrap; }
.v4-desktop-nav { display:flex; align-items:center; gap:28px; }
.v4-desktop-nav a, .v4-contact-link { position:relative; text-decoration:none; font-size:11px; letter-spacing:.02em; }
.v4-desktop-nav a::after, .v4-contact-link::after, .v4-local-links a::after { content:""; position:absolute; left:0; right:0; bottom:-5px; height:1px; background:currentColor; transform:scaleX(0); transform-origin:right; transition:transform .35s cubic-bezier(.2,.7,.2,1); }
.v4-header-side { display:flex; align-items:center; justify-content:flex-end; gap:20px; min-width:0; }
.v4-location { color:var(--v4-muted); font-size:9px; letter-spacing:.09em; text-transform:uppercase; white-space:nowrap; }
.v4-menu-button { display:none; appearance:none; border:0; background:none; color:inherit; padding:12px 0 12px 14px; min-height:44px; cursor:pointer; font-size:11px; }

.v4-menu { position:fixed; inset:0; z-index:500; background:var(--v4-dark); color:#f6f2e8; padding:24px 28px 30px; display:flex; flex-direction:column; visibility:hidden; opacity:0; pointer-events:none; transition:opacity .28s ease, visibility .28s; }
.v4-menu.is-open { visibility:visible; opacity:1; pointer-events:auto; }
.v4-menu-open { overflow:hidden; }
.v4-menu-top, .v4-menu-foot { display:flex; justify-content:space-between; align-items:center; gap:24px; font-size:10px; letter-spacing:.08em; text-transform:uppercase; }
.v4-menu-top button { color:inherit; background:none; border:0; min-height:44px; cursor:pointer; }
.v4-menu-links { margin:auto 0; border-top:1px solid rgba(255,255,255,.28); }
.v4-menu-links a { min-height:92px; display:flex; align-items:center; justify-content:space-between; gap:20px; border-bottom:1px solid rgba(255,255,255,.28); text-decoration:none; }
.v4-menu-links span { font-size:clamp(36px,9vw,74px); line-height:.9; letter-spacing:-.055em; }
.v4-menu-links small { font-size:11px; }
.v4-menu-foot p { margin:0; color:#aaa69d; text-transform:none; letter-spacing:0; }
.v4-menu-foot a { color:#fff; text-decoration:none; }

.v4-hero { position:relative; min-height: calc(100svh - 70px); display:flex; align-items:stretch; padding:38px 0 30px; border-bottom:1px solid var(--v4-line); }
.v4-hero .v4-shell { display:flex; flex-direction:column; min-height:calc(100svh - 138px); }
.v4-hero-meta { display:grid; grid-template-columns:1fr 1fr 1fr; gap:24px; border-top:1px solid var(--v4-ink); padding-top:10px; }
.v4-hero-meta p { margin:0; font-size:9px; letter-spacing:.07em; text-transform:uppercase; }
.v4-hero-meta p:nth-child(2) { text-align:center; }
.v4-hero-meta p:last-child { text-align:right; }
.v4-hero-title { margin:clamp(58px,9vh,110px) 0 48px; font-size:clamp(70px,8.6vw,150px); line-height:.78; letter-spacing:-.075em; font-weight:700; text-wrap:balance; }
.v4-hero-title span { display:block; }
.v4-hero-title span:nth-child(2) { padding-left:8.4vw; }
.v4-hero-title span:nth-child(3) { padding-left:18vw; }
.v4-hero-title em, .v4-index-top h2 em, .v4-break blockquote em, .v4-contact h2 em { font-family:Georgia, 'Times New Roman', serif; font-weight:400; letter-spacing:-.06em; }
.v4-hero-title em { color:var(--v4-accent); }
.v4-hero-foot { margin-top:auto; padding-top:26px; border-top:1px solid var(--v4-line); display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:50px; }
.v4-hero-foot p { margin:0; max-width:620px; font-size:clamp(17px,1.45vw,22px); line-height:1.3; letter-spacing:-.025em; }
.v4-hero-foot > a { display:flex; align-items:center; gap:34px; text-decoration:none; font-size:11px; text-transform:uppercase; letter-spacing:.07em; }
.v4-hero-foot > a span { font-size:26px; line-height:1; }
.v4-hero-mark { position:absolute; right:4vw; bottom:72px; z-index:-1; opacity:.055; display:flex; align-items:baseline; font-size:clamp(120px,20vw,330px); line-height:.65; font-weight:900; letter-spacing:-.11em; pointer-events:none; }
.v4-hero-mark i { color:var(--v4-accent); font-family:Georgia,serif; font-weight:400; }

.v4-work { padding:115px 0 135px; background:var(--v4-paper); }
.v4-section-label { display:flex; justify-content:space-between; gap:24px; padding:10px 0 12px; border-top:1px solid var(--v4-ink); font-size:9px; letter-spacing:.08em; text-transform:uppercase; }
.v4-work-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:30px; margin:48px 0 32px; }
.v4-work-heading h2 { margin:0; font-size:clamp(78px,10vw,170px); line-height:.72; letter-spacing:-.075em; }
.v4-work-heading p { margin:0 0 6px; font-size:13px; color:var(--v4-muted); }
.v4-project-visual { position:relative; display:block; min-height:clamp(620px,64vw,930px); background:#1b1b19; color:#fff; text-decoration:none; overflow:hidden; isolation:isolate; }
.v4-project-visual::before { content:""; position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px); background-size:72px 72px; opacity:.5; pointer-events:none; }
.v4-project-browser { position:absolute; left:6.5%; top:10%; width:78%; height:72%; background:#ebe7dc; color:#111; box-shadow:0 36px 90px rgba(0,0,0,.42); transition:transform .6s cubic-bezier(.18,.7,.2,1); will-change:transform; }
.v4-browser-top { height:42px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding:0 15px; border-bottom:1px solid rgba(0,0,0,.18); font-size:8px; letter-spacing:.06em; }
.v4-browser-top > span:last-child { text-align:right; }
.v4-window-dots { display:flex; gap:5px; }
.v4-window-dots i { width:6px; height:6px; border-radius:50%; background:#111; opacity:.28; }
.v4-q4-page { height:calc(100% - 42px); padding:22px 28px 18px; display:flex; flex-direction:column; background:#eeeade; }
.v4-q4-nav { display:grid; grid-template-columns:1fr auto auto; align-items:center; gap:24px; padding-bottom:18px; border-bottom:1px solid rgba(0,0,0,.18); font-size:8px; }
.v4-q4-nav strong { font-size:20px; letter-spacing:-.04em; }
.v4-q4-nav span { color:#5b584f; }
.v4-q4-nav b { background:#111; color:#fff; padding:9px 11px; font-size:7px; font-weight:600; }
.v4-q4-hero { flex:1; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; padding:20px 0; }
.v4-q4-hero small { font-size:7px; letter-spacing:.09em; }
.v4-q4-hero h3 { margin:15px 0 14px; font-size:clamp(58px,6.1vw,104px); line-height:.79; letter-spacing:-.07em; }
.v4-q4-hero h3 em { font-family:Georgia,serif; font-weight:400; color:#a63c28; }
.v4-q4-hero p { max-width:470px; margin:0; font-size:12px; line-height:1.4; color:#555148; }
.v4-q4-actions { display:flex; gap:24px; margin-top:26px; font-size:7px; letter-spacing:.07em; }
.v4-q4-actions span:first-child { border-bottom:1px solid #111; padding-bottom:4px; }
.v4-q4-bottom { display:grid; grid-template-columns:1fr 1fr 1fr; gap:10px; border-top:1px solid rgba(0,0,0,.18); padding-top:12px; font-size:7px; letter-spacing:.06em; }
.v4-q4-bottom span:nth-child(2) { text-align:center; }
.v4-q4-bottom span:last-child { text-align:right; }
.v4-project-phone { position:absolute; right:7%; bottom:7%; width:min(18vw,250px); aspect-ratio:.51; z-index:3; background:#111; border:8px solid #070707; border-radius:32px; box-shadow:0 28px 70px rgba(0,0,0,.48); padding:50px 20px 24px; display:flex; flex-direction:column; transition:transform .6s cubic-bezier(.18,.7,.2,1); will-change:transform; }
.v4-project-phone > div { position:absolute; top:12px; left:50%; width:42%; height:15px; transform:translateX(-50%); border-radius:14px; background:#252525; }
.v4-project-phone strong { font-size:22px; }
.v4-project-phone small { margin-top:28px; font-size:7px; letter-spacing:.12em; color:#aaa; }
.v4-project-phone h4 { margin:12px 0 auto; font-size:clamp(30px,3.4vw,52px); line-height:.86; letter-spacing:-.06em; }
.v4-project-phone span { border-top:1px solid #555; padding-top:12px; font-size:7px; letter-spacing:.08em; }
.v4-project-stamp { position:absolute; left:2.5%; bottom:3%; width:105px; aspect-ratio:1; border:1px solid rgba(255,255,255,.45); display:flex; flex-direction:column; justify-content:space-between; padding:12px; transform:rotate(-7deg); }
.v4-project-stamp span { font-size:8px; letter-spacing:.1em; }
.v4-project-stamp strong { font-size:48px; line-height:.8; letter-spacing:-.08em; }
.v4-case-copy { display:grid; grid-template-columns:1fr 1fr .65fr; gap:50px; padding:35px 0 0; }
.v4-case-copy p { margin:0; font-size:15px; line-height:1.5; letter-spacing:-.01em; }
.v4-case-copy .v4-small-label { margin-bottom:16px; color:var(--v4-muted); font-size:8px; letter-spacing:.1em; text-transform:uppercase; }
.v4-case-link-wrap { display:flex; flex-direction:column; justify-content:flex-end; gap:10px; }
.v4-arrow-link { display:flex; justify-content:space-between; gap:18px; padding:13px 0; border-top:1px solid var(--v4-ink); text-decoration:none; font-size:10px; text-transform:uppercase; letter-spacing:.06em; }
.v4-arrow-link-muted { color:var(--v4-muted); border-color:var(--v4-line); }

.v4-index { padding:125px 0 140px; background:#e8e4da; }
.v4-index-top { display:grid; grid-template-columns:.8fr 2.2fr; gap:7vw; align-items:start; }
.v4-index-top .v4-section-label { display:block; border-top-color:#111; }
.v4-index-top .v4-section-label span { display:block; }
.v4-index-top .v4-section-label span + span { margin-top:8px; color:var(--v4-muted); }
.v4-index-top h2 { margin:0 0 80px; font-size:clamp(62px,7.8vw,126px); line-height:.84; letter-spacing:-.07em; }
.v4-cap-list { border-top:1px solid var(--v4-ink); }
.v4-cap-row { display:grid; grid-template-columns:56px minmax(210px,.8fr) minmax(0,1.5fr) 90px; gap:28px; align-items:baseline; padding:30px 0 34px; border-bottom:1px solid var(--v4-line); }
.v4-cap-num, .v4-cap-key { font-size:9px; letter-spacing:.08em; }
.v4-cap-key { text-align:right; color:var(--v4-muted); }
.v4-cap-row h3 { margin:0; font-size:clamp(30px,3.5vw,55px); line-height:.9; letter-spacing:-.045em; }
.v4-cap-row p { margin:0; max-width:700px; font-size:15px; line-height:1.5; color:#47443e; }

.v4-break { background:var(--v4-accent); color:#10100f; padding:100px 0 110px; }
.v4-break-inner { display:grid; grid-template-columns:1fr 3.2fr 1fr; gap:40px; align-items:end; }
.v4-break p { margin:0; max-width:210px; font-size:11px; line-height:1.4; }
.v4-break p:last-child { justify-self:end; text-align:right; }
.v4-break blockquote { margin:0; text-align:center; font-size:clamp(68px,8vw,132px); line-height:.78; letter-spacing:-.075em; font-weight:700; }
.v4-break blockquote em { color:#fff7e8; }

.v4-method { padding:135px 0; }
.v4-method-grid { display:grid; grid-template-columns:minmax(330px,.9fr) minmax(0,1.35fr); gap:8vw; align-items:start; }
.v4-method-title-wrap { position:sticky; top:110px; }
.v4-method-title-wrap h2 { margin:48px 0 30px; font-size:clamp(70px,7.5vw,118px); line-height:.79; letter-spacing:-.075em; }
.v4-method-title-wrap > p { max-width:480px; margin:0; font-size:16px; line-height:1.5; color:#4f4b44; }
.v4-method-list { list-style:none; margin:0; padding:0; border-top:1px solid var(--v4-ink); }
.v4-method-list li { display:grid; grid-template-columns:48px 1fr; gap:28px; padding:34px 0 42px; border-bottom:1px solid var(--v4-line); }
.v4-method-list li > span { font-size:9px; letter-spacing:.08em; }
.v4-method-list strong { display:block; margin-bottom:14px; font-size:clamp(34px,3.8vw,58px); line-height:.9; letter-spacing:-.05em; }
.v4-method-list p { margin:0; max-width:580px; font-size:15px; line-height:1.5; color:#4f4b44; }

.v4-local { position:relative; min-height:760px; display:flex; align-items:flex-end; overflow:hidden; background:#d7d2c6; padding:120px 0 90px; }
.v4-local-ghost { position:absolute; left:-.03em; top:70px; font-size:clamp(160px,24vw,390px); line-height:.68; font-weight:900; letter-spacing:-.09em; color:rgba(17,17,15,.06); white-space:nowrap; pointer-events:none; }
.v4-local-copy { position:relative; z-index:1; width:min(780px,72%); margin-left:auto; }
.v4-local-copy h2 { margin:48px 0 28px; font-size:clamp(62px,7vw,108px); line-height:.83; letter-spacing:-.07em; }
.v4-local-copy > p { margin:0; max-width:650px; font-size:17px; line-height:1.48; }
.v4-local-links { display:flex; gap:34px; margin-top:40px; }
.v4-local-links a { position:relative; text-decoration:none; font-size:10px; text-transform:uppercase; letter-spacing:.06em; }

.v4-contact { background:var(--v4-dark); color:#f5f0e6; padding:75px 0 88px; }
.v4-contact-top { display:flex; justify-content:space-between; gap:30px; padding-top:10px; border-top:1px solid rgba(255,255,255,.42); font-size:9px; letter-spacing:.08em; text-transform:uppercase; }
.v4-contact h2 { margin:95px 0 85px; font-size:clamp(78px,9.6vw,158px); line-height:.76; letter-spacing:-.078em; }
.v4-contact h2 em { color:var(--v4-accent); }
.v4-contact-bottom { display:grid; grid-template-columns:minmax(0,520px) auto; justify-content:space-between; align-items:end; gap:60px; }
.v4-contact-bottom p { margin:0; font-size:17px; line-height:1.45; color:#bdb8ae; }
.v4-contact-bottom a { display:flex; align-items:center; gap:50px; padding:18px 0; border-top:1px solid currentColor; border-bottom:1px solid currentColor; min-width:300px; justify-content:space-between; text-decoration:none; font-size:12px; text-transform:uppercase; letter-spacing:.05em; }
.v4-contact-bottom a span { font-size:26px; }

.v4-footer { background:var(--v4-dark); color:#f5f0e6; border-top:1px solid rgba(255,255,255,.18); padding:52px 0 24px; }
.v4-footer-main { display:grid; grid-template-columns:1.5fr 1fr; gap:60px; align-items:end; padding-bottom:65px; }
.v4-footer-name { text-decoration:none; font-size:clamp(72px,10vw,160px); line-height:.66; letter-spacing:-.08em; font-weight:900; }
.v4-footer-nav { display:grid; grid-template-columns:1fr 1fr; gap:40px; }
.v4-footer-nav > div { display:flex; flex-direction:column; gap:9px; }
.v4-footer-nav span { margin-bottom:9px; color:#7d7970; font-size:8px; letter-spacing:.1em; text-transform:uppercase; }
.v4-footer-nav a { text-decoration:none; font-size:13px; }
.v4-footer-bottom { display:grid; grid-template-columns:1fr 1fr 1fr; gap:30px; padding-top:14px; border-top:1px solid rgba(255,255,255,.18); color:#8c887f; font-size:8px; letter-spacing:.08em; text-transform:uppercase; }
.v4-footer-bottom span:nth-child(2) { text-align:center; }
.v4-footer-bottom span:last-child { text-align:right; }

.v4-observe { opacity:.35; transform:translateY(16px); transition:opacity .7s ease, transform .7s cubic-bezier(.18,.7,.2,1); }
.v4-observe.v4-in { opacity:1; transform:none; }

@media (hover:hover) and (pointer:fine) {
  .v4-desktop-nav a:hover::after, .v4-contact-link:hover::after, .v4-local-links a:hover::after { transform:scaleX(1); transform-origin:left; }
  .v4-arrow-link:hover span, .v4-contact-bottom a:hover span { transform:translate(3px,-3px); }
  .v4-arrow-link span, .v4-contact-bottom a span { transition:transform .25s ease; }
  .v4-cap-row { transition:padding-left .3s ease, color .3s ease; }
  .v4-cap-row:hover { padding-left:14px; }
}

@media (max-width:1180px) {
  .v4-shell { width:min(100% - 42px, 1480px); }
  .v4-header-inner { grid-template-columns:1fr auto; }
  .v4-desktop-nav { display:none; }
  .v4-menu-button { display:block; }
  .v4-header-side { gap:16px; }
  .v4-hero-title { font-size:clamp(68px,9.7vw,118px); }
  .v4-project-browser { width:82%; left:5%; }
  .v4-project-phone { width:min(21vw,220px); right:5%; }
  .v4-index-top { grid-template-columns:1fr; gap:25px; }
  .v4-index-top h2 { margin-top:20px; }
  .v4-cap-row { grid-template-columns:44px minmax(180px,.8fr) 1.4fr 74px; gap:18px; }
  .v4-break-inner { grid-template-columns:.7fr 3fr .7fr; }
  .v4-method-grid { gap:6vw; }
}

@media (max-width:900px) {
  .v4-shell { width:min(100% - 34px, 1480px); }
  .v4-location { display:none; }
  .v4-hero { min-height:auto; padding-top:28px; }
  .v4-hero .v4-shell { min-height:0; }
  .v4-hero-meta { grid-template-columns:1fr 1fr; }
  .v4-hero-meta p:nth-child(2) { text-align:right; }
  .v4-hero-meta p:last-child { display:none; }
  .v4-hero-title { margin:70px 0 65px; font-size:clamp(61px,12vw,98px); }
  .v4-hero-title span:nth-child(2) { padding-left:0; }
  .v4-hero-title span:nth-child(3) { padding-left:9vw; }
  .v4-hero-foot { margin-top:0; }
  .v4-hero-mark { right:-3vw; bottom:90px; }
  .v4-work { padding:90px 0 105px; }
  .v4-work-heading { display:block; margin:40px 0 26px; }
  .v4-work-heading p { margin-top:18px; }
  .v4-project-visual { min-height:620px; }
  .v4-project-browser { width:88%; height:66%; left:3%; top:9%; }
  .v4-project-phone { width:150px; right:4%; bottom:5%; border-width:6px; }
  .v4-q4-nav span { display:none; }
  .v4-q4-nav { grid-template-columns:1fr auto; }
  .v4-q4-hero h3 { font-size:clamp(55px,8vw,78px); }
  .v4-case-copy { grid-template-columns:1fr 1fr; gap:36px; }
  .v4-case-link-wrap { grid-column:1/-1; display:grid; grid-template-columns:1fr 1fr; }
  .v4-index { padding:100px 0 110px; }
  .v4-index-top h2 { margin-bottom:60px; }
  .v4-cap-row { grid-template-columns:40px 1fr 76px; gap:14px 20px; }
  .v4-cap-row p { grid-column:2 / -1; max-width:580px; }
  .v4-break { padding:80px 0; }
  .v4-break-inner { grid-template-columns:1fr; }
  .v4-break p { max-width:280px; }
  .v4-break p:last-child { justify-self:end; }
  .v4-method { padding:105px 0; }
  .v4-method-grid { grid-template-columns:1fr; gap:70px; }
  .v4-method-title-wrap { position:static; }
  .v4-local { min-height:680px; }
  .v4-local-copy { width:78%; }
  .v4-contact h2 { font-size:clamp(72px,12vw,110px); }
  .v4-footer-main { grid-template-columns:1fr; }
  .v4-footer-nav { max-width:500px; }
}

@media (max-width:640px) {
  .v4-shell { width:calc(100% - 28px); }
  .v4-header-inner { min-height:62px; gap:12px; }
  .v4-wordmark { gap:7px; }
  .v4-wordmark strong { font-size:10px; }
  .v4-wordmark span { font-size:7px; }
  .v4-contact-link { display:none; }
  .v4-menu-button { padding-left:8px; }
  .v4-menu { padding:18px 16px 22px; }
  .v4-menu-top { font-size:8px; }
  .v4-menu-links a { min-height:76px; }
  .v4-menu-links span { font-size:clamp(36px,13vw,56px); }
  .v4-menu-foot { align-items:flex-end; font-size:8px; }
  .v4-menu-foot p { max-width:180px; }

  .v4-hero { padding:21px 0 24px; }
  .v4-hero-meta { padding-top:8px; }
  .v4-hero-meta p { font-size:7px; }
  .v4-hero-title { margin:58px 0 58px; font-size:clamp(49px,15.1vw,72px); line-height:.81; letter-spacing:-.069em; }
  .v4-hero-title span:nth-child(3) { padding-left:0; }
  .v4-hero-title em { display:inline; }
  .v4-hero-foot { grid-template-columns:1fr; gap:30px; padding-top:18px; }
  .v4-hero-foot p { font-size:17px; line-height:1.32; }
  .v4-hero-foot > a { justify-content:space-between; width:100%; border-top:1px solid var(--v4-line); padding-top:12px; }
  .v4-hero-mark { font-size:42vw; right:-10vw; bottom:120px; }

  .v4-work { padding:76px 0 84px; }
  .v4-section-label { font-size:7px; }
  .v4-work-heading { margin:34px 0 22px; }
  .v4-work-heading h2 { font-size:clamp(66px,22vw,94px); line-height:.75; }
  .v4-work-heading p { font-size:11px; }
  .v4-project-visual { min-height:520px; }
  .v4-project-visual::before { background-size:42px 42px; }
  .v4-project-browser { left:3%; top:7%; width:94%; height:61%; }
  .v4-browser-top { height:30px; padding:0 9px; font-size:6px; }
  .v4-window-dots i { width:4px; height:4px; }
  .v4-q4-page { height:calc(100% - 30px); padding:12px 13px 10px; }
  .v4-q4-nav { padding-bottom:9px; font-size:5px; }
  .v4-q4-nav strong { font-size:13px; }
  .v4-q4-nav b { padding:6px 7px; font-size:5px; }
  .v4-q4-hero { padding:12px 0; }
  .v4-q4-hero small { font-size:5px; }
  .v4-q4-hero h3 { margin:9px 0 8px; font-size:clamp(39px,12vw,52px); }
  .v4-q4-hero p { max-width:75%; font-size:7px; line-height:1.35; }
  .v4-q4-actions { gap:12px; margin-top:12px; font-size:4.5px; }
  .v4-q4-bottom { padding-top:7px; font-size:4.3px; }
  .v4-project-phone { width:118px; right:4%; bottom:6%; border-width:5px; border-radius:23px; padding:36px 13px 15px; }
  .v4-project-phone > div { top:8px; height:10px; }
  .v4-project-phone strong { font-size:14px; }
  .v4-project-phone small { margin-top:18px; font-size:5px; }
  .v4-project-phone h4 { margin-top:8px; font-size:27px; }
  .v4-project-phone span { padding-top:8px; font-size:5px; }
  .v4-project-stamp { width:74px; padding:8px; bottom:3%; left:3%; }
  .v4-project-stamp span { font-size:6px; }
  .v4-project-stamp strong { font-size:33px; }
  .v4-case-copy { grid-template-columns:1fr; gap:30px; padding-top:28px; }
  .v4-case-copy p { font-size:14px; }
  .v4-case-link-wrap { grid-column:auto; grid-template-columns:1fr; gap:0; }

  .v4-index { padding:78px 0 88px; }
  .v4-index-top h2 { margin:24px 0 45px; font-size:clamp(52px,15.8vw,72px); line-height:.86; }
  .v4-cap-row { grid-template-columns:29px 1fr auto; gap:12px; padding:24px 0 28px; }
  .v4-cap-row h3 { font-size:33px; }
  .v4-cap-row p { grid-column:2 / -1; font-size:14px; }
  .v4-cap-key, .v4-cap-num { font-size:7px; }

  .v4-break { padding:68px 0 72px; }
  .v4-break-inner { gap:35px; }
  .v4-break blockquote { text-align:left; font-size:clamp(58px,18vw,82px); line-height:.8; }
  .v4-break p { font-size:10px; }
  .v4-break p:last-child { justify-self:start; text-align:left; }

  .v4-method { padding:82px 0 88px; }
  .v4-method-grid { gap:52px; }
  .v4-method-title-wrap h2 { margin:34px 0 24px; font-size:clamp(59px,17vw,78px); }
  .v4-method-title-wrap > p { font-size:15px; }
  .v4-method-list li { grid-template-columns:28px 1fr; gap:14px; padding:26px 0 30px; }
  .v4-method-list strong { font-size:35px; }
  .v4-method-list p { font-size:14px; }

  .v4-local { min-height:580px; padding:90px 0 65px; }
  .v4-local-ghost { top:42px; font-size:45vw; }
  .v4-local-copy { width:100%; margin:0; }
  .v4-local-copy h2 { margin:34px 0 23px; font-size:clamp(53px,16vw,72px); }
  .v4-local-copy > p { font-size:15px; }
  .v4-local-links { flex-direction:column; gap:18px; margin-top:34px; align-items:flex-start; }

  .v4-contact { padding:54px 0 62px; }
  .v4-contact-top { font-size:7px; }
  .v4-contact h2 { margin:68px 0 58px; font-size:clamp(58px,16.2vw,78px); line-height:.8; }
  .v4-contact-bottom { grid-template-columns:1fr; gap:42px; }
  .v4-contact-bottom p { font-size:15px; }
  .v4-contact-bottom a { min-width:0; width:100%; }

  .v4-footer { padding-top:42px; }
  .v4-footer-main { gap:48px; padding-bottom:52px; }
  .v4-footer-name { font-size:clamp(72px,24vw,105px); }
  .v4-footer-nav { gap:24px; }
  .v4-footer-nav a { font-size:12px; }
  .v4-footer-bottom { grid-template-columns:1fr; gap:7px; }
  .v4-footer-bottom span:nth-child(2), .v4-footer-bottom span:last-child { text-align:left; }
}

@media (max-width:360px) {
  .v4-shell { width:calc(100% - 24px); }
  .v4-wordmark span { display:none; }
  .v4-hero-title { font-size:47px; }
  .v4-project-visual { min-height:485px; }
  .v4-project-phone { width:104px; }
  .v4-q4-hero h3 { font-size:37px; }
  .v4-cap-row h3 { font-size:30px; }
  .v4-contact h2 { font-size:55px; }
}

@media (prefers-reduced-motion: reduce) {
  .v4-home *, .v4-home *::before, .v4-home *::after { scroll-behavior:auto !important; transition-duration:.01ms !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; }
  .v4-observe { opacity:1; transform:none; }
}
