@font-face { font-family: 'Oswald'; src: url('/fonts/oswald-latin.woff2') format('woff2'); font-weight: 200 700; font-display: swap; }
@font-face { font-family: 'Khand'; src: url('/fonts/khand-500.woff2') format('woff2'); font-weight: 500; font-display: swap; }
@font-face { font-family: 'Khand'; src: url('/fonts/khand-600.woff2') format('woff2'); font-weight: 600; font-display: swap; }
@font-face { font-family: 'Khand'; src: url('/fonts/khand-700.woff2') format('woff2'); font-weight: 700; font-display: swap; }
@font-face { font-family: 'Noto Sans'; src: url('/fonts/noto-sans.woff2') format('woff2'); font-weight: 100 900; font-display: swap; }
/* Viking Shell: vikingshell.com. One stylesheet for every page. */

:root {
  --black: #0a0a0b;
  --char: #121213;
  --char-2: #19191a;
  --char-3: #232324;
  --line: #2c2a28;
  --bronze: #f59a50;
  --bronze-hi: #eaa766;
  --bronze-lo: #9a5a28;
  --white: #f5f2ee;
  --grey: #bdb4a9;
  --grey-2: #8f877e;
  --danger: #ff8f7a;
  --ok: #9fd39a;
  --head: 'Khand', 'Arial Narrow', Arial, sans-serif;
  --body: 'Noto Sans', 'Helvetica Neue', Arial, sans-serif;
  --gutter: clamp(20px, 5vw, 72px);
  --max: 1320px;
  color-scheme: dark;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 96px; font-size: calc(80% * var(--type)); }
body { margin: 0; background: var(--black); color: var(--white); font: 400 1.0625rem/1.65 var(--body); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
h1, h2, h3, h4 { font-family: var(--head); font-weight: 600; text-transform: uppercase; letter-spacing: 0.01em; line-height: 1; margin: 0; }
p { margin: 0 0 1em; }
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.wrap { width: 100%; max-width: calc(var(--max) + 2 * var(--gutter)); margin: 0 auto; padding: 0 var(--gutter); }
.bronze { color: var(--bronze); }

:focus-visible { outline: 2px solid var(--bronze-hi); outline-offset: 3px; border-radius: 1px; }
.skip { position: absolute; left: 12px; top: -60px; z-index: 100; background: var(--bronze); color: #120c08; padding: 10px 16px; font: 600 0.85rem var(--head); letter-spacing: 0.12em; text-transform: uppercase; text-decoration: none; transition: top 0.2s; }
.skip:focus { top: 12px; }

/* ---------- header ---------- */
.site-head { position: sticky; top: 0; z-index: 50; background: rgba(10, 10, 11, 0.92); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border-bottom: 1px solid var(--line); }
.site-head::after { content: ''; position: absolute; left: 0; right: 0; bottom: -1px; height: 1px; background: linear-gradient(90deg, rgba(212,136,63,0) 0%, rgba(212,136,63,0.55) 30%, rgba(212,136,63,0.55) 70%, rgba(212,136,63,0) 100%); }
.head-row { display: flex; align-items: center; gap: 28px; height: 84px; }
.brand { display: inline-flex; align-items: center; text-decoration: none; flex: none; }
.site-nav { margin-left: auto; }
.site-nav ul { list-style: none; display: flex; gap: clamp(14px, 2.2vw, 34px); margin: 0; padding: 0; }
.site-nav a { display: block; font: 500 0.8rem/1 var(--head); letter-spacing: 0.16em; text-transform: uppercase; text-decoration: none; color: var(--white); padding: 10px 0; position: relative; }
.site-nav a::after { content: ''; position: absolute; left: 0; right: 0; bottom: 2px; height: 2px; background: var(--bronze); transform: scaleX(0); transform-origin: left; transition: transform 0.35s ease; }
.site-nav a:hover::after, .site-nav a[aria-current='page']::after { transform: scaleX(1); }
.site-nav a[aria-current='page'] { color: var(--bronze-hi); }
.menu-btn { display: none; }

/* ---------- buttons ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 14px; font: 600 0.84rem/1 var(--head); letter-spacing: 0.18em; text-transform: uppercase; text-decoration: none; padding: 17px 28px; border: 1.5px solid var(--bronze); color: var(--white); background: transparent; cursor: pointer; transition: background 0.25s, color 0.25s, border-color 0.25s, transform 0.25s; white-space: nowrap; }
.btn:hover { background: var(--bronze); color: #120c08; }
.btn-solid { background: var(--bronze); color: #120c08; }
.btn-solid:hover { background: var(--bronze-hi); border-color: var(--bronze-hi); }
.btn .arrow { display: inline-block; width: 18px; height: 1.5px; background: currentColor; position: relative; transition: transform 0.25s; }
.btn .arrow::after { content: ''; position: absolute; right: 0; top: -4px; width: 8px; height: 8px; border-top: 1.5px solid currentColor; border-right: 1.5px solid currentColor; transform: rotate(45deg); transform-origin: center; }
.btn:hover .arrow { }
.btn-head { padding: 13px 20px; font-size: 0.76rem; }

/* ---------- type pieces ---------- */
.kicker { display: flex; align-items: center; gap: 14px; font: 500 0.82rem/1 var(--head); letter-spacing: 0.32em; text-transform: uppercase; color: var(--bronze); margin: 0 0 22px; }
.kicker::before { content: ''; width: 36px; height: 1px; background: var(--bronze); }
.display { font-size: clamp(2.7rem, 6.4vw, 5.6rem); line-height: 0.96; letter-spacing: 0.005em; }
.display .bronze { color: var(--bronze); display: block; }
.tagline { font: 500 clamp(0.95rem, 1.5vw, 1.2rem)/1.2 var(--head); letter-spacing: 0.34em; text-transform: uppercase; color: var(--white); margin: 26px 0 0; }
.lead { font-size: clamp(1.05rem, 1.35vw, 1.2rem); color: var(--grey); max-width: 34em; }
.h2 { font-size: clamp(1.7rem, 3vw, 2.5rem); letter-spacing: 0.04em; }

/* ---------- hero ---------- */
.hero { position: relative; overflow: hidden; background: var(--black); isolation: isolate; }
.hero-media { position: absolute; inset: 0; z-index: -2; }
.hero-media img { width: 100%; height: 100%; object-fit: cover; transform-origin: 70% 60%; }
.hero::before { content: ''; position: absolute; inset: 0; z-index: -1; background:
  linear-gradient(90deg, rgba(10,10,11,0.96) 0%, rgba(10,10,11,0.86) 30%, rgba(10,10,11,0.35) 58%, rgba(10,10,11,0) 78%),
  linear-gradient(0deg, rgba(10,10,11,1) 0%, rgba(10,10,11,0) 26%); }
.hero-inner { min-height: min(86vh, 820px); display: flex; flex-direction: column; justify-content: center; padding-top: 72px; padding-bottom: 96px; }
.hero-copy { max-width: 640px; }
.hero-copy .lead { margin: 28px 0 38px; }
.hero-sub { min-height: min(64vh, 620px); }
.hero-sub .hero-copy { max-width: 700px; }
@media (prefers-reduced-motion: no-preference) {
}

/* ---------- sections ---------- */
.section { padding: clamp(64px, 9vw, 120px) 0; position: relative; }
.section-tight { padding: clamp(40px, 6vw, 72px) 0; }

/* home: sector tiles */
.sectors { margin-top: -64px; position: relative; z-index: 2; padding-bottom: clamp(64px, 9vw, 120px); }
.tiles { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; list-style: none; margin: 0; padding: 0; }
.tile { position: relative; background: var(--char); border: 1px solid var(--line); display: flex; flex-direction: column; transition: border-color 0.3s, transform 0.4s cubic-bezier(0.2, 0.7, 0.2, 1); }
.tile:hover, .tile:focus-within { border-color: var(--bronze); }
.tile-img { aspect-ratio: 4 / 3; overflow: hidden; background: var(--char-2); }
.tile-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s cubic-bezier(0.2, 0.7, 0.2, 1); }
.tile:hover .tile-img img { }
.tile-body { padding: 22px 22px 26px; border-top: 2px solid var(--bronze); flex: 1; }
.tile h3 { font-size: 1.32rem; letter-spacing: 0.06em; line-height: 1.1; display: flex; justify-content: space-between; gap: 12px; }
.tile h3 a { text-decoration: none; }
.tile h3 a::before { content: ''; position: absolute; inset: 0; }
.tile .chev { flex: none; width: 10px; height: 10px; margin-top: 7px; border-top: 2px solid var(--bronze); border-right: 2px solid var(--bronze); transform: rotate(45deg); transition: transform 0.3s; }
.tile:hover .chev { }
.tile p { color: var(--grey); font-size: 0.98rem; margin: 12px 0 0; }

/* about: founder */
.founder { display: grid; grid-template-columns: minmax(260px, 0.9fr) 1.5fr minmax(220px, 0.8fr); gap: clamp(28px, 4vw, 56px); align-items: stretch; }
.portrait { position: relative; border: 1px solid var(--line); overflow: hidden; background: var(--char-2); }
.portrait::after { content: ''; position: absolute; inset: auto 0 0 0; height: 3px; background: var(--bronze); }
.founder h2 { font-size: clamp(2.2rem, 4vw, 3.4rem); margin-bottom: 26px; }
.founder-copy { align-self: center; }
.founder-copy p { color: var(--grey); font-size: 1.1rem; max-width: 32em; }
.creed { border: 1px solid var(--line); background: linear-gradient(160deg, var(--char-2), var(--black)); padding: 32px 28px; display: flex; flex-direction: column; justify-content: center; position: relative; }
.creed::before { content: ''; position: absolute; left: 0; top: 28px; bottom: 28px; width: 2px; background: var(--bronze); }
.creed p.creed-words { font: 700 clamp(1.5rem, 2.2vw, 1.9rem)/1.12 var(--head); text-transform: uppercase; letter-spacing: 0.06em; color: var(--bronze); margin: 0 0 18px; }
.creed p.creed-words span { display: block; }
.creed p:last-child { color: var(--grey); font-size: 0.96rem; margin: 0; }
.values { display: grid; grid-template-columns: repeat(3, 1fr); list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.values li { padding: 36px 32px; display: flex; align-items: center; gap: 22px; font: 600 clamp(1.05rem, 1.6vw, 1.35rem)/1.15 var(--head); letter-spacing: 0.14em; text-transform: uppercase; }
.values li + li { border-left: 1px solid var(--line); }

/* services: package strip */
.package-head { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: end; margin-bottom: 48px; }
.package-head p { color: var(--grey); margin: 0; font-size: 1.08rem; }
.steps { display: grid; grid-template-columns: 1fr 1fr 1.45fr 1fr; gap: 0; list-style: none; margin: 0; padding: 0; }
.step { position: relative; padding-right: 34px; }
.step:last-child { padding-right: 0; }
.step:not(:last-child)::after { content: ''; position: absolute; right: 11px; top: calc(clamp(150px, 15.5vw, 236px) / 2 - 6px); width: 11px; height: 11px; border-top: 2px solid var(--bronze); border-right: 2px solid var(--bronze); transform: rotate(45deg); }
.step figure { margin: 0; }
.step .img { height: clamp(150px, 15.5vw, 236px); overflow: hidden; border: 1px solid var(--line); background: var(--char-2); }
.step.key .img { border-color: rgba(212,136,63,0.6); }
.step figcaption { display: flex; gap: 12px; align-items: baseline; padding-top: 18px; border-top: 2px solid transparent; font: 600 1.05rem/1.15 var(--head); letter-spacing: 0.12em; text-transform: uppercase; }
.step figcaption .n { font-weight: 500; font-size: 0.8rem; color: var(--bronze); letter-spacing: 0.2em; }
.step.key figcaption { color: var(--bronze-hi); }
.scope-note { margin: 44px 0 0; padding-top: 22px; border-top: 1px solid var(--line); color: var(--grey-2); font-size: 0.95rem; text-align: center; }

/* projects */
.filters { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 40px; padding: 0; list-style: none; }
.filter { font: 500 0.8rem/1 var(--head); letter-spacing: 0.16em; text-transform: uppercase; padding: 14px 20px; background: transparent; color: var(--white); border: 1px solid var(--line); cursor: pointer; transition: border-color 0.2s, background 0.2s, color 0.2s; }
.filter:hover { border-color: var(--bronze); }
.filter[aria-pressed='true'] { background: var(--bronze); border-color: var(--bronze); color: #120c08; }
.gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.project { background: var(--char); border: 1px solid var(--line); }
.project .cap { display: flex; justify-content: space-between; padding: 16px 18px; font: 600 0.95rem var(--head); letter-spacing: 0.12em; text-transform: uppercase; border-top: 2px solid var(--bronze); }

/* team */
.team { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; list-style: none; margin: 0; padding: 0; }
.member { background: var(--char); border: 1px solid var(--line); display: flex; flex-direction: column; }
.member .face { aspect-ratio: 4 / 5; overflow: hidden; position: relative; background: var(--char-2); }
.member .face.role::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,10,11,0) 30%, rgba(10,10,11,0.9) 100%); }
.member .face .role-mark { position: absolute; left: 22px; bottom: 20px; z-index: 1; font: 700 3.6rem/1 var(--head); color: transparent; -webkit-text-stroke: 1.5px var(--bronze); letter-spacing: 0.04em; }
.member .body { padding: 22px 22px 26px; border-top: 2px solid var(--bronze); flex: 1; }
.member h2 { font-size: 1.3rem; letter-spacing: 0.08em; color: var(--bronze); }
.member .title { font: 500 0.92rem/1.3 var(--body); color: var(--bronze-hi); font-style: italic; margin: 6px 0 0; }
.member p.desc { color: var(--grey); font-size: 0.97rem; margin: 14px 0 0; }

/* contact */
.contact-grid { display: grid; grid-template-columns: 1fr minmax(380px, 520px); gap: clamp(36px, 6vw, 96px); align-items: start; }
.contact-intro { padding-top: 24px; }
.contact-intro .lead { margin: 26px 0 40px; }
.contact-val { color: var(--white); text-decoration: none; }
.contact-val:hover { color: var(--bronze); }
.contact-line { display: flex; align-items: center; gap: 18px; padding: 22px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); max-width: 420px; }
.contact-line .label { font: 500 0.78rem/1 var(--head); letter-spacing: 0.24em; color: var(--bronze); text-transform: uppercase; width: 64px; }
.contact-line a { font-size: 1.15rem; text-decoration: none; border-bottom: 1px solid rgba(212,136,63,0.5); }
.contact-line a:hover { color: var(--bronze-hi); }
.bid-card { background: rgba(14, 14, 15, 0.94); border: 1px solid var(--line); border-top: 3px solid var(--bronze); padding: clamp(26px, 3.6vw, 40px); box-shadow: 0 30px 80px rgba(0,0,0,0.55); }
.bid-card h2 { font-size: 1.7rem; letter-spacing: 0.1em; color: var(--bronze); }
.bid-card .sub { color: var(--grey); margin: 10px 0 26px; }
.field { margin-bottom: 18px; }
.field label, .upload-label { display: block; font: 500 0.86rem/1.2 var(--body); color: var(--white); margin-bottom: 8px; }
.field .req { color: var(--bronze); }
.field .opt { color: var(--grey-2); }
.field input { width: 100%; font: 400 1rem var(--body); color: #111; background: #f4f1ec; border: 2px solid #f4f1ec; padding: 12px 14px; border-radius: 0; transition: border-color 0.2s, box-shadow 0.2s; }
.field input:focus { outline: none; border-color: var(--bronze); box-shadow: 0 0 0 3px rgba(212,136,63,0.35); }
.field input[aria-invalid='true'] { border-color: var(--danger); }
.field .err { color: var(--danger); font-size: 0.88rem; margin: 6px 0 0; min-height: 0; }
.hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.drop { position: relative; border: 1.5px dashed rgba(212,136,63,0.65); padding: 26px 20px; text-align: center; transition: border-color 0.2s, background 0.2s; margin-bottom: 8px; }
.drop input[type='file'] { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; }
.drop:focus-within { outline: 2px solid var(--bronze-hi); outline-offset: 3px; }
.drop .t { font: 600 0.95rem/1.2 var(--head); letter-spacing: 0.14em; text-transform: uppercase; display: block; }
.drop .s { color: var(--grey); font-size: 0.9rem; display: block; margin-top: 6px; }
.drop .browse { color: var(--bronze-hi); text-decoration: underline; }
.files { list-style: none; margin: 10px 0 0; padding: 0; }
.files li { display: flex; align-items: center; gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--line); font-size: 0.92rem; }
.files li .nm { flex: 1; overflow-wrap: anywhere; }
.files li .sz { color: var(--grey-2); font-size: 0.85rem; }
.files li .bad { color: var(--danger); font-size: 0.85rem; }
.files button { background: none; border: 1px solid var(--line); color: var(--grey); font: 500 0.72rem var(--head); letter-spacing: 0.14em; text-transform: uppercase; padding: 6px 9px; cursor: pointer; }
.files button:hover { border-color: var(--bronze); color: var(--white); }
.submit { width: 100%; margin-top: 22px; }
.submit[disabled] { opacity: 0.6; cursor: progress; }
.status { margin-top: 16px; padding: 16px 18px; border: 1px solid var(--line); font-size: 0.95rem; }
.status[hidden] { display: none; }
.status.error { border-color: var(--danger); color: #ffd9d1; background: rgba(255, 143, 122, 0.07); }
.status.success { border-color: var(--bronze); background: rgba(212, 136, 63, 0.08); }
.status h3 { font-size: 1.15rem; letter-spacing: 0.1em; color: var(--bronze-hi); margin: 0 0 8px; }
.status p { margin: 0; color: var(--grey); }

/* ---------- footer ---------- */
.site-foot { border-top: 1px solid var(--line); background: var(--black); padding: 48px 0 40px; position: relative; }
.site-foot::before { content: ''; position: absolute; top: -1px; left: 0; right: 0; height: 1px; background: linear-gradient(90deg, rgba(212,136,63,0), rgba(212,136,63,0.5), rgba(212,136,63,0)); }
.foot-row { display: flex; align-items: center; justify-content: space-between; gap: 28px; flex-wrap: wrap; }
.foot-nav ul { list-style: none; display: flex; flex-wrap: wrap; gap: 8px 26px; margin: 0; padding: 0; }
.foot-nav a { font: 500 0.76rem/1 var(--head); letter-spacing: 0.16em; text-transform: uppercase; text-decoration: none; color: var(--grey); padding: 8px 0; display: block; }
.foot-nav a:hover { color: var(--bronze-hi); }
.copy { margin: 30px 0 0; padding-top: 22px; border-top: 1px solid var(--line); color: var(--grey-2); font-size: 0.85rem; }
.photo-credits { padding: 18px 0 22px; color: var(--grey-2); font-size: 0.78rem; line-height: 1.5; }
.photo-credits p { margin: 0; }
.photo-credits a, .copy .credits a { color: var(--grey); overflow-wrap: anywhere; }

/* ---------- responsive ---------- */
@media (max-width: 1180px) {
  .tiles { grid-template-columns: repeat(2, 1fr); }
  .team { grid-template-columns: repeat(2, 1fr); }
  .founder { grid-template-columns: minmax(220px, 0.9fr) 1.4fr; }
  .creed { grid-column: 1 / -1; }
  .steps { grid-template-columns: 1fr 1fr; row-gap: 34px; }
  .step:nth-child(2)::after { display: none; }
  .step:nth-child(2) { padding-right: 0; }
  .step .img { height: auto; aspect-ratio: 4 / 3; }
  .step:not(:last-child)::after { top: 34%; }
}
@media (max-width: 1000px) {
  .head-row { height: 72px; gap: 14px; }
  .menu-btn { display: inline-flex; align-items: center; gap: 10px; margin-left: auto; background: none; border: 1px solid var(--line); color: var(--white); font: 500 0.76rem/1 var(--head); letter-spacing: 0.18em; text-transform: uppercase; padding: 12px 14px; cursor: pointer; }
  .menu-btn .bars { width: 16px; height: 10px; border-top: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; position: relative; }
  .menu-btn .bars::after { content: ''; position: absolute; left: 0; right: 0; top: 3.5px; border-top: 1.5px solid currentColor; }
  .site-nav { position: absolute; top: 100%; left: 0; right: 0; background: rgba(10,10,11,0.98); border-bottom: 1px solid var(--line); display: none; margin: 0; }
  .site-nav.open { display: block; }
  .site-nav ul { flex-direction: column; gap: 0; padding: 8px var(--gutter) 20px; }
  .site-nav a { padding: 16px 0; font-size: 0.92rem; border-bottom: 1px solid var(--line); }
  .site-nav a::after { bottom: -1px; }
  .contact-grid { grid-template-columns: 1fr; }
  .package-head { grid-template-columns: 1fr; gap: 18px; }
}
@media (max-width: 760px) {
  body { font-size: 1rem; }
  .btn-head { padding: 11px 13px; font-size: 0.68rem; letter-spacing: 0.14em; }
  .btn-head .arrow { display: none; }
  .menu-btn { padding: 11px 11px; }
  .menu-btn .lbl { display: none; }
  /* heroes stack: picture first so the hard hat and the framing stay in view, then the words */
  .hero { display: flex; flex-direction: column; }
  .hero-media { position: relative; inset: auto; aspect-ratio: 4 / 3; order: -1; }
  .hero-media img { object-position: var(--focus, 70% 50%); }
  .hero::before { inset: auto 0 auto 0; top: 0; height: calc(100vw * 0.75); background: linear-gradient(0deg, rgba(10,10,11,1) 0%, rgba(10,10,11,0) 40%); }
  .hero-inner, .hero-sub { min-height: 0; padding-top: 0; padding-bottom: 56px; margin-top: -44px; }
  .display { font-size: clamp(2.5rem, 12vw, 3.4rem); }
  .tagline { letter-spacing: 0.24em; font-size: 0.95rem; }
  .sectors { margin-top: 0; }
  .tiles, .team, .gallery { grid-template-columns: 1fr; }
  .tile { flex-direction: row; }
  .tile .tile-img { width: 40%; aspect-ratio: auto; flex: none; }
  .tile-body { border-top: 0; border-left: 2px solid var(--bronze); padding: 18px; }
  .tile h3 { font-size: 1.1rem; }
  .tile p { font-size: 0.92rem; }
  .founder { grid-template-columns: 1fr; }
  .portrait { max-width: 420px; }
  .values { grid-template-columns: 1fr; }
  .values li + li { border-left: 0; border-top: 1px solid var(--line); }
  .values li { padding: 24px 4px; }
  .steps { grid-template-columns: 1fr; }
  .step { padding-right: 0; padding-bottom: 40px; }
  .step:not(:last-child)::after { display: block; right: auto; left: 50%; top: auto; bottom: 12px; transform: rotate(135deg); }
  .step:nth-child(2)::after { display: block; }
  .member { flex-direction: row; }
  .member .face { width: 38%; flex: none; aspect-ratio: auto; min-height: 190px; }
  .member .face .role-mark { font-size: 2.6rem; left: 14px; bottom: 12px; }
  .member .body { border-top: 0; border-left: 2px solid var(--bronze); padding: 18px; }
  .member h2 { font-size: 1.1rem; }
  .contact-grid { gap: 40px; }
  .bid-card { padding: 24px 20px; }
  .filters { gap: 8px; }
  .filter { padding: 12px 14px; font-size: 0.74rem; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}

/* ---------- per-page picture focus (used when heroes stack on phones) ---------- */
.focus-hat-home { --focus: 80% 72%; }
.focus-hat-about { --focus: 72% 80%; }
.focus-services { --focus: 62% 50%; }
.focus-projects { --focus: 70% 45%; }
.focus-team { --focus: 60% 40%; }
.focus-contact { --focus: 50% 50%; }
#limits { color: var(--grey-2); font-size: 0.86rem; margin: 6px 0 0; }
.contact-hero::before { background: linear-gradient(90deg, rgba(10,10,11,0.96) 0%, rgba(10,10,11,0.82) 42%, rgba(10,10,11,0.5) 100%), linear-gradient(0deg, rgba(10,10,11,1) 0%, rgba(10,10,11,0) 30%); }
@media (max-width: 760px) {
  .contact-hero .contact-body { padding-top: 0; margin-top: -44px; }
  .contact-hero::before { background: linear-gradient(0deg, rgba(10,10,11,1) 0%, rgba(10,10,11,0) 40%); }
}

/* ---------- this build: wordmark, placeholders, interim photo notes ---------- */

/* a clearly marked slot where the brief asks for a picture Viking has yet to supply */
.ph { width: 100%; height: 100%; min-height: 120px; display: flex; align-items: center; justify-content: center; text-align: center; padding: 16px; border: 1.5px dashed rgba(212,136,63,0.55); color: var(--grey); font: 500 0.82rem/1.4 var(--body);
  background: repeating-linear-gradient(135deg, var(--char-2) 0 14px, var(--char) 14px 28px); }
.ph span { max-width: 26em; background: rgba(10,10,11,0.82); padding: 8px 10px; }
.tile-img .ph, .step .img .ph { min-height: 0; }
.portrait .ph { aspect-ratio: 4 / 5; }
.member .face .ph { position: absolute; inset: 0; }

.photo-note { position: absolute; right: 12px; bottom: 12px; margin: 0; max-width: 30em; padding: 6px 10px; background: rgba(10,10,11,0.85); border: 1px dashed rgba(212,136,63,0.55); color: var(--grey); font-size: 0.78rem; line-height: 1.35; z-index: 3; }
.hero-media .photo-note { z-index: 3; }
.hero-media img { filter: brightness(0.82) contrast(1.08) saturate(0.9); }

/* home and about: the branded hard hat sits at the right of the hero */
.hero-inner { position: relative; }

.tagline-case { text-transform: none; letter-spacing: 0.06em; }
.founder-copy h2 .bronze { display: block; }
.contact-lines { list-style: none; margin: 0; padding: 0; }
.contact-line + .contact-line { border-top: 0; }
.contact-line .tbs { color: var(--grey); font-size: 0.95rem; }
.contact-body { padding-top: clamp(56px, 8vw, 110px); padding-bottom: clamp(56px, 8vw, 110px); }
.gallery { list-style: none; margin: 0; padding: 0; }
.gallery-note { color: var(--grey); margin: 0 0 24px; max-width: 52em; }
.project .ph { aspect-ratio: 4 / 3; height: auto; }
.project .cap { margin: 0; }
.project[hidden] { display: none; }
.member .face.role { display: flex; }
.member .face.role::after { background: linear-gradient(180deg, rgba(10,10,11,0) 30%, rgba(10,10,11,0.6) 100%); }
.privacy { color: var(--grey-2); font-size: 0.85rem; margin: 16px 0 0; }
.copy p { margin: 0 0 6px; }
.copy a { color: var(--grey); }
.steps { counter-reset: none; }
.step.key .img { border-width: 2px; }
@media (min-width: 1181px) { .step.key .img { height: clamp(190px, 19vw, 290px); margin-top: calc((clamp(150px, 15.5vw, 236px) - clamp(190px, 19vw, 290px)) / 2); } }

@media (max-width: 1000px) {
}
@media (max-width: 760px) {
  .photo-note { left: 8px; right: 8px; bottom: 52px; font-size: 0.72rem; }
  .hero-sub .hero-inner, .hero-inner { margin-top: 0; padding-top: 8px; }
  .contact-hero .contact-body { margin-top: 0; padding-top: 8px; }
  .head-row { gap: 10px; }
}
.hero-media picture, .tile-img picture { display: block; width: 100%; height: 100%; }
@media (min-width: 761px) { .photo-note { top: 14px; bottom: auto; } }
.portrait picture, .member .face picture { display: block; width: 100%; height: 100%; }
.portrait img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4 / 5; }
.member .face img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 25%; }

/* ---------- matching the approved mockup ---------- */
.display .nl { display: block; }
.ico { width: 34px; height: 34px; flex: none; fill: none; stroke: var(--bronze); stroke-width: 1.8; stroke-linejoin: round; stroke-linecap: round; }
.values li { justify-content: center; }
.contact-line .label { width: auto; display: inline-flex; }
.contact-line .label .ico { width: 30px; height: 30px; }
.package-head { grid-template-columns: 1fr; gap: 18px; max-width: 900px; margin-bottom: 40px; }
.creed { justify-content: flex-start; padding-top: 0; padding-left: 0; padding-right: 0; }
.creed::before { top: auto; bottom: 28px; height: calc(100% - 210px); }
.creed .creed-img { min-height: 0; height: 170px; margin-bottom: 26px; border-width: 1px; }
.creed p { padding: 0 28px; }
.ph b { color: var(--bronze-hi); font-weight: 600; }
.photo-note b { color: var(--bronze-hi); font-weight: 600; }
/* hard hat: shown no larger than the mockup crop's own pixels */
/* hero proportions closer to the mockup: compact sub-page heroes, wide two-line headlines */
.hero-sub { min-height: 0; }
.hero-sub .hero-inner { min-height: min(56vh, 540px); padding-bottom: 64px; }
.hero-sub .hero-copy { max-width: 900px; }
.hero-sub + .section { padding-top: clamp(40px, 5vw, 64px); }
@media (max-width: 760px) {
  .hero::before { display: none; }
  .hero-media::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(10,10,11,1) 0%, rgba(10,10,11,0) 45%); pointer-events: none; }
  .hero-sub .hero-inner { min-height: 0; padding-bottom: 36px; }
}
.hero-sub .display { font-size: clamp(2.5rem, 5.2vw, 4.6rem); }
.hero-media { overflow: hidden; }
.hero-about .hero-copy { max-width: 660px; }
.hero-about .display { font-size: clamp(2.7rem, 6.4vw, 5.6rem); }
@media (max-width: 760px) { .hero-about .display { font-size: clamp(2.5rem, 12vw, 3.4rem); } }


.gallery-empty-state { grid-column: 1 / -1; list-style: none; border: 1px solid var(--line); padding: 40px 24px; color: var(--grey); text-align: center; }
.gallery-empty-state p { margin: 0; }
.project picture, .project img { display: block; width: 100%; }
.project img { aspect-ratio: 449 / 223; object-fit: cover; height: auto; }
br.d { display: none; }
@media (min-width: 1001px) { br.d { display: inline; } }

/* ---------- base styles for pieces added with the mockup layout (all widths; desktop refines) ---------- */
.arw { width: 22px; height: 16px; flex: none; fill: none; stroke: var(--bronze); stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.tile h3 .arw { margin-top: 4px; }
.f-kick { display: block; font: 400 0.95rem/1.2 var(--head); letter-spacing: 0.22em; color: var(--bronze); }
.f-name { display: block; color: var(--bronze); margin-top: 4px; }
.tagline-case { margin: 16px 0 0; font-size: 1.1rem; }
.kick-rule { display: block; width: 120px; height: 3px; background: linear-gradient(90deg, var(--bronze), rgba(212,136,63,0.25)); margin-bottom: 18px; }
.package, .about-founder, .gallery-sec, .team-sec { padding: 56px 0; }
.package-title { font: 400 1.5rem/1.15 var(--head); letter-spacing: 0.2em; color: var(--bronze); }
.package-intro { margin: 14px 0 32px; color: var(--white); }
.about-founder .values { margin-top: 40px; }
.creed .creed-img { height: 170px; }
.creed-text { padding: 20px 28px 4px; }
.drop .lim { display: block; font-size: 0.82rem; color: var(--grey-2); margin-top: 6px; }
.drop-text { display: block; }
.project .cap { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.hero-projects .hero-media picture { display: block; height: 100%; }
@media (min-width: 1001px) {
  .hero-projects .hero-media { left: auto; width: 62%; }
  .hero-projects .hero-media img { object-position: 30% 50%; }
}


/* tablet: keep hero copy on a dark ground */
@media (min-width: 761px) and (max-width: 1000px) {
  .hero::before { background: linear-gradient(90deg, rgba(10,10,11,0.96) 0%, rgba(10,10,11,0.9) 55%, rgba(10,10,11,0.55) 80%, rgba(10,10,11,0.25) 100%), linear-gradient(0deg, rgba(10,10,11,1) 0%, rgba(10,10,11,0) 26%); }
  .hero-copy { max-width: 560px; }
}



/* ---------- rendered and mockup images (tools/render/, tools/mockup_crops.py) ---------- */
.step .img picture, .creed-img picture { display: block; width: 100%; height: 100%; }
.step .img img, .creed-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.project { position: relative; }
.project .ill-tag { position: absolute; left: 10px; top: 10px; z-index: 1; padding: 3px 8px; background: rgba(10,10,11,0.78); border: 1px solid rgba(212,136,63,0.5); color: #d9cfc4; font: 500 0.72rem/1.3 var(--body); letter-spacing: 0.06em; }
@media (max-width: 760px) {
  /* the mockup's hero pictures carry their subject on the right; on a phone show that side */
  .hero-media img[src*="/mockup/"] { object-position: 100% 50%; }
  /* the rendered Home and About heroes: keep the hat, at the right, in view */
  .hero-media img[src*="/shell/"] { object-position: 82% 50%; }
}

/* a picture cut from the design mockup carries a quiet mark in its top right corner, at every width */
.pic .photo-note, .plate .photo-note { left: auto; right: 8px; top: 8px; bottom: auto; max-width: none; padding: 2px 7px; font-size: 0.68rem; letter-spacing: 0.04em; color: #cfc6bb; background: rgba(10,10,11,0.72); border-color: rgba(212,136,63,0.45); }
.plate .photo-note { top: auto; bottom: 10px; }
.pic { position: relative; }

.status.pending { border-color: var(--line); background: rgba(255,255,255,0.03); }

.step .img { position: relative; }
.hero-sub .lead br.d { display: none; }
@media (max-width: 1000px) and (min-width: 761px) { .steps { column-gap: 34px; } .step { padding-right: 0; } .step:not(:last-child)::after { display: none; } .step .img { aspect-ratio: 4 / 3; height: auto; } }


/* the rendered heroes are graded already: no extra darkening beyond the hero's own left gradient */
.hero-media img[src*="/shell/"] { filter: contrast(1.04) saturate(1.06); }

/* ---------- loops and the 3D model viewer (site/js/viewer.js, site/js/3d/) ---------- */
.tile-img { position: relative; }

dialog.vw { width: 100vw; height: 100vh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: #0a0a0b; color: #f3eee8; }
dialog.vw::backdrop { background: #0a0a0b; }
.vw-body { position: absolute; inset: 0; display: grid; grid-template-columns: 1fr 360px; }
.vw-stage { position: relative; min-height: 0; touch-action: none; }
.vw-stage canvas { display: block; width: 100%; height: 100%; }
.vw-panel { overflow: auto; padding: 22px 22px 28px; border-left: 2px solid var(--bronze); background: #0f0f10; }
.vw-kicker { margin: 0; color: var(--bronze); font: 600 0.76rem/1 var(--head); letter-spacing: 0.18em; text-transform: uppercase; }
.vw-title { margin: 10px 0 6px; font: 600 1.35rem/1.2 var(--head); letter-spacing: 0.03em; text-transform: uppercase; }
.vw-note { margin: 0 0 14px; color: var(--grey); font-size: 0.86rem; }
.vw-facts { display: grid; grid-template-columns: auto 1fr; gap: 4px 14px; margin: 0 0 16px; font-size: 0.92rem; }
.vw-facts dt { color: #8f877e; font: 500 0.76rem/1.7 var(--head); letter-spacing: 0.12em; text-transform: uppercase; }
.vw-facts dd { margin: 0; }
.vw-row { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 12px; }
.vw-btn { padding: 9px 12px; background: transparent; color: #f3eee8; border: 1px solid var(--line); font: 500 0.78rem/1 var(--head); letter-spacing: 0.12em; text-transform: uppercase; cursor: pointer; }
.vw-btn:hover { border-color: var(--bronze); }
.vw-btn.on { background: var(--bronze); border-color: var(--bronze); color: #120c08; }
.vw-label { display: flex; align-items: center; gap: 12px; margin: 0 0 12px; font: 500 0.78rem/1 var(--head); letter-spacing: 0.12em; text-transform: uppercase; }
.vw-range { flex: 1; accent-color: var(--bronze); }
.vw-sub { margin: 8px 0 6px; color: #8f877e; font: 500 0.76rem/1 var(--head); letter-spacing: 0.14em; text-transform: uppercase; }
.vw-layers { margin: 0 0 18px; padding-left: 22px; font-size: 0.9rem; color: #6f6860; }
.vw-layers li { padding: 2px 0; }
.vw-layers li.on { color: #e6dfd7; }
.vw-layers li.now { color: var(--bronze-hi); }
.vw-bid { display: inline-flex; }
.vw-close { position: absolute; z-index: 3; left: 12px; top: 12px; width: 44px; height: 44px; background: rgba(10,10,11,0.85); border: 1px solid rgba(212,136,63,0.6); color: #f3eee8; font: 400 1.7rem/1 var(--body); cursor: pointer; }
.vw-close:hover { background: var(--bronze); color: #0a0a0b; }
.vw-loading, .vw-error { position: absolute; inset: 0; display: grid; place-items: center; margin: 0; color: var(--grey); }
.vw-error { color: #f3c9c6; }
@media (max-width: 900px) {
  .vw-body { grid-template-columns: 1fr; grid-template-rows: 55vh 1fr; }
  .vw-panel { border-left: 0; border-top: 2px solid var(--bronze); }
}

.tile-img { position: relative; }
.member .bio { margin: 10px 0 12px; color: var(--grey); font-size: 0.95rem; line-height: 1.5; }

.project { display: flex; flex-direction: column; }
.project .blurb { margin: 0; padding: 0 18px 16px 21px; color: var(--grey); font-size: 0.95rem; line-height: 1.45; }
@media (min-width: 1001px) { .hero-projects .hero-media { -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 26%); mask-image: linear-gradient(90deg, transparent 0, #000 26%); } }

.project-img { position: relative; }
.hero-acts { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }

.project-img { overflow: hidden; }

@media (max-width: 400px) { .tiles { grid-template-columns: minmax(0, 1fr); } .tile-body { min-width: 0; overflow-wrap: anywhere; } }
.wrap > h1.display { margin-left: 0; }


/* ---------- phone and tablet: each design line runs on as plain text ---------- */
@media (max-width: 1000px) { .ln { display: inline; } .lu { text-transform: uppercase; } .chrome { color: var(--white); } .copper, .bronzetext { color: var(--bronze); } .soft { color: #cbc7c2; } .tile-card, .rule, .arw { display: none; } .pic img { width: 100%; height: auto; } .plate img { width: 100%; height: 100%; object-fit: cover; } .ln { white-space: normal; } .values { flex-wrap: wrap; } .values li { min-width: 0; flex: 1 1 200px; } .hero-projects .hero-inner { padding-bottom: 0; } .filters { margin-bottom: 20px; } }
/* ---------- no motion anywhere ---------- */
*, *::before, *::after { transition: none !important; animation: none !important; }
html { scroll-behavior: auto; overscroll-behavior: none; }
/* ---------- the logo ---------- */
.brand { display: inline-flex; align-items: center; text-decoration: none; }
.logo-full { display: block; height: 58px; width: auto; flex: none; }
.site-foot .logo-full { height: 52px; }
.ico { width: 40px; height: 40px; flex: none; fill: none; stroke: var(--bronze); stroke-width: 1.8; }

/* ===== desktop layer (tools/approved_layout.py) ===== */
:root { --type: 0.75; }
@media (min-width: 1001px) { :root { --u: min(calc(100vw / 1440), calc(100vh / 921.4), calc(1920px / 1440)); } }
@media (min-width: 1001px) {
:root { --fu: calc(var(--u) * var(--type)); }
html { background: #05090a; }
body { width: calc(1440 * var(--u)); margin: 0 auto; }
body { background: #05090a; position: relative; }
.site-head { position: absolute; left: 0; top: 0; width: 100%; height: calc(124.6 * var(--u)); background: #080507; border-bottom: calc(2 * var(--u)) solid #4a3220; backdrop-filter: none; -webkit-backdrop-filter: none; }
.site-head::after, .menu-btn, .btn-head .arrow { display: none; }
.head-row { display: block; max-width: none; height: 100%; padding: 0; position: static; }
.site-head .brand { position: absolute; display: block; left: calc(44.5 * var(--u)); top: calc(9 * var(--u)); }
.logo-full { height: calc(106 * var(--u)); width: auto; }
.site-nav { position: static; margin: 0; }
.site-nav ul { display: flex; justify-content: space-between; position: absolute; top: calc(42 * var(--u)); }
.site-nav li { position: static; text-align: center; }
.site-nav a { font: 500 calc(25 * var(--fu))/1 var(--head); letter-spacing: calc(2 * var(--u)); padding: calc(8 * var(--u)) 0 calc(9 * var(--u)); white-space: nowrap; }
.site-nav a::after { height: calc(3 * var(--u)); bottom: 0; left: calc(-2 * var(--u)); right: calc(-2 * var(--u)); }
.site-nav a[aria-current='page'] { color: var(--bronze); }
.btn-head { position: absolute; top: calc(28 * var(--u)); height: calc(62 * var(--u)); padding: 0; border: calc(3 * var(--u)) solid var(--bronze); font: 500 calc(25 * var(--fu))/1 var(--head); letter-spacing: calc(3 * var(--u)); }

main { display: block; position: relative; overflow: hidden; }
.hero, .hero-inner, .hero-copy, .hero-acts, .sectors, .sectors .wrap, .about-founder, .about-founder .wrap, .founder, .founder-copy, .creed, .creed-text, .package, .package .wrap, .gallery-sec, .gallery-sec .wrap, .team-sec, .team-sec .wrap, .contact-body, .contact-grid, .contact-intro, .contact-lines, .contact-line, .values, .values li, .steps, .step, .step figure, .tiles, .tile, .team, .member, .member .body, .tile-body { position: static; display: block; max-width: none; margin: 0; padding: 0; background: none; border: 0; min-height: 0; height: auto; width: auto; list-style: none; }
.hero::before, .hero-media::after { display: none; }
.plate, .pic, .ln, .rule, .tile-card, .hero-home .btn, .hero-services .btn, .arw, .values .ico, .contact-line .ico, .filter, .bid-card, .gallery { position: absolute; display: block; }
.plate { margin: 0; z-index: 0; }
.pic picture, .pic img { display: block; width: 100%; height: 100%; object-fit: cover; }
.pic { z-index: 1; overflow: hidden; }
.ln { z-index: 2; white-space: nowrap; line-height: normal; text-transform: none; color: var(--white); transform-origin: 0 0; }
.lu { text-transform: uppercase; }
.chrome { background: linear-gradient(180deg, #ededed 10%, #f6f6f5 30%, #f3f3f3 48%, #e9eaeb 60%, #d8d7d8 72%, #c6c5c6 86%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.copper { background: linear-gradient(180deg, #f6994c 12%, #f4995a 25%, #f5944f 37%, #ec8b4a 49%, #dd8140 62%, #ce7438 74%, #c0672d 86%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.soft { color: #cbc7c2; }
.bronzetext { color: var(--bronze); }
h1, h2, h3, .display { font: inherit; letter-spacing: 0; margin: 0; }
.hero-home .btn, .hero-services .btn { z-index: 2; padding: 0; border: 0; background: var(--bronze); color: #15100b; font: 500 calc(30 * var(--fu))/1 var(--head); letter-spacing: calc(4.4 * var(--u)); gap: calc(26 * var(--u)); justify-content: center; display: flex; align-items: center; }
.btn .arrow { width: calc(30 * var(--u)); height: calc(2.5 * var(--u)); }
.arw { fill: none; stroke: var(--bronze); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; z-index: 2; margin: 0; }
.tile-card { background: #0b0b0c; border: 1px solid #1d1d1f; z-index: 0; }
.rule { z-index: 2; background: #8a5a2e; }
.kick-rule { background: linear-gradient(90deg, var(--bronze), rgba(212,136,63,.25)); }
.values .ico, .contact-line .ico { color: var(--bronze); stroke: var(--bronze); fill: none; stroke-width: 1.5; z-index: 2; margin: 0; }
.filters { position: static; list-style: none; margin: 0; padding: 0; display: block; }
.filter { z-index: 2; margin: 0; padding: 0; border: calc(2 * var(--u)) solid #3a3a3c; background: #08090a; color: var(--white); font: 500 calc(26 * var(--fu))/1 var(--head); letter-spacing: calc(2 * var(--u)); cursor: pointer; }
.filter[aria-pressed='true'] { background: var(--bronze); border-color: var(--bronze); color: #15100b; }
.gallery { display: grid; grid-template-columns: repeat(3, 1fr); column-gap: calc(22 * var(--u)); row-gap: calc(19 * var(--u)); grid-auto-rows: calc(287 * var(--u)); z-index: 2; list-style: none; margin: 0; padding: 0; }
.project { background: #0b0b0c; border: 1px solid #1d1d1f; display: flex; flex-direction: column; margin: 0; }
.project .pic { position: static; flex: 1; min-height: 0; }
.project .cap { margin: 0; height: calc(60 * var(--u)); flex: none; display: flex; align-items: center; justify-content: space-between; padding: 0 calc(16 * var(--u)) 0 calc(18 * var(--u)); font: 500 calc(29 * var(--fu))/1 var(--head); letter-spacing: calc(1.7 * var(--u)); text-transform: uppercase; color: var(--white); }
.project .arw { position: static; width: calc(28 * var(--u)); height: calc(20 * var(--u)); }
.contact-line .tbs { position: absolute; z-index: 2; font: 400 calc(21 * var(--fu))/1.4 var(--body); color: var(--grey); display: flex; align-items: center; }
.bid-card { z-index: 3; background: #08090a; border: calc(2 * var(--u)) solid #4a4a4c; padding: calc(42 * var(--u)) calc(39 * var(--u)) 0; margin: 0; box-shadow: none; }
.bid-card h2 { font: 500 calc(38 * var(--fu))/1 var(--head); letter-spacing: calc(5 * var(--u)); color: var(--bronze); text-transform: uppercase; }
.bid-card .sub { font: 400 calc(26 * var(--fu))/1 var(--body); margin: calc(21 * var(--u)) 0 0; color: var(--white); }
.bid-card .field { margin: 0; }
.bid-card .field label { display: block; font: 400 calc(25 * var(--fu))/1 var(--body); margin: calc(21 * var(--u)) 0 0; height: calc(27 * var(--u)); color: #dcd8d3; }
.bid-card .field:first-of-type label { margin-top: calc(32 * var(--u)); }
.bid-card .field input { display: block; height: calc(56 * var(--u)); margin-top: calc(10 * var(--u)); border: 0; border-radius: calc(3 * var(--u)); width: 100%; background: #fff; padding: 0 calc(12 * var(--u)); font-size: calc(24 * var(--fu)); }
.bid-card .drop { margin-top: calc(40 * var(--u)); height: calc(186 * var(--u)); padding: 0 0 0 calc(84 * var(--u)); border: calc(2 * var(--u)) dashed #8a8580; display: flex; align-items: center; gap: calc(37 * var(--u)); text-align: left; }
.bid-card .drop .ico { width: calc(94 * var(--u)); height: calc(76 * var(--u)); stroke-width: 1.6; stroke: var(--bronze); fill: none; flex: none; }
.bid-card .drop .t { display: block; font: 600 calc(26 * var(--fu))/1 var(--body); text-transform: none; letter-spacing: 0; }
.bid-card .drop .s { display: block; font-size: calc(20 * var(--fu)); line-height: calc(28 * var(--u)); margin-top: calc(10 * var(--u)); color: #bfbab4; }
.bid-card .drop .lim { display: none; }
.bid-card .submit { width: 100%; height: calc(97 * var(--u)); margin-top: calc(29 * var(--u)); font: 500 calc(30 * var(--fu))/1 var(--head); letter-spacing: calc(4.4 * var(--u)); border: 0; }
.site-foot { position: relative; }
.photo-credits .wrap { max-width: none; padding: 0 calc(66 * var(--u)); }
.photo-credits { padding: calc(14 * var(--u)) 0 calc(18 * var(--u)); font-size: calc(15 * var(--fu)); }
.site-foot .wrap { max-width: none; padding: calc(40 * var(--u)) calc(66 * var(--u)); }
.site-foot .brand { display: inline-block; }
.site-foot .logo-full { height: calc(84 * var(--u)); }
main.nf { height: auto; padding: calc(190 * var(--u)) calc(68 * var(--u)) calc(120 * var(--u)); }
main.nf .display { font: 700 calc(90 * var(--fu))/1 var(--head); text-transform: uppercase; }
.values .ico, .contact-line .ico { stroke-width: 2.2; }
.contact-line .tbs { font-size: calc(26 * var(--fu)); }
.project .cap { font-weight: 500; }
main .plate { right: auto; bottom: auto; mask: none; -webkit-mask: none; }
.creed::before, .creed::after, .hero-projects::after, .hero-projects::before { display: none; content: none; }
.site-nav a[aria-current='page']::after { transform: scaleX(1); }
.site-nav a:hover::after { transform: scaleX(1); }
.arw { stroke-width: 2.8; }
main .hero-media { -webkit-mask-image: none; mask-image: none; }
main .plate img, main .pic img { filter: none; object-position: 50% 50%; }
main .pic.brent img { object-fit: cover; object-position: 50% 12%; }
main .plate { background: #05090a; overflow: hidden; }
main .plate picture { position: absolute; right: 0; top: 0; width: 70%; height: 100%; display: block; }
main .plate img { width: 100%; height: 100%; object-fit: cover; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 40%); mask-image: linear-gradient(90deg, transparent 0, #000 40%); }
main .contact-plate picture { height: 33%; }
.values .ico, .contact-line .ico { position: absolute; display: block; }
main .plate::before { content: ''; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, #05090a 0, rgba(5,9,10,.86) 52%, rgba(5,9,10,.62) 63%, rgba(5,9,10,0) 80%); }
main .contact-plate img { -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 40%), linear-gradient(180deg, #000 45%, transparent 100%); -webkit-mask-composite: source-in; mask-image: linear-gradient(90deg, transparent 0, #000 40%), linear-gradient(180deg, #000 45%, transparent 100%); mask-composite: intersect; }
main .contact-plate::before { display: none; }

/* type and effects, sampled from brief/approved-sheet-4x.png (2026-11-04) */
/* the hero headlines sit on a soft dark shadow, as in the design */
.hero .ln.chrome, .hero .ln.copper, .contact-hero .ln.chrome, .contact-hero .ln.copper { filter: drop-shadow(0 calc(3 * var(--u)) calc(5 * var(--u)) rgba(0,0,0,.75)); }
.hero .ln.white, .hero .ln.bronzetext { text-shadow: 0 calc(2 * var(--u)) calc(6 * var(--u)) rgba(0,0,0,.8); }
.hero-home .btn, .hero-services .btn, .bid-card .submit { font-weight: 600; box-shadow: 0 calc(6 * var(--u)) calc(18 * var(--u)) rgba(0,0,0,.45); }
.btn-head { font-weight: 600; }
.tile-card, .project, .bid-card { box-shadow: 0 calc(10 * var(--u)) calc(26 * var(--u)) rgba(0,0,0,.6); }
.project .cap { font-weight: 600; }
/* a picture cut from the design carries the design's own darkening: shown whole, with no extra fade */
main .plate.k-placeholder picture { width: 100%; }
main .plate.k-placeholder img { -webkit-mask-image: none; mask-image: none; }
main .plate.k-placeholder::before { display: none; }
span.filter { display: flex; align-items: center; justify-content: center; cursor: default; }
span.filter:hover { border-color: #3a3a3c; }
.contact-line a.contact-val { color: var(--white); text-decoration: none; border-bottom: 0; font-size: calc(32.12 * var(--fu)); line-height: 1.3; }
.contact-line a.contact-val:hover { color: var(--bronze); }
main .hero-media.home-plate img { object-position: 100% 50%; }

body.page-home .site-nav ul{left:calc(547.8 * var(--u));width:calc(589.7 * var(--u))}
body.page-home .btn-head{left:calc(1204.3 * var(--u));width:calc(198.2 * var(--u))}
body.page-about .site-nav ul{left:calc(555.9 * var(--u));width:calc(592.3 * var(--u))}
body.page-about .btn-head{left:calc(1204.9 * var(--u));width:calc(197.4 * var(--u))}
body.page-services .site-nav ul{left:calc(484.1 * var(--u));width:calc(620.8 * var(--u))}
body.page-services .btn-head{left:calc(1196.3 * var(--u));width:calc(204.3 * var(--u))}
body.page-projects .site-nav ul{left:calc(547.8 * var(--u));width:calc(597.4 * var(--u))}
body.page-projects .btn-head{left:calc(1205.9 * var(--u));width:calc(198.1 * var(--u))}
body.page-team .site-nav ul{left:calc(555.1 * var(--u));width:calc(594.6 * var(--u))}
body.page-team .btn-head{left:calc(1204.9 * var(--u));width:calc(197.4 * var(--u))}
body.page-contact .site-nav ul{left:calc(479.5 * var(--u));width:calc(621.6 * var(--u))}
body.page-contact .btn-head{left:calc(1196.3 * var(--u));width:calc(204.3 * var(--u))}
body.page-home main{height:calc(1550 * var(--u))}
body.page-about main{height:calc(1550 * var(--u))}
body.page-services main{height:calc(1550 * var(--u))}
body.page-projects main{height:calc(1298 * var(--u))}
body.page-team main{height:calc(1298 * var(--u))}
body.page-contact main{height:calc(1298 * var(--u))}
main .hero-media.home-plate{left:calc(0.0 * var(--u));top:calc(124.6 * var(--u));width:calc(1440.0 * var(--u));height:calc(796.8 * var(--u))}
main .hero-media.about-plate{left:calc(0.0 * var(--u));top:calc(126.1 * var(--u));width:calc(1440.0 * var(--u));height:calc(712.7 * var(--u))}
main .hero-media.services-plate{left:calc(0.0 * var(--u));top:calc(125.6 * var(--u));width:calc(1440.0 * var(--u));height:calc(747.7 * var(--u))}
main .hero-media.projects-plate{left:calc(0.0 * var(--u));top:calc(118.8 * var(--u));width:calc(1440.0 * var(--u));height:calc(553.4 * var(--u))}
main .hero-media.team-plate{left:calc(0.0 * var(--u));top:calc(120.2 * var(--u));width:calc(1440.0 * var(--u));height:calc(431.1 * var(--u))}
main .hero-media.contact-plate{left:calc(0.0 * var(--u));top:calc(122.7 * var(--u));width:calc(1440.0 * var(--u));height:calc(1185.9 * var(--u))}
.i-tile-custom{left:calc(25.4 * var(--u));top:calc(944.5 * var(--u));width:calc(317.3 * var(--u));height:calc(281.0 * var(--u))}
.i-tile-production{left:calc(365.1 * var(--u));top:calc(944.5 * var(--u));width:calc(321.6 * var(--u));height:calc(281.0 * var(--u))}
.i-tile-multifamily{left:calc(709.1 * var(--u));top:calc(944.5 * var(--u));width:calc(333.9 * var(--u));height:calc(281.0 * var(--u))}
.i-tile-commercial{left:calc(1066.2 * var(--u));top:calc(944.5 * var(--u));width:calc(340.4 * var(--u));height:calc(281.0 * var(--u))}
.i-about-portrait{left:calc(51.3 * var(--u));top:calc(874.7 * var(--u));width:calc(325.5 * var(--u));height:calc(477.3 * var(--u))}
.i-about-flag{left:calc(1082.2 * var(--u));top:calc(891.6 * var(--u));width:calc(302.1 * var(--u));height:calc(174.5 * var(--u))}
.i-step-foundations{left:calc(55.5 * var(--u));top:calc(1162.5 * var(--u));width:calc(301.6 * var(--u));height:calc(201.5 * var(--u))}
.i-step-masonry{left:calc(428.6 * var(--u));top:calc(1162.5 * var(--u));width:calc(258.5 * var(--u));height:calc(201.5 * var(--u))}
.i-step-framing{left:calc(758.7 * var(--u));top:calc(1162.5 * var(--u));width:calc(260.7 * var(--u));height:calc(201.5 * var(--u))}
.i-step-shell{left:calc(1088.0 * var(--u));top:calc(1162.5 * var(--u));width:calc(305.2 * var(--u));height:calc(201.5 * var(--u))}
.i-gallery-custom{left:calc(25.4 * var(--u));top:calc(678.7 * var(--u));width:calc(450.5 * var(--u));height:calc(223.1 * var(--u))}
.i-gallery-production{left:calc(497.6 * var(--u));top:calc(678.0 * var(--u));width:calc(441.9 * var(--u));height:calc(223.1 * var(--u))}
.i-gallery-multifamily{left:calc(960.5 * var(--u));top:calc(678.7 * var(--u));width:calc(455.6 * var(--u));height:calc(223.1 * var(--u))}
.i-gallery-commercial{left:calc(25.4 * var(--u));top:calc(983.7 * var(--u));width:calc(450.5 * var(--u));height:calc(225.3 * var(--u))}
.i-gallery-foundations{left:calc(497.6 * var(--u));top:calc(982.9 * var(--u));width:calc(441.9 * var(--u));height:calc(226.0 * var(--u))}
.i-gallery-framing{left:calc(961.2 * var(--u));top:calc(982.9 * var(--u));width:calc(454.9 * var(--u));height:calc(226.0 * var(--u))}
.i-team-brent{left:calc(33.0 * var(--u));top:calc(554.3 * var(--u));width:calc(333.6 * var(--u));height:calc(349.0 * var(--u))}
.i-team-sales{left:calc(391.5 * var(--u));top:calc(554.3 * var(--u));width:calc(321.1 * var(--u));height:calc(349.0 * var(--u))}
.i-team-pm{left:calc(737.6 * var(--u));top:calc(554.3 * var(--u));width:calc(331.4 * var(--u));height:calc(349.0 * var(--u))}
.i-team-field{left:calc(1093.9 * var(--u));top:calc(554.3 * var(--u));width:calc(314.5 * var(--u));height:calc(349.0 * var(--u))}
.hero-home .btn{left:calc(66.3 * var(--u));top:calc(748.5 * var(--u));width:calc(387.09999999999997 * var(--u));height:calc(76.79999999999995 * var(--u))}
.hero-services .btn{left:calc(69.9 * var(--u));top:calc(754.6 * var(--u));width:calc(397.9 * var(--u));height:calc(77.39999999999998 * var(--u))}
.tile:nth-child(1) .tile-card{left:calc(27.2 * var(--u));top:calc(1224.6 * var(--u));width:calc(315.6 * var(--u));height:calc(235.80000000000018 * var(--u))}
.tile:nth-child(2) .tile-card{left:calc(365.8 * var(--u));top:calc(1224.6 * var(--u));width:calc(321.8 * var(--u));height:calc(235.80000000000018 * var(--u))}
.tile:nth-child(3) .tile-card{left:calc(709.1 * var(--u));top:calc(1224.6 * var(--u));width:calc(333.9999999999999 * var(--u));height:calc(235.80000000000018 * var(--u))}
.tile:nth-child(4) .tile-card{left:calc(1066.1 * var(--u));top:calc(1224.6 * var(--u));width:calc(340.20000000000005 * var(--u));height:calc(235.80000000000018 * var(--u))}
.tile:nth-child(1) .arw{left:calc(292.1 * var(--u));top:calc(1256.1 * var(--u));width:calc(30.69999999999999 * var(--u));height:calc(21.5 * var(--u))}
.tile:nth-child(2) .arw{left:calc(636.1 * var(--u));top:calc(1256.1 * var(--u));width:calc(30.699999999999932 * var(--u));height:calc(21.5 * var(--u))}
.tile:nth-child(3) .arw{left:calc(993.2 * var(--u));top:calc(1256.1 * var(--u));width:calc(30.699999999999932 * var(--u));height:calc(21.5 * var(--u))}
.tile:nth-child(4) .arw{left:calc(1355.6 * var(--u));top:calc(1256.1 * var(--u));width:calc(30.700000000000045 * var(--u));height:calc(21.5 * var(--u))}
.step:nth-child(1) .arw{left:calc(373.4 * var(--u));top:calc(1255.5 * var(--u));width:calc(35.60000000000002 * var(--u));height:calc(26.299999999999955 * var(--u))}
.step:nth-child(2) .arw{left:calc(703.9 * var(--u));top:calc(1255.5 * var(--u));width:calc(35.700000000000045 * var(--u));height:calc(26.299999999999955 * var(--u))}
.step:nth-child(3) .arw{left:calc(1035.3 * var(--u));top:calc(1255.5 * var(--u));width:calc(35.600000000000136 * var(--u));height:calc(26.299999999999955 * var(--u))}
.kick-rule{left:calc(70.1 * var(--u));top:calc(181.7 * var(--u));width:calc(182.6 * var(--u));height:calc(3.1000000000000227 * var(--u))}
.creed-rule{left:calc(1086.7 * var(--u));top:calc(1064.7 * var(--u));width:calc(4.7000000000000455 * var(--u));height:calc(310.89999999999986 * var(--u))}
.values-rule{left:calc(52.2 * var(--u));top:calc(1402.8 * var(--u));width:calc(1333.0 * var(--u));height:calc(2.2999999999999545 * var(--u))}
.v-sep-1{left:calc(446.3 * var(--u));top:calc(1437.8 * var(--u));width:calc(2.3000000000000114 * var(--u));height:calc(93.29999999999995 * var(--u))}
.v-sep-2{left:calc(933.6 * var(--u));top:calc(1437.8 * var(--u));width:calc(2.3999999999999773 * var(--u));height:calc(93.29999999999995 * var(--u))}
.values .ico-1{left:calc(67.8 * var(--u));top:calc(1441.7 * var(--u));width:calc(69.89999999999999 * var(--u));height:calc(87.79999999999995 * var(--u))}
.values .ico-2{left:calc(548.1 * var(--u));top:calc(1441.7 * var(--u));width:calc(85.5 * var(--u));height:calc(87.79999999999995 * var(--u))}
.values .ico-3{left:calc(1023.8 * var(--u));top:calc(1441.7 * var(--u));width:calc(107.29999999999995 * var(--u));height:calc(83.09999999999991 * var(--u))}
.contact-line:nth-child(1) .ico{left:calc(59.9 * var(--u));top:calc(707.4 * var(--u));width:calc(68.1 * var(--u));height:calc(48.80000000000007 * var(--u))}
.contact-line:nth-child(2) .ico{left:calc(63.8 * var(--u));top:calc(805.8 * var(--u));width:calc(62.7 * var(--u));height:calc(61.90000000000009 * var(--u))}
.contact-line:nth-child(3) .ico{left:calc(63.0 * var(--u));top:calc(917.2 * var(--u));width:calc(61.900000000000006 * var(--u));height:calc(86.69999999999993 * var(--u))}
.filter-1{left:calc(63.3 * var(--u));top:calc(577.4 * var(--u));width:calc(303.3 * var(--u));height:calc(69.10000000000002 * var(--u))}
.filter-2{left:calc(385.0 * var(--u));top:calc(577.4 * var(--u));width:calc(258.0 * var(--u));height:calc(69.10000000000002 * var(--u))}
.filter-3{left:calc(662.2 * var(--u));top:calc(577.4 * var(--u));width:calc(258.0 * var(--u));height:calc(69.10000000000002 * var(--u))}
.filter-4{left:calc(941.7 * var(--u));top:calc(577.4 * var(--u));width:calc(257.29999999999995 * var(--u));height:calc(69.10000000000002 * var(--u))}
.gallery{left:calc(24.4 * var(--u));top:calc(677.7 * var(--u));width:calc(1392.7 * var(--u));grid-template-columns:calc(450.5 * var(--u)) calc(441.9 * var(--u)) calc(455.6 * var(--u));column-gap:calc(21.35 * var(--u));row-gap:calc(18 * var(--u));grid-auto-rows:calc(287.0 * var(--u))}
.project .pic{height:calc(223.1 * var(--u));flex:none}
.bid-card{left:calc(696.2 * var(--u));top:calc(244.5 * var(--u));width:calc(702.8999999999999 * var(--u));height:calc(990.9000000000001 * var(--u))}
.contact-rule{left:calc(64.5 * var(--u));top:calc(1092.2 * var(--u));width:calc(582.2 * var(--u));height:calc(3.099999999999909 * var(--u))}
.contact-line:nth-child(2) .tbs{left:calc(176.0 * var(--u));top:calc(827.4 * var(--u));width:calc(464.5 * var(--u));height:calc(31.0 * var(--u))}
.contact-line:nth-child(3) .tbs{left:calc(176.0 * var(--u));top:calc(934.3 * var(--u));width:calc(464.5 * var(--u));height:calc(30.90000000000009 * var(--u))}
.t-h-t{left:calc(68.81 * var(--u));top:calc(458.11 * var(--u));font-size:calc(46.02 * var(--fu));letter-spacing:calc(6.85 * var(--u));font-family:var(--head);font-weight:600;}
.t-h-1{left:calc(67.36 * var(--u));top:calc(548.97 * var(--u));font-size:calc(30.75 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-h-2{left:calc(68.81 * var(--u));top:calc(589.01 * var(--u));font-size:calc(30.61 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-h-3{left:calc(68.81 * var(--u));top:calc(629.75 * var(--u));font-size:calc(30.03 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-h-4{left:calc(68.81 * var(--u));top:calc(671.40 * var(--u));font-size:calc(30.70 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-ta-1{left:calc(48.53 * var(--u));top:calc(1239.98 * var(--u));font-size:calc(39.04 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--head);font-weight:600;transform:scaleX(1.0366);}
.t-ta-2{left:calc(48.53 * var(--u));top:calc(1279.05 * var(--u));font-size:calc(40.65 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--head);font-weight:600;transform:scaleX(1.0064);}
.t-tb-1{left:calc(388.25 * var(--u));top:calc(1239.98 * var(--u));font-size:calc(39.04 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--head);font-weight:600;transform:scaleX(1.0302);}
.t-tb-2{left:calc(387.53 * var(--u));top:calc(1279.46 * var(--u));font-size:calc(40.07 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--head);font-weight:600;transform:scaleX(0.9812);}
.t-tc-1{left:calc(732.31 * var(--u));top:calc(1238.28 * var(--u));font-size:calc(40.65 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--head);font-weight:600;transform:scaleX(0.9556);}
.t-td-1{left:calc(1088.69 * var(--u));top:calc(1238.89 * var(--u));font-size:calc(40.07 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--head);font-weight:600;transform:scaleX(0.9974);}
.t-pa-1{left:calc(46.36 * var(--u));top:calc(1338.58 * var(--u));font-size:calc(21.13 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-pa-2{left:calc(48.53 * var(--u));top:calc(1372.70 * var(--u));font-size:calc(21.25 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-pb-1{left:calc(387.53 * var(--u));top:calc(1337.46 * var(--u));font-size:calc(22.42 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-pb-2{left:calc(387.53 * var(--u));top:calc(1371.00 * var(--u));font-size:calc(22.07 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-pb-3{left:calc(387.53 * var(--u));top:calc(1405.55 * var(--u));font-size:calc(22.42 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-pc-1{left:calc(730.14 * var(--u));top:calc(1331.66 * var(--u));font-size:calc(22.42 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-pc-2{left:calc(730.87 * var(--u));top:calc(1366.77 * var(--u));font-size:calc(21.69 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-pc-3{left:calc(730.14 * var(--u));top:calc(1399.20 * var(--u));font-size:calc(21.85 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-pd-1{left:calc(1087.24 * var(--u));top:calc(1331.65 * var(--u));font-size:calc(22.46 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-pd-2{left:calc(1087.97 * var(--u));top:calc(1364.41 * var(--u));font-size:calc(22.28 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-pd-3{left:calc(1087.24 * var(--u));top:calc(1398.47 * var(--u));font-size:calc(21.87 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-a-1{left:calc(69.65 * var(--u));top:calc(626.49 * var(--u));font-size:calc(30.25 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-a-2{left:calc(69.65 * var(--u));top:calc(667.37 * var(--u));font-size:calc(30.32 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-a-3{left:calc(69.65 * var(--u));top:calc(707.67 * var(--u));font-size:calc(30.41 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-a-4{left:calc(69.65 * var(--u));top:calc(749.53 * var(--u));font-size:calc(30.18 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-f-k{left:calc(428.19 * var(--u));top:calc(886.33 * var(--u));font-size:calc(43.68 * var(--fu));letter-spacing:calc(1.58 * var(--u));font-family:var(--head);font-weight:600;}
.t-f-n{left:calc(428.19 * var(--u));top:calc(924.53 * var(--u));font-size:calc(70.92 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--head);font-weight:700;transform:scaleX(0.9459);}
.t-f-1{left:calc(426.72 * var(--u));top:calc(1030.45 * var(--u));font-size:calc(25.12 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-f-2{left:calc(427.45 * var(--u));top:calc(1068.01 * var(--u));font-size:calc(24.97 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-f-3{left:calc(427.45 * var(--u));top:calc(1106.90 * var(--u));font-size:calc(24.86 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-f-4{left:calc(427.45 * var(--u));top:calc(1144.90 * var(--u));font-size:calc(24.88 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-f-5{left:calc(427.45 * var(--u));top:calc(1182.45 * var(--u));font-size:calc(24.78 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-f-6{left:calc(427.45 * var(--u));top:calc(1223.38 * var(--u));font-size:calc(24.77 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-f-7{left:calc(426.72 * var(--u));top:calc(1257.38 * var(--u));font-size:calc(24.29 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-f-8{left:calc(426.72 * var(--u));top:calc(1295.35 * var(--u));font-size:calc(24.80 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-c-a{left:calc(1143.05 * var(--u));top:calc(1070.43 * var(--u));font-size:calc(38.81 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--head);font-weight:600;transform:scaleX(1.0760);}
.t-c-b{left:calc(1143.05 * var(--u));top:calc(1109.66 * var(--u));font-size:calc(37.76 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--head);font-weight:600;transform:scaleX(1.1191);}
.t-c-c{left:calc(1143.05 * var(--u));top:calc(1148.83 * var(--u));font-size:calc(37.44 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--head);font-weight:600;transform:scaleX(1.1276);}
.t-c-1{left:calc(1144.52 * var(--u));top:calc(1200.91 * var(--u));font-size:calc(21.57 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-c-2{left:calc(1143.79 * var(--u));top:calc(1228.14 * var(--u));font-size:calc(21.24 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-c-3{left:calc(1143.05 * var(--u));top:calc(1254.48 * var(--u));font-size:calc(21.43 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-c-4{left:calc(1142.32 * var(--u));top:calc(1283.26 * var(--u));font-size:calc(20.84 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-c-5{left:calc(1143.05 * var(--u));top:calc(1310.38 * var(--u));font-size:calc(20.84 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-c-6{left:calc(1143.05 * var(--u));top:calc(1336.53 * var(--u));font-size:calc(22.36 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-v-a1{left:calc(189.90 * var(--u));top:calc(1438.76 * var(--u));font-size:calc(34.47 * var(--fu));letter-spacing:calc(2.30 * var(--u));font-family:var(--head);font-weight:600;}
.t-v-a2{left:calc(190.63 * var(--u));top:calc(1476.57 * var(--u));font-size:calc(37.44 * var(--fu));letter-spacing:calc(1.07 * var(--u));font-family:var(--head);font-weight:600;}
.t-v-b1{left:calc(679.67 * var(--u));top:calc(1437.71 * var(--u));font-size:calc(36.39 * var(--fu));letter-spacing:calc(1.46 * var(--u));font-family:var(--head);font-weight:600;}
.t-v-b2{left:calc(679.67 * var(--u));top:calc(1476.28 * var(--u));font-size:calc(37.71 * var(--fu));letter-spacing:calc(0.70 * var(--u));font-family:var(--head);font-weight:600;}
.t-v-c1{left:calc(1169.45 * var(--u));top:calc(1438.45 * var(--u));font-size:calc(35.36 * var(--fu));letter-spacing:calc(1.89 * var(--u));font-family:var(--head);font-weight:600;}
.t-v-c2{left:calc(1169.45 * var(--u));top:calc(1477.30 * var(--u));font-size:calc(36.92 * var(--fu));letter-spacing:calc(0.88 * var(--u));font-family:var(--head);font-weight:600;}
.t-s-k{left:calc(70.10 * var(--u));top:calc(182.46 * var(--u));font-size:calc(39.36 * var(--fu));letter-spacing:calc(5.61 * var(--u));font-family:var(--head);font-weight:600;}
.t-s-t{left:calc(70.10 * var(--u));top:calc(467.81 * var(--u));font-size:calc(33.94 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-s-1{left:calc(69.37 * var(--u));top:calc(522.29 * var(--u));font-size:calc(30.13 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-s-2{left:calc(69.37 * var(--u));top:calc(558.99 * var(--u));font-size:calc(30.02 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-s-3{left:calc(70.10 * var(--u));top:calc(599.14 * var(--u));font-size:calc(30.04 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-s-4{left:calc(70.10 * var(--u));top:calc(642.88 * var(--u));font-size:calc(30.28 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-s-5{left:calc(69.37 * var(--u));top:calc(683.69 * var(--u));font-size:calc(30.07 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-p-t{left:calc(70.10 * var(--u));top:calc(921.21 * var(--u));font-size:calc(55.69 * var(--fu));letter-spacing:calc(7.55 * var(--u));font-family:var(--head);font-weight:600;}
.t-p-1{left:calc(67.91 * var(--u));top:calc(1000.94 * var(--u));font-size:calc(31.86 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-p-2{left:calc(67.91 * var(--u));top:calc(1046.08 * var(--u));font-size:calc(31.79 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-p-3{left:calc(67.91 * var(--u));top:calc(1089.87 * var(--u));font-size:calc(31.87 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-st-a1{left:calc(64.26 * var(--u));top:calc(1368.34 * var(--u));font-size:calc(37.29 * var(--fu));letter-spacing:calc(1.64 * var(--u));font-family:var(--head);font-weight:600;}
.t-st-a2{left:calc(64.26 * var(--u));top:calc(1408.87 * var(--u));font-size:calc(36.25 * var(--fu));letter-spacing:calc(1.73 * var(--u));font-family:var(--head);font-weight:600;}
.t-st-b1{left:calc(434.48 * var(--u));top:calc(1368.06 * var(--u));font-size:calc(37.55 * var(--fu));letter-spacing:calc(1.45 * var(--u));font-family:var(--head);font-weight:600;}
.t-st-b2{left:calc(435.21 * var(--u));top:calc(1409.24 * var(--u));font-size:calc(35.22 * var(--fu));letter-spacing:calc(1.79 * var(--u));font-family:var(--head);font-weight:600;}
.t-st-c1{left:calc(764.54 * var(--u));top:calc(1368.06 * var(--u));font-size:calc(37.55 * var(--fu));letter-spacing:calc(1.37 * var(--u));font-family:var(--head);font-weight:600;}
.t-st-c2{left:calc(765.27 * var(--u));top:calc(1408.88 * var(--u));font-size:calc(35.72 * var(--fu));letter-spacing:calc(1.65 * var(--u));font-family:var(--head);font-weight:600;}
.t-st-d1{left:calc(1094.60 * var(--u));top:calc(1368.34 * var(--u));font-size:calc(37.29 * var(--fu));letter-spacing:calc(1.49 * var(--u));font-family:var(--head);font-weight:600;}
.t-st-d2{left:calc(1094.60 * var(--u));top:calc(1408.87 * var(--u));font-size:calc(36.25 * var(--fu));letter-spacing:calc(2.36 * var(--u));font-family:var(--head);font-weight:600;}
.t-note{left:calc(207.38 * var(--u));top:calc(1480.14 * var(--u));font-size:calc(23.69 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-r-k{left:calc(65.92 * var(--u));top:calc(154.68 * var(--u));font-size:calc(27.46 * var(--fu));letter-spacing:calc(6.83 * var(--u));font-family:var(--head);font-weight:600;}
.t-r-1{left:calc(63.74 * var(--u));top:calc(416.57 * var(--u));font-size:calc(28.36 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-r-2{left:calc(64.47 * var(--u));top:calc(454.98 * var(--u));font-size:calc(28.28 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-r-3{left:calc(65.19 * var(--u));top:calc(493.29 * var(--u));font-size:calc(28.54 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-e-k{left:calc(71.85 * var(--u));top:calc(156.83 * var(--u));font-size:calc(31.20 * var(--fu));letter-spacing:calc(4.08 * var(--u));font-family:var(--head);font-weight:600;}
.t-e-a{left:calc(72.59 * var(--u));top:calc(173.69 * var(--u));font-size:calc(107.97 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--head);font-weight:700;transform:scaleX(0.9617);}
.t-e-b{left:calc(71.85 * var(--u));top:calc(270.08 * var(--u));font-size:calc(104.89 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--head);font-weight:700;transform:scaleX(0.9536);}
.t-e-1{left:calc(70.39 * var(--u));top:calc(406.54 * var(--u));font-size:calc(29.71 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-e-2{left:calc(70.39 * var(--u));top:calc(444.80 * var(--u));font-size:calc(29.28 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-m-a{left:calc(43.26 * var(--u));top:calc(909.80 * var(--u));font-size:calc(36.92 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--head);font-weight:600;transform:scaleX(1.0535);}
.t-m-a2{left:calc(42.53 * var(--u));top:calc(953.86 * var(--u));font-size:calc(26.20 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-m-a3{left:calc(41.79 * var(--u));top:calc(1007.02 * var(--u));font-size:calc(24.99 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-m-a4{left:calc(41.79 * var(--u));top:calc(1047.63 * var(--u));font-size:calc(24.09 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-m-a5{left:calc(42.53 * var(--u));top:calc(1080.72 * var(--u));font-size:calc(24.16 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-m-a6{left:calc(43.26 * var(--u));top:calc(1118.82 * var(--u));font-size:calc(23.85 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-m-a7{left:calc(41.79 * var(--u));top:calc(1156.91 * var(--u));font-size:calc(23.98 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-m-b{left:calc(412.06 * var(--u));top:calc(909.78 * var(--u));font-size:calc(39.03 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--head);font-weight:600;transform:scaleX(0.9863);}
.t-m-b1{left:calc(411.32 * var(--u));top:calc(976.56 * var(--u));font-size:calc(23.93 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-m-b2{left:calc(411.32 * var(--u));top:calc(1012.50 * var(--u));font-size:calc(23.89 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-m-b3{left:calc(411.32 * var(--u));top:calc(1048.39 * var(--u));font-size:calc(23.99 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-m-b4{left:calc(412.79 * var(--u));top:calc(1082.08 * var(--u));font-size:calc(24.12 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-m-b5{left:calc(411.32 * var(--u));top:calc(1119.38 * var(--u));font-size:calc(24.42 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-m-b6{left:calc(412.06 * var(--u));top:calc(1157.51 * var(--u));font-size:calc(24.40 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-m-c{left:calc(751.53 * var(--u));top:calc(917.55 * var(--u));font-size:calc(32.14 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--head);font-weight:600;transform:scaleX(1.1639);}
.t-m-c1{left:calc(750.79 * var(--u));top:calc(978.22 * var(--u));font-size:calc(23.89 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-m-c2{left:calc(750.79 * var(--u));top:calc(1014.01 * var(--u));font-size:calc(24.13 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-m-c3{left:calc(750.79 * var(--u));top:calc(1049.17 * var(--u));font-size:calc(23.85 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-m-c4{left:calc(750.79 * var(--u));top:calc(1085.07 * var(--u));font-size:calc(23.92 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-m-c5{left:calc(750.79 * var(--u));top:calc(1123.79 * var(--u));font-size:calc(24.37 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-m-c6{left:calc(750.79 * var(--u));top:calc(1157.62 * var(--u));font-size:calc(24.06 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-m-d{left:calc(1115.93 * var(--u));top:calc(915.30 * var(--u));font-size:calc(38.48 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--head);font-weight:600;transform:scaleX(0.9618);}
.t-m-d1{left:calc(1114.46 * var(--u));top:calc(978.03 * var(--u));font-size:calc(24.29 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-m-d2{left:calc(1115.19 * var(--u));top:calc(1015.11 * var(--u));font-size:calc(24.91 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-m-d3{left:calc(1114.46 * var(--u));top:calc(1048.98 * var(--u));font-size:calc(22.44 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-m-d4{left:calc(1115.19 * var(--u));top:calc(1087.01 * var(--u));font-size:calc(25.27 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-m-d5{left:calc(1115.93 * var(--u));top:calc(1119.13 * var(--u));font-size:calc(25.22 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-k-k{left:calc(69.37 * var(--u));top:calc(174.80 * var(--u));font-size:calc(34.18 * var(--fu));letter-spacing:calc(4.02 * var(--u));font-family:var(--head);font-weight:600;}
.t-k-1{left:calc(68.64 * var(--u));top:calc(461.59 * var(--u));font-size:calc(28.52 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-k-2{left:calc(67.91 * var(--u));top:calc(502.38 * var(--u));font-size:calc(28.41 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-k-3{left:calc(67.91 * var(--u));top:calc(543.18 * var(--u));font-size:calc(28.70 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-k-m{left:calc(178.90 * var(--u));top:calc(712.43 * var(--u));font-size:calc(32.12 * var(--fu));letter-spacing:calc(0.00 * var(--u));font-family:var(--body);font-weight:400;}
.t-h-a{left:calc(69.54 * var(--u));top:calc(198.67 * var(--u));font-size:calc(130.54 * var(--fu));letter-spacing:calc(0 * var(--u));font-family:var(--head);font-weight:700;transform:scaleX(0.9718);}
.t-h-b{left:calc(69.54 * var(--u));top:calc(311.94 * var(--u));font-size:calc(130.54 * var(--fu));letter-spacing:calc(0 * var(--u));font-family:var(--head);font-weight:700;transform:scaleX(0.9718);}
.t-a-a{left:calc(69.54 * var(--u));top:calc(175.91 * var(--u));font-size:calc(130.54 * var(--fu));letter-spacing:calc(0 * var(--u));font-family:var(--head);font-weight:700;transform:scaleX(0.9718);}
.t-a-b{left:calc(69.54 * var(--u));top:calc(289.19 * var(--u));font-size:calc(130.54 * var(--fu));letter-spacing:calc(0 * var(--u));font-family:var(--head);font-weight:700;transform:scaleX(0.9718);}
.t-a-c{left:calc(69.54 * var(--u));top:calc(402.46 * var(--u));font-size:calc(130.54 * var(--fu));letter-spacing:calc(0 * var(--u));font-family:var(--head);font-weight:700;transform:scaleX(0.9718);}
.t-a-d{left:calc(458.30 * var(--u));top:calc(402.46 * var(--u));font-size:calc(130.54 * var(--fu));letter-spacing:calc(0 * var(--u));font-family:var(--head);font-weight:700;transform:scaleX(0.9718);}
.t-a-e{left:calc(69.54 * var(--u));top:calc(515.73 * var(--u));font-size:calc(130.54 * var(--fu));letter-spacing:calc(0 * var(--u));font-family:var(--head);font-weight:700;transform:scaleX(0.9718);}
.t-a-1{top:calc(666.52 * var(--u))}
.t-a-2{top:calc(707.40 * var(--u))}
.t-a-3{top:calc(747.70 * var(--u))}
.t-a-4{top:calc(789.56 * var(--u))}
.t-s-a{left:calc(69.54 * var(--u));top:calc(210.68 * var(--u));font-size:calc(130.54 * var(--fu));letter-spacing:calc(0 * var(--u));font-family:var(--head);font-weight:700;transform:scaleX(0.9718);}
.t-s-b{left:calc(69.54 * var(--u));top:calc(323.96 * var(--u));font-size:calc(130.54 * var(--fu));letter-spacing:calc(0 * var(--u));font-family:var(--head);font-weight:700;transform:scaleX(0.9718);}
.t-r-a{left:calc(69.54 * var(--u));top:calc(176.46 * var(--u));font-size:calc(130.54 * var(--fu));letter-spacing:calc(0 * var(--u));font-family:var(--head);font-weight:700;transform:scaleX(0.9718);}
.t-r-b{left:calc(69.54 * var(--u));top:calc(289.73 * var(--u));font-size:calc(130.54 * var(--fu));letter-spacing:calc(0 * var(--u));font-family:var(--head);font-weight:700;transform:scaleX(0.9718);}
.t-k-a{left:calc(69.54 * var(--u));top:calc(207.21 * var(--u));font-size:calc(130.54 * var(--fu));letter-spacing:calc(0 * var(--u));font-family:var(--head);font-weight:700;transform:scaleX(0.9718);}
.t-k-b{left:calc(69.54 * var(--u));top:calc(320.48 * var(--u));font-size:calc(130.54 * var(--fu));letter-spacing:calc(0 * var(--u));font-family:var(--head);font-weight:700;transform:scaleX(0.9718);}
}
/* ===== end desktop layer ===== */
