:root {
  --bg: #050505;
  --ink: #f4f4f0;
  --muted: #a4a4a0;
  --line: rgba(255,255,255,.16);
  --paper: #eeeee8;
  --black: #080808;
  --max: 1480px;
  --pad: clamp(18px, 3vw, 48px);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--bg); }
body { margin: 0; background: var(--bg); color: var(--ink); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
button { color: inherit; }
img { max-width: 100%; display: block; }

.boot { position: fixed; inset: 0; z-index: 999; background: #000; display: grid; place-items: center; transition: opacity .65s ease, visibility .65s ease; }
.boot img { width: min(420px, 62vw); filter: drop-shadow(0 8px 30px rgba(0,0,0,.5)); }
.boot.done { opacity: 0; visibility: hidden; }

.announcement { height: 28px; display: grid; place-items: center; font-size: 10px; letter-spacing: .19em; background: var(--paper); color: var(--black); font-weight: 700; }
.site-header { position: fixed; top: 28px; left: 0; right: 0; z-index: 80; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; height: 78px; padding: 0 var(--pad); border-bottom: 1px solid transparent; transition: background .3s, border-color .3s, height .3s; }
.site-header.scrolled { background: rgba(5,5,5,.92); backdrop-filter: blur(18px); border-color: var(--line); height: 66px; }
.brand img { width: 152px; height: 48px; object-fit: contain; object-position: left center; }
.desktop-nav { display: flex; gap: 32px; font-size: 11px; letter-spacing: .18em; font-weight: 700; }
.desktop-nav a, .text-button { position: relative; }
.desktop-nav a::after { content:""; position: absolute; left: 0; right: 100%; bottom: -7px; height: 1px; background: #fff; transition: right .25s; }
.desktop-nav a:hover::after { right: 0; }
.header-actions { justify-self: end; display: flex; align-items: center; gap: 18px; }
.text-button, .menu-button { background: none; border: 0; cursor: pointer; font-size: 11px; letter-spacing: .16em; font-weight: 700; padding: 10px 0; }
.menu-button { display: none; width: 28px; height: 28px; position: relative; }
.menu-button span { position:absolute; width: 24px; height:1px; background:#fff; left:2px; transition:.25s; }
.menu-button span:first-child { top:10px; }.menu-button span:last-child { top:17px; }
.menu-button.active span:first-child { transform:rotate(45deg); top:14px; }.menu-button.active span:last-child { transform:rotate(-45deg); top:14px; }
.mobile-menu { position: fixed; z-index: 75; top: 28px; inset-inline: 0; background: #050505; padding: 100px var(--pad) 46px; transform: translateY(-105%); transition: transform .35s ease; border-bottom: 1px solid var(--line); }
.mobile-menu.open { transform: translateY(0); }
.mobile-menu a { display:block; font-size: clamp(36px,9vw,62px); line-height:1.02; letter-spacing:-.045em; font-weight:900; text-transform:uppercase; border-top:1px solid var(--line); padding:12px 0; }

.hero { min-height: 100svh; position: relative; display: flex; align-items: flex-end; overflow: hidden; background:#000; }
.hero-video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transform:scale(1.03); filter: contrast(1.05) brightness(.72); }
.hero-shade { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,.25) 0%, rgba(0,0,0,.1) 35%, rgba(0,0,0,.75) 100%), linear-gradient(90deg, rgba(0,0,0,.55), transparent 60%); }
.hero-grid-lines { position:absolute; inset:0; opacity:.16; background-image: linear-gradient(90deg, transparent calc(25% - .5px), #fff 25%, transparent calc(25% + .5px)), linear-gradient(90deg, transparent calc(50% - .5px), #fff 50%, transparent calc(50% + .5px)), linear-gradient(90deg, transparent calc(75% - .5px), #fff 75%, transparent calc(75% + .5px)); pointer-events:none; }
.hero-content { position:relative; z-index:2; padding: 0 var(--pad) clamp(92px, 10vw, 138px); width:min(980px,95vw); }
.eyebrow, .section-kicker { font-size:10px; letter-spacing:.22em; font-weight:700; text-transform:uppercase; color:#d7d7d3; }
.hero h1 { white-space:pre-line; margin: 16px 0 18px; font-family: Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif; font-weight: 900; font-size: clamp(78px, 13vw, 188px); line-height:.78; letter-spacing:-.045em; text-transform:uppercase; }
.hero-body { max-width: 580px; margin:0 0 30px; font-size: clamp(15px,1.55vw,20px); line-height:1.5; color:#e2e2de; }
.hero-ctas { display:flex; gap:10px; flex-wrap:wrap; }
.button { min-height:52px; display:inline-flex; align-items:center; justify-content:center; padding:0 23px; border:1px solid rgba(255,255,255,.75); font-size:11px; letter-spacing:.16em; font-weight:800; cursor:pointer; transition: .25s ease; }
.button-light { background:#f2f2ec; color:#080808; border-color:#f2f2ec; }.button-light:hover{background:#fff; transform:translateY(-2px);}
.button-ghost { background:transparent; }.button-ghost:hover { background:rgba(255,255,255,.08); }
.button.full { width:100%; }
.hero-footer { position:absolute; z-index:2; bottom:0; inset-inline:var(--pad); border-top:1px solid rgba(255,255,255,.25); display:flex; justify-content:space-between; padding:14px 0 16px; font-size:9px; letter-spacing:.18em; }

.manifesto { max-width:var(--max); margin:auto; padding: clamp(90px, 11vw, 170px) var(--pad); display:grid; grid-template-columns: 1fr 3fr; gap:clamp(30px,7vw,120px); }
.manifesto-meta { font-size:10px; letter-spacing:.16em; color:#a7a7a2; }
.mini-rule { width:38px; height:1px; background:#fff; margin:24px 0; }
.manifesto-copy h2 { margin:0; font-size:clamp(42px,6.7vw,104px); letter-spacing:-.055em; line-height:.92; max-width:1100px; font-weight:900; text-transform:uppercase; }
.manifesto-copy > p { max-width:700px; color:#b8b8b4; font-size:clamp(16px,1.5vw,21px); line-height:1.6; margin:38px 0 0 auto; }

.editorial-strip { min-height:760px; display:grid; grid-template-columns:1.15fr .85fr; background:var(--paper); color:#080808; }
.editorial-image { overflow:hidden; min-height:620px; }
.editorial-image img { width:100%; height:100%; object-fit:cover; transform:scale(1.02); }
.editorial-type { padding:var(--pad); display:flex; flex-direction:column; justify-content:space-between; border-left:1px solid rgba(0,0,0,.18); }
.editorial-type > p { font-size:10px; letter-spacing:.2em; font-weight:700; }
.huge-word { writing-mode:vertical-rl; transform:rotate(180deg); align-self:flex-end; font-family:Impact,"Arial Narrow Bold",sans-serif; font-size:clamp(120px,16vw,260px); line-height:.72; letter-spacing:-.045em; }
.spec-row { display:flex; justify-content:space-between; border-top:1px solid rgba(0,0,0,.35); padding-top:12px; font-size:9px; letter-spacing:.17em; font-weight:700; }

.shop-section { max-width:var(--max); margin:auto; padding: clamp(90px, 11vw, 170px) var(--pad); }
.section-head { display:grid; grid-template-columns:1fr 1fr; align-items:end; gap:30px; margin-bottom:42px; }
.section-head h2, .brand-system h2, .newsletter h2 { margin:10px 0 0; font-size:clamp(48px,7.5vw,110px); line-height:.88; letter-spacing:-.055em; text-transform:uppercase; }
.section-note { justify-self:end; max-width:460px; color:#9b9b97; line-height:1.55; font-size:13px; }
.product-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.product-card { position:relative; }
.product-media { aspect-ratio:4/5; background:#111; overflow:hidden; position:relative; }
.product-media img { width:100%; height:100%; object-fit:cover; transition:transform .55s cubic-bezier(.2,.7,.2,1), filter .55s; }
.product-card:hover .product-media img { transform:scale(1.035); filter:brightness(.84); }
.product-badge { position:absolute; left:12px; top:12px; padding:7px 9px; background:#f3f3ed; color:#080808; font-size:8px; letter-spacing:.14em; font-weight:800; }
.quick-add { position:absolute; inset:auto 12px 12px 12px; border:1px solid rgba(255,255,255,.75); color:#fff; background:rgba(0,0,0,.4); backdrop-filter:blur(10px); height:46px; font-size:10px; letter-spacing:.15em; font-weight:800; opacity:0; transform:translateY(8px); transition:.25s; cursor:pointer; }
.product-card:hover .quick-add { opacity:1; transform:none; }
.product-info { padding:14px 2px 0; display:grid; grid-template-columns:1fr auto; gap:6px 14px; }
.product-info h3 { margin:0; font-size:13px; letter-spacing:.12em; }
.product-info .subtitle { margin:0; color:#898985; font-size:9px; letter-spacing:.12em; grid-column:1 / 2; }
.product-info .price { margin:0; font-size:12px; grid-column:2; grid-row:1; }

.brand-system { background:#efefe9; color:#060606; padding: clamp(90px, 11vw, 160px) var(--pad); }
.brand-system-head { max-width:var(--max); margin:0 auto 56px; display:grid; grid-template-columns:1fr 2fr; gap:50px; align-items:start; }
.brand-system-head .section-kicker { color:#53534f; }
.brand-system-head h2 { margin-top:0; }
.brand-tiles { max-width:var(--max); margin:auto; display:grid; grid-template-columns:repeat(2,1fr); border-top:1px solid rgba(0,0,0,.2); border-left:1px solid rgba(0,0,0,.2); }
.brand-tile { margin:0; min-height:360px; position:relative; display:grid; place-items:center; padding:42px; border-right:1px solid rgba(0,0,0,.2); border-bottom:1px solid rgba(0,0,0,.2); overflow:hidden; }
.brand-tile img { max-width:76%; max-height:230px; object-fit:contain; mix-blend-mode:multiply; }
.brand-tile.dark { background:#050505; }.brand-tile.dark img{mix-blend-mode:normal;}
.brand-tile figcaption { position:absolute; left:16px; bottom:14px; font-size:8px; letter-spacing:.17em; color:#555; }.brand-tile.dark figcaption{color:#aaa;}

.full-bleed { min-height:95svh; position:relative; overflow:hidden; display:flex; align-items:flex-end; background:#000; }
.full-bleed > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.78; transform:scale(1.1); filter:contrast(1.15); }
.full-bleed::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(0,0,0,.85),rgba(0,0,0,.1) 65%); }
.full-bleed-copy { position:relative; z-index:2; padding:var(--pad); width:100%; }
.full-bleed-copy span { font-size:9px; letter-spacing:.2em; }
.full-bleed-copy h2 { margin:18px 0 0; font-size:clamp(66px,12vw,190px); font-family:Impact,"Arial Narrow Bold",sans-serif; letter-spacing:-.04em; line-height:.8; }

.newsletter { max-width:var(--max); margin:auto; padding:clamp(90px,11vw,160px) var(--pad); display:grid; grid-template-columns:1.25fr .75fr; align-items:end; gap:70px; }
.signup label { font-size:9px; letter-spacing:.18em; color:#aaa; }
.signup-line { display:flex; border-bottom:1px solid #8c8c88; margin-top:14px; }
.signup-line input { flex:1; background:transparent; border:0; color:#fff; padding:18px 0; outline:0; font-size:17px; }
.signup-line button { border:0; background:transparent; cursor:pointer; color:#fff; font-size:11px; letter-spacing:.14em; font-weight:800; }
.form-message { color:#a7a7a3; font-size:11px; min-height:1.3em; }

.footer { border-top:1px solid var(--line); padding:50px var(--pad) 24px; }
.footer-brand img { width:min(380px,70vw); }
.footer-links { display:flex; flex-wrap:wrap; gap:24px; margin:60px 0; font-size:10px; letter-spacing:.18em; font-weight:800; }
.footer-meta { display:flex; justify-content:space-between; gap:20px; border-top:1px solid var(--line); padding-top:16px; color:#7f7f7b; font-size:8px; letter-spacing:.17em; }

.cart { position:fixed; z-index:120; right:0; top:0; bottom:0; width:min(460px,100vw); background:#efefe9; color:#090909; transform:translateX(103%); transition:transform .32s ease; display:flex; flex-direction:column; }
.cart.open { transform:none; }
.cart-head { padding:24px; display:flex; justify-content:space-between; border-bottom:1px solid rgba(0,0,0,.16); font-size:11px; letter-spacing:.15em; }
.cart-head button { border:0; background:transparent; cursor:pointer; font-size:9px; letter-spacing:.15em; }
.cart-items { flex:1; overflow:auto; padding:18px 24px; }
.cart-empty { color:#777; font-size:12px; margin-top:34px; }
.cart-item { display:grid; grid-template-columns:86px 1fr auto; gap:14px; padding:14px 0; border-bottom:1px solid rgba(0,0,0,.12); align-items:center; }
.cart-item img { width:86px; height:100px; object-fit:cover; background:#111; }
.cart-item h4 { margin:0 0 8px; font-size:11px; letter-spacing:.11em; }.cart-item p{margin:0;color:#777;font-size:10px;}
.cart-remove { border:0; background:none; cursor:pointer; font-size:16px; }
.cart-foot { padding:22px 24px 26px; border-top:1px solid rgba(0,0,0,.16); }.cart-foot .button-light{background:#080808;color:#fff;border-color:#080808;}.cart-total{display:flex;justify-content:space-between;margin-bottom:18px;font-size:12px;letter-spacing:.1em}.cart-foot p{font-size:9px;line-height:1.5;color:#666;}
.scrim { position:fixed; inset:0; z-index:110; background:rgba(0,0,0,.65); opacity:0; visibility:hidden; transition:.3s; }.scrim.on{opacity:1;visibility:visible;}

@media (max-width: 900px) {
  .site-header { grid-template-columns:1fr auto; }
  .desktop-nav { display:none; }
  .menu-button { display:block; }
  .hero-grid-lines { opacity:.09; }
  .hero-content { padding-bottom:104px; }
  .hero-footer span:nth-child(2){display:none;}
  .manifesto { grid-template-columns:1fr; }
  .manifesto-copy > p { margin-left:0; }
  .editorial-strip { grid-template-columns:1fr; }
  .editorial-type { min-height:540px; border-left:0; border-top:1px solid rgba(0,0,0,.18); }
  .huge-word { writing-mode:horizontal-tb; transform:none; align-self:flex-start; font-size:clamp(94px,28vw,190px); }
  .section-head, .brand-system-head, .newsletter { grid-template-columns:1fr; }
  .section-note { justify-self:start; }
  .product-grid { grid-template-columns:1fr 1fr; }
  .brand-system-head { gap:20px; }
  .newsletter { gap:50px; }
}

@media (max-width: 580px) {
  .announcement { font-size:8px; }
  .site-header { top:28px; height:68px; }
  .brand img { width:122px; }
  .text-button { display:none; }
  .hero h1 { font-size:clamp(70px,23vw,110px); }
  .hero-body { max-width:88%; }
  .hero-footer span:last-child { margin-left:auto; }
  .manifesto-copy h2 { font-size:12.5vw; }
  .editorial-strip { min-height:0; }
  .editorial-image { min-height:480px; }
  .product-grid { grid-template-columns:1fr; gap:34px; }
  .quick-add { opacity:1; transform:none; }
  .brand-tiles { grid-template-columns:1fr; }
  .brand-tile { min-height:300px; }
  .brand-system h2 { font-size:13vw; }
  .full-bleed { min-height:78svh; }
  .full-bleed-copy h2 { font-size:19vw; }
  .newsletter h2 { font-size:14vw; }
  .footer-meta { flex-direction:column; }
}

@media (prefers-reduced-motion: reduce) {
  * { scroll-behavior:auto !important; transition:none !important; animation:none !important; }
  .hero-video { display:none; }
  .hero { background:url('assets/route-embroidered.jpg') center/cover; }
}
