/* March & Co. — rebuilt from the Wix site, Nov 2026.
   Measurements come from the live site at a 1680px-wide window; sizes scale with vw
   and clamp at both ends so phones and big screens both read well. */

@font-face {
  font-family: "Cormorant Garamond";
  src: url("/fonts/CormorantGaramond-normal.woff2") format("woff2");
  font-weight: 300 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Cormorant Garamond";
  src: url("/fonts/CormorantGaramond-italic.woff2") format("woff2");
  font-weight: 300 700;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "Fraunces";
  src: url("/fonts/Fraunces-700.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

:root {
  --bg: #080808;
  --ink: #faf9f6;
  --ink-dim: rgba(250, 249, 246, 0.55);
  --line: rgba(250, 249, 246, 0.6);
  --orange: #ec5c13;
  --red: #da4e4e;
  --purple: #9882ac;
  --teal: #183633;
  --blue: #95b9ff;
  --green: #6baa75;
  --serif: "Cormorant Garamond", "Cormorant", Garamond, Georgia, serif;
  --mono: "Courier New", Courier, ui-monospace, Menlo, monospace;
  --heavy: "Fraunces", Georgia, serif;
  --gutter: clamp(16px, 7.8vw, 130px);
  --header-h: clamp(56px, 5.5vw, 84px);
  color-scheme: dark;
}

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--serif);
  font-weight: 300;
  font-size: clamp(17px, 1.25vw, 21px);
  line-height: 1.35;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

body.light {
  --bg: #faf9f6;
  --ink: #080808;
  --ink-dim: rgba(8, 8, 8, 0.55);
  --line: rgba(8, 8, 8, 0.5);
  color-scheme: light;
}

img, video, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
a:hover { text-decoration: underline; text-underline-offset: 0.18em; text-decoration-thickness: 1px; }
:focus-visible { outline: 2px solid var(--orange); outline-offset: 3px; }
h1, h2, h3, h4, p { margin: 0; font-weight: 300; }

.skip {
  position: absolute; left: -9999px; top: 0; z-index: 100;
  background: var(--ink); color: var(--bg); padding: 10px 16px; font-family: var(--mono);
}
.skip:focus { left: 16px; top: 16px; }

.visually-hidden {
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap;
}

/* ---------- header ---------- */

.site-header {
  position: fixed; inset: 0 0 auto 0; z-index: 50;
  height: var(--header-h);
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 clamp(16px, 4.6vw, 80px) 0 clamp(16px, 4.2vw, 70px);
  background: linear-gradient(var(--bg) 55%, transparent);
  pointer-events: none;
}
.site-header > * { pointer-events: auto; }

.brand {
  display: flex; align-items: center; gap: clamp(10px, 1.5vw, 26px);
  font-size: clamp(22px, 2.4vw, 40px); line-height: 1;
}
.brand:hover { text-decoration: none; }
.brand svg { width: clamp(18px, 1.8vw, 30px); height: auto; }

.site-nav { display: flex; gap: clamp(14px, 3.2vw, 56px); }
.site-nav a {
  font-style: italic; font-size: clamp(17px, 1.8vw, 30px); line-height: 1;
  color: var(--ink);
}
.site-nav a[aria-current="page"] { text-decoration: underline; text-underline-offset: 0.2em; text-decoration-thickness: 1px; }

main { display: block; }

/* the Pisces mark */
.mark { color: currentColor; }
.mark path { fill: none; stroke: currentColor; }

/* ---------- footer ---------- */

.site-footer {
  padding: clamp(60px, 8vw, 140px) var(--gutter) clamp(24px, 3vw, 48px);
}
.footer-mark {
  font-size: clamp(56px, 11.6vw, 196px); line-height: 1;
  text-align: center; margin-bottom: clamp(40px, 5vw, 84px);
  letter-spacing: -0.01em;
}
.footer-cols {
  display: grid; gap: 32px 24px;
  grid-template-columns: 1.95fr 1fr 1fr 1fr;
  font-family: var(--mono); color: var(--blue);
  font-size: 16px; line-height: 1.6;
}
.footer-cols h2 { font-family: var(--mono); font-size: clamp(19px, 1.45vw, 24px); margin-bottom: 16px; font-weight: 400; }
.footer-cols ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.footer-cols p { max-width: 30em; }
.footer-cols a { color: var(--blue); }
.footer-base {
  display: flex; justify-content: space-between; gap: 16px;
  margin-top: clamp(40px, 3.5vw, 60px); font-size: 14px; color: var(--ink);
}
body.light .footer-cols, body.light .footer-cols a { color: #2f55a8; }

@media (max-width: 860px) {
  .footer-cols { grid-template-columns: 1fr 1fr; }
  .footer-cols > :first-child { grid-column: 1 / -1; }
}
@media (max-width: 480px) {
  .footer-cols { grid-template-columns: 1fr; }
}

/* ---------- shared bits ---------- */

.rule-x { height: 1px; background: var(--line); border: 0; margin: 0; }
.big { font-size: clamp(44px, 6.25vw, 112px); line-height: 1.12; letter-spacing: -0.005em; }
.mono { font-family: var(--mono); }
.orange { color: var(--orange); }

.reveal { opacity: 0; transform: translateY(24px); transition: opacity .9s ease, transform .9s ease; }
.reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; transition: none; }
}

.caret::after {
  content: ""; display: inline-block; width: 0.06em; height: 0.82em;
  margin-left: 0.12em; background: currentColor; vertical-align: -0.04em;
  animation: blink 1.05s steps(1) infinite;
}
@keyframes blink { 50% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .caret::after { animation: none; } }

/* ---------- home ---------- */

.home-hero {
  position: relative;
  padding: calc(var(--header-h) + clamp(20px, 2.2vw, 36px)) clamp(16px, 8.6vw, 145px) 0;
}
.home-hero::before { /* the thin vertical rule down the left */
  content: ""; position: absolute; left: clamp(8px, 4.6vw, 77px);
  top: calc(var(--header-h) - 8px); height: calc(100% - var(--header-h) + 8px);
  width: 1px; background: var(--line);
}
.hello { font-size: clamp(64px, 8.8vw, 150px); line-height: 1.2; min-height: 1.2em; }
.intro {
  font-family: var(--mono); font-style: italic;
  font-size: clamp(15px, 1.31vw, 22px); line-height: 1.2;
  max-width: 64em; margin: clamp(24px, 2.6vw, 44px) 0 clamp(36px, 3.6vw, 60px);
}

.cards {
  position: relative;
  display: grid; grid-template-columns: 447fr 886fr; gap: clamp(16px, 3vw, 54px);
  padding-bottom: clamp(40px, 4vw, 70px);
}
.cards::before { /* horizontal rule running behind the cards */
  content: ""; position: absolute; z-index: 0;
  left: calc(-1 * clamp(16px, 8.6vw, 145px) + clamp(8px, 2.1vw, 36px));
  right: calc(-1 * clamp(16px, 8.6vw, 145px) + clamp(8px, 2.1vw, 36px));
  top: 43%; height: 1px; background: var(--line);
}
.arch {
  position: relative; z-index: 1; overflow: hidden;
  min-height: clamp(360px, 35.4vw, 595px);
  border: 1px solid var(--line); background: var(--bg);
  border-radius: clamp(70px, 7vw, 118px) clamp(70px, 7vw, 118px) clamp(40px, 4vw, 64px) clamp(40px, 4vw, 64px);
  display: flex; flex-direction: column; justify-content: flex-start;
  padding: clamp(60px, 5.6vw, 94px) clamp(22px, 2.2vw, 36px) clamp(28px, 3vw, 48px);
  color: var(--ink);
}
.arch:hover { text-decoration: none; }
.arch .photo {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  opacity: 0; transition: opacity .6s ease; z-index: -1;
}
.arch:hover .photo, .arch:focus-visible .photo { opacity: 0.85; }
.arch .label {
  margin: auto 0; max-width: 10.8em; font-size: clamp(24px, 2.15vw, 36px); line-height: 1.17;
  text-shadow: 0 1px 12px rgba(0, 0, 0, 0.45);
}
.arch .label em { display: block; }
.arch:first-child .label { max-width: 7.4em; }
.arch-right { padding-left: clamp(22px, 13vw, 232px); }
.corner { /* the green quarter shape on the left card */
  width: clamp(30px, 2.5vw, 42px); aspect-ratio: 1;
  background: radial-gradient(circle at 100% 100%, transparent 70%, var(--green) 71%);
}
.arch-right .mark { width: clamp(40px, 3.4vw, 58px); color: var(--orange); }

@media (max-width: 760px) {
  .cards { grid-template-columns: 1fr; }
  .cards::before { display: none; }
  .arch-right { padding-left: clamp(22px, 2.2vw, 36px); }
}

/* philosophy: the headline holds while the photos drift past */
.philosophy {
  position: relative;
  border-top: 1px solid var(--line);
  margin: 0 clamp(16px, 2.3vw, 39px);
  height: clamp(1500px, 135vw, 2260px);
}
.philosophy::before, .philosophy::after {
  content: ""; position: absolute; top: 0; bottom: 0; width: 1px; background: var(--line);
}
.philosophy::before { left: 11%; }
.philosophy::after { right: 11%; }
.philosophy-text {
  position: sticky; top: calc(50vh - 0.5 * clamp(160px, 24vw, 410px));
  text-align: center; padding: clamp(80px, 8vw, 140px) 12% 0;
  font-size: clamp(42px, 6.25vw, 105px); line-height: 1.3; z-index: 1;
}
.philosophy-text mark {
  color: var(--ink); font-style: italic; padding: 0 0.02em;
  box-decoration-break: clone; -webkit-box-decoration-break: clone;
}
.m-red { background: var(--red); }
.m-purple { background: var(--purple); }
.drift {
  position: absolute; z-index: 2; height: auto; object-fit: cover;
  will-change: transform;
}
.drift-1 { left: -1.5%; top: 33%; width: 43%; }
.drift-2 { right: -1.5%; top: 29%; width: 31.4%; }
.drift-3 { left: 6%; top: 70%; width: 30%; }
.drift-4 { left: 58%; top: 75%; width: 38%; }
@media (max-width: 760px) {
  .philosophy { height: auto; padding-bottom: 40px; }
  .philosophy-text { position: relative; top: 0; padding: 60px 4% 30px; }
  .drift { position: relative; inset: auto; width: 86%; margin: 18px auto; }
  .drift-2, .drift-4 { margin-left: auto; margin-right: 0; }
}

.beliefs { padding: clamp(60px, 6vw, 100px) clamp(16px, 8.3vw, 139px) 0; }
.beliefs p { font-size: clamp(20px, 2.4vw, 40px); line-height: 1.3; margin-top: clamp(24px, 3vw, 50px); max-width: 35em; }

.testimonials { padding: clamp(70px, 7vw, 120px) 0 0; }
.testimonials > h2 {
  margin: 0 clamp(16px, 8.2vw, 138px) clamp(40px, 5vw, 90px);
  display: inline-block; position: relative; z-index: 0;
}
.testimonials > h2::after {
  content: ""; position: absolute; z-index: -1; left: -0.28em; right: -0.9em;
  top: 0.08em; bottom: 0.08em; background: var(--teal);
}
.t-grid {
  display: grid; grid-template-columns: 1fr 1fr;
  margin: 0 clamp(16px, 5.4vw, 91px);
  border: 1px solid var(--line); border-width: 1px 0 0 1px;
}
.t-grid > * { border: 1px solid var(--line); border-width: 0 1px 1px 0; min-height: clamp(200px, 17.7vw, 298px); }
.t-grid .img-cell { position: relative; overflow: hidden; }
.t-grid .img-cell img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.t-grid .tall { min-height: clamp(300px, 32vw, 538px); }
.quote { margin: 0; padding: clamp(24px, 3.6vw, 60px) clamp(22px, 3.4vw, 58px); display: flex; flex-direction: column; justify-content: center; }
.quote h3 { font-size: clamp(26px, 2.7vw, 45px); line-height: 1.2; margin-bottom: clamp(12px, 1.6vw, 26px); }
.quote p { font-style: italic; font-size: clamp(17px, 1.67vw, 28px); line-height: 1.2; max-width: 23em; }
.quote.r { text-align: right; align-items: flex-end; }
@media (max-width: 760px) {
  .t-grid { grid-template-columns: 1fr; }
  .t-grid .img-cell { min-height: 220px; }
  .quote.r { text-align: left; align-items: flex-start; }
  .t-grid .swap { order: -1; }
}

/* ---------- about ---------- */

.about-hero {
  display: grid; grid-template-columns: 1fr 1.05fr; align-items: center; gap: clamp(24px, 4vw, 70px);
  padding: calc(var(--header-h) + clamp(40px, 6vw, 100px)) clamp(16px, 13vw, 220px) clamp(60px, 6vw, 100px) clamp(16px, 9.3vw, 156px);
  color: var(--orange);
}
.about-hero .mark { width: 100%; max-width: 560px; }
.about-hero .mark path { stroke-width: 7; }
.about-hero p { font-size: clamp(26px, 3.3vw, 56px); line-height: 1.32; }
.about-photo { position: relative; }
.about-photo img { width: 100%; height: clamp(360px, 56vw, 940px); object-fit: cover; }
.about-photo a {
  position: absolute; left: clamp(16px, 11.4vw, 190px); top: 34%;
  color: var(--orange); font-size: clamp(22px, 2.15vw, 36px); line-height: 1.2;
}
@media (max-width: 760px) {
  .about-hero { grid-template-columns: 1fr; }
  .about-hero .mark { max-width: 220px; }
}

/* ---------- services ---------- */

.svc-hero {
  position: relative;
  display: grid; grid-template-columns: 838fr 380fr; gap: clamp(20px, 4vw, 80px);
  padding: calc(var(--header-h) + clamp(30px, 5vw, 84px)) clamp(16px, 12vw, 200px) 0 clamp(16px, 15.5vw, 261px);
}
.svc-stage { position: relative; aspect-ratio: 838 / 489; }
.svc-stage img {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  opacity: 0; transition: opacity .6s ease;
}
.svc-stage img.on { opacity: 1; }
.svc-tabs { list-style: none; margin: 0; padding: 0; display: grid; align-content: center; gap: clamp(28px, 5.2vw, 88px); text-align: center; }
.svc-tabs button {
  background: none; border: 0; padding: 4px 0; cursor: pointer;
  font-family: var(--mono); font-size: clamp(14px, 1.05vw, 18px); color: var(--blue);
}
.svc-tabs button[aria-selected="true"] { text-decoration: underline; text-underline-offset: 0.3em; }
.svc-title {
  position: relative; z-index: 2;
  margin: calc(-1 * clamp(60px, 8vw, 140px)) 0 0 clamp(16px, 5vw, 86px);
  font-size: clamp(48px, 7.3vw, 122px); line-height: 1.05;
}
.say { text-align: right; padding: clamp(80px, 10vw, 170px) clamp(16px, 13vw, 220px) clamp(30px, 4vw, 70px); }
.svc-quotes { padding: 0 clamp(16px, 13vw, 220px) 0 clamp(16px, 13vw, 220px); display: grid; gap: clamp(60px, 6vw, 110px); }
.svc-quote { margin: 0; }
.svc-quote header { display: flex; align-items: flex-start; gap: clamp(10px, 1.6vw, 26px); color: var(--orange); }
.svc-quote h3 { font-size: clamp(22px, 2.15vw, 36px); line-height: 1.2; flex: 1; }
.qmark { font-family: var(--heavy); font-weight: 700; color: var(--orange); font-size: clamp(70px, 8vw, 140px); line-height: 0.62; user-select: none; }
.qmark.close { align-self: flex-end; }
.svc-quote p { margin-top: clamp(20px, 2.6vw, 44px); text-align: right; font-size: clamp(18px, 1.8vw, 30px); line-height: 1.25; }
.burst { width: clamp(90px, 9.5vw, 160px); color: #b8471b; animation: spin 26s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .burst { animation: none; } }
.svc-end { display: flex; align-items: center; gap: 6%; padding: clamp(40px, 5vw, 80px) clamp(16px, 9vw, 150px) 0; }
.svc-end .rule-x { flex: 1; background: rgba(236, 92, 19, 0.6); max-width: 720px; }
@media (max-width: 760px) {
  .svc-hero { grid-template-columns: 1fr; }
  .svc-tabs { grid-template-columns: 1fr 1fr; gap: 14px; }
  .svc-title { margin: 20px 0 0; }
  .say { text-align: left; }
}

/* ---------- clients ---------- */

.c-band {
  background: var(--orange); color: #1a0d05; margin-top: var(--header-h);
  padding: clamp(16px, 2vw, 30px) clamp(16px, 8.6vw, 145px) clamp(50px, 6vw, 100px) clamp(16px, 8vw, 135px);
  position: relative;
}
.c-band .who { font-family: var(--mono); font-size: 15px; min-height: 1.4em; }
.c-band blockquote { margin: clamp(18px, 2vw, 34px) 0 0; font-size: clamp(24px, 3vw, 50px); line-height: 1.33; max-width: 26em; min-height: 4em; }
.c-arrows { position: absolute; right: clamp(16px, 4.6vw, 77px); top: 10px; display: flex; gap: 22px; }
.c-arrows button { background: none; border: 0; color: #1a0d05; font-size: 30px; cursor: pointer; padding: 4px 6px; font-family: var(--mono); }
.c-title { color: var(--orange); font-size: clamp(40px, 3.6vw, 62px); padding: clamp(40px, 4vw, 70px) clamp(16px, 5.5vw, 92px) clamp(24px, 3vw, 50px); }
.c-body { display: grid; grid-template-columns: 1fr 1.05fr; gap: 4vw; padding: 0 clamp(16px, 3vw, 50px) 0 clamp(16px, 5.5vw, 92px); }
.c-list { list-style: none; margin: 0; padding: clamp(10px, 2vw, 30px) 0 0; display: grid; gap: clamp(20px, 3vw, 52px); align-content: start; }
.c-list li { display: flex; align-items: baseline; gap: clamp(16px, 1.8vw, 30px); }
.c-list .n { font-family: var(--mono); font-size: 13px; color: var(--orange); min-width: 2ch; }
.c-list a { font-size: clamp(22px, 1.8vw, 30px); }
.c-photos { position: relative; }
.c-photos .waves { width: 100%; max-width: 730px; aspect-ratio: 730 / 534; object-fit: cover; }
.c-lower { display: grid; grid-template-columns: 1fr 1fr; align-items: center; padding: clamp(40px, 6vw, 110px) clamp(16px, 9vw, 150px) 0 clamp(16px, 10.9vw, 183px); gap: 6vw; }
.c-lower img { width: 100%; max-width: 533px; aspect-ratio: 533 / 367; object-fit: cover; }
.c-lower .burst { justify-self: center; width: clamp(120px, 16vw, 270px); }
@media (max-width: 760px) {
  .c-body, .c-lower { grid-template-columns: 1fr; }
  .c-arrows { position: static; margin-top: 18px; }
}

/* ---------- contact ---------- */

.contact {
  display: grid; grid-template-columns: 575fr 509fr; gap: clamp(30px, 6vw, 110px);
  padding: calc(var(--header-h) + clamp(40px, 5.5vw, 92px)) clamp(16px, 9vw, 150px) clamp(40px, 6vw, 100px) clamp(16px, 13.2vw, 222px);
  align-items: start;
}
.contact h1 { font-size: clamp(30px, 2.4vw, 40px); margin-bottom: clamp(18px, 2vw, 30px); }
.form { font-family: var(--mono); font-size: 15px; }
.form fieldset { border: 0; margin: 0 0 22px; padding: 0; }
.form legend, .form label.f { display: block; margin-bottom: 8px; }
.radios { display: grid; gap: 10px; }
.radios label { display: flex; align-items: center; gap: 12px; cursor: pointer; }
.radios input {
  appearance: none; -webkit-appearance: none; margin: 0;
  width: 15px; height: 15px; border: 1.5px solid var(--orange); border-radius: 50%;
  display: grid; place-content: center;
}
.radios input::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--orange); transform: scale(0); transition: transform .15s; }
.radios input:checked::before { transform: scale(1); }
.form input[type="text"], .form input[type="email"], .form textarea {
  width: 100%; background: transparent; color: var(--ink);
  border: 0; border-bottom: 1px solid var(--orange); border-radius: 0;
  font: inherit; padding: 8px 6px 14px; margin-bottom: 24px; resize: vertical;
}
.form textarea { min-height: 72px; }
.form ::placeholder { color: var(--ink-dim); }
.form .hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.form button[type="submit"] {
  font: inherit; color: var(--bg); background: var(--ink); border: 0; border-radius: 2px;
  padding: 12px 38px; cursor: pointer;
}
.form button[disabled] { opacity: 0.6; cursor: progress; }
.form-status { margin-top: 16px; min-height: 1.4em; color: var(--blue); }
.form-status.err { color: #ff8a7a; }
.blob {
  width: 100%; aspect-ratio: 509 / 658; object-fit: cover;
  clip-path: url(#blob);
}
@media (max-width: 760px) { .contact { grid-template-columns: 1fr; } .blob { max-width: 420px; } }

/* ---------- legal ---------- */

.legal { padding-top: calc(var(--header-h) + clamp(30px, 3vw, 50px)); }
.l-row { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px, 4.4vw, 76px); padding: 0 clamp(16px, 8vw, 137px) 0 clamp(16px, 5.4vw, 90px); margin-bottom: clamp(60px, 6vw, 100px); align-items: start; }
.l-row img { width: 100%; height: auto; object-fit: cover; }
.l-row:first-child img { border-radius: 0 0 28px 28px; }
.ar-1 { aspect-ratio: 730 / 582; } .ar-2 { aspect-ratio: 730 / 1489; } .ar-3 { aspect-ratio: 730 / 1063; }
.ar-4 { aspect-ratio: 730 / 965; } .ar-5 { aspect-ratio: 730 / 685; }
.l-row.flip > img { order: 2; }
.l-row h1, .l-row h2 { font-size: clamp(38px, 3.8vw, 64px); line-height: 1.08; margin-bottom: clamp(20px, 2.4vw, 40px); }
.l-text { font-family: var(--mono); font-size: 14px; line-height: 1.45; max-width: 36em; }
.l-text p { margin: 0 0 14px; }
.l-text h3 { font-family: var(--mono); font-size: 14px; margin: 26px 0 6px; font-weight: 400; }
.l-text ul { margin: 0 0 12px; padding-left: 1.4em; }
.l-text li { margin: 0 0 4px; }
.l-text a { text-decoration: underline; text-underline-offset: 0.2em; }
.pill { display: inline-block; background: var(--green); color: var(--bg); border-radius: 100px; padding: 9px 34px; font-family: var(--mono); font-size: 14px; margin-top: 30px; }
.pill:hover { text-decoration: none; filter: brightness(1.08); }
@media (max-width: 760px) { .l-row { grid-template-columns: 1fr; } .l-row.flip > img { order: 0; } }

/* ---------- case studies (light) ---------- */

.case { min-height: calc(100vh - 40px); display: grid; place-items: center; text-align: center; position: relative; padding: var(--header-h) 16px 40px; overflow: hidden; }
.case h1 { font-size: clamp(40px, 7.8vw, 132px); line-height: 1.1; position: relative; z-index: 1; }
.case .brief { font-family: var(--mono); font-size: clamp(16px, 1.5vw, 26px); line-height: 1.35; text-align: left; position: absolute; left: 68%; top: 68%; }
.case .year { font-family: var(--mono); font-size: clamp(16px, 1.5vw, 26px); letter-spacing: 0.12em; position: absolute; left: 50%; bottom: 7%; transform: translateX(-50%); }
.fans { font-size: clamp(24px, 2.4vw, 40px); font-style: italic; padding: 0 16px clamp(40px, 6vw, 100px); text-align: center; }
.floater { position: absolute; left: 38%; top: 30%; width: clamp(80px, 11vw, 190px); color: var(--orange); animation: float 9s ease-in-out infinite; }
@keyframes float { 0%, 100% { transform: translate(0, 0) rotate(-4deg); } 50% { transform: translate(6vw, -3vh) rotate(5deg); } }
.pulse { position: absolute; left: 0; right: 0; top: 50%; transform: translateY(-50%); width: 100%; height: clamp(80px, 12vw, 200px); color: var(--orange); opacity: 0.85; }
.pulse path { stroke-dasharray: 2400; stroke-dashoffset: 2400; animation: draw 3.8s ease-in-out infinite; }
@keyframes draw { 60% { stroke-dashoffset: 0; } 100% { stroke-dashoffset: -2400; } }
@media (prefers-reduced-motion: reduce) {
  .floater { animation: none; }
  .pulse path { animation: none; stroke-dashoffset: 0; }
}
@media (max-width: 760px) { .case .brief { position: static; margin-top: 30px; } }

/* ---------- private pages / 404 ---------- */

.guest { min-height: 100vh; display: grid; place-items: center; text-align: center; padding: 100px 16px; }
.guest h1 { font-size: clamp(34px, 3vw, 48px); margin-bottom: 10px; }
.guest p { font-family: var(--mono); font-size: 14px; }
.guest .btn { display: inline-block; margin-top: 28px; background: var(--orange); color: #fff; padding: 12px 40px; font-family: var(--mono); font-size: 14px; }
.guest .btn:hover { text-decoration: none; filter: brightness(1.06); }
