/* ==========================================================================
   Yanga the MC · "The Appointment" · Office of the Minister of Enjoyment
   Grammar: THE OFFICIAL FILE. Bone paper documents, Ministry Green covers,
   hard cuts between them. Tokens first, then each document in page order.
   ========================================================================== */

:root {
  /* brand (locked logo system 2026-10-03) */
  --green: #1E3A2C;
  --green-2: #254636;
  --green-deep: #16291F;
  --cognac: #9C5A2C;
  --cognac-lit: #D9A06F;      /* cognac's second stop, for green and ink grounds */
  --orange: #E2772F;          /* Enjoyment Orange: stamp ink + the one button. Never text. */
  --bone: #F3ECDF;
  --bone-2: #EBE2D1;
  --bone-3: #E0D4BF;
  --ink: #15120F;
  --ink-2: #4E4136;           /* tinted secondary on bone (7.6:1) */
  --ink-3: #74624F;           /* tertiary on bone, labels only (4.7:1) */
  --on-green: #F3ECDF;
  --on-green-2: #C4CDBE;      /* secondary on green (8.1:1) */

  /* engine roles */
  --sc-canvas: var(--bone);
  --sc-surface: var(--bone-2);
  --sc-ink: var(--ink);
  --sc-ink-soft: var(--ink-2);
  --sc-accent: var(--cognac);
  --sc-accent-ink: var(--bone);
  --sc-font-display: "DM Serif Display", Georgia, "Times New Roman", serif;
  --sc-font-text: "Schibsted Grotesk", "Segoe UI", system-ui, sans-serif;
  --sc-font-mono: var(--sc-font-text);
  --sc-shadow-color: 28 30% 14%;
  --sc-r-sm: 3px; --sc-r-md: 6px; --sc-r-lg: 10px;

  --bar-h: 64px;
  --hair: color-mix(in oklab, var(--ink) 16%, transparent);
  --hair-strong: color-mix(in oklab, var(--ink) 30%, transparent);
}

html { scroll-padding-top: calc(var(--bar-h) + 12px); }
body { background: var(--bone); color: var(--ink); font-size: 1.0625rem; }
@media (min-width: 900px) { body { font-size: 1.125rem; } }

::selection { background: var(--green); color: var(--bone); }
:focus-visible { outline: 2px solid var(--orange); outline-offset: 3px; }

.vh { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* paper: a whisper of grain and an engraved edge */
.paper { background: var(--bone); color: var(--ink); position: relative; }
.paper::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .5;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .3  0 0 0 0 .22  0 0 0 0 .14  0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.cover { background: var(--green); color: var(--on-green); --sc-ink: var(--on-green); --sc-ink-soft: var(--on-green-2); --sc-accent: var(--cognac-lit); position: relative; }
.inkground { background: var(--ink); color: var(--bone); --sc-ink: var(--bone); --sc-ink-soft: #CDBFAE; --sc-accent: var(--cognac-lit); }

/* ---------------------------------------------------------------- type -- */
.d-xl, .d-lg, .d-md, .d-sm { font-family: var(--sc-font-display); font-weight: 400; margin: 0; text-wrap: balance; }
.d-xl { font-size: clamp(2.9rem, 1.6rem + 5.6vw, 6.6rem); line-height: .95; letter-spacing: -.02em; }
.d-lg { font-size: clamp(2.3rem, 1.5rem + 3.4vw, 4.6rem); line-height: 1; letter-spacing: -.015em; }
.d-md { font-size: clamp(1.7rem, 1.25rem + 1.9vw, 2.75rem); line-height: 1.06; letter-spacing: -.01em; }
.d-sm { font-size: clamp(1.3rem, 1.1rem + .8vw, 1.75rem); line-height: 1.15; }
em.it, .it { font-style: italic; }
.cog { color: var(--cognac); }
.cover .cog, .inkground .cog { color: var(--cognac-lit); }
.label {
  font-family: var(--sc-font-text); font-size: .78rem; font-weight: 600;
  letter-spacing: .14em; text-transform: uppercase; color: var(--ink-3); margin: 0;
}
.cover .label, .inkground .label { color: var(--on-green-2); }
.lede { font-size: clamp(1.15rem, 1.05rem + .45vw, 1.4rem); line-height: 1.5; max-width: 40ch; margin: 0; text-wrap: pretty; }
.body { max-width: 60ch; margin: 0; color: var(--ink-2); text-wrap: pretty; }
.cover .body { color: var(--on-green-2); }
.inkground .body { color: #CDBFAE; }
.tr { display: block; font-family: var(--sc-font-text); font-style: normal; font-size: .95rem; letter-spacing: .01em; color: var(--ink-3); margin-top: .35em; }
.cover .tr, .inkground .tr { color: var(--on-green-2); }

/* ------------------------------------------------------------- buttons -- */
.btn {
  --b-bg: var(--orange); --b-fg: var(--ink);
  display: inline-flex; align-items: center; justify-content: center; gap: .6em;
  min-height: 52px; padding: 0 1.5em; border-radius: var(--sc-r-sm);
  background: var(--b-bg); color: var(--b-fg); border: 1px solid color-mix(in oklab, var(--ink) 30%, var(--b-bg));
  font-weight: 650; font-size: 1rem; letter-spacing: .01em; text-decoration: none; white-space: nowrap;
  box-shadow: 0 1px 0 rgb(255 255 255 / .35) inset, 0 2px 4px hsl(28 40% 12% / .18), 0 8px 18px -8px hsl(28 40% 12% / .35);
  cursor: pointer; transition: transform 140ms var(--sc-ease-out), box-shadow 160ms var(--sc-ease-out), background-color 160ms var(--sc-ease-out);
}
.btn:active { transform: translateY(1px) scale(.985); }
@media (hover: hover) and (pointer: fine) { .btn:hover { background: color-mix(in oklab, var(--orange) 88%, var(--bone)); } }
.btn--green { --b-bg: var(--green); --b-fg: var(--bone); border-color: var(--green-deep); }
@media (hover: hover) and (pointer: fine) { .btn--green:hover { background: var(--green-2); } }
.btn--ghost { --b-bg: transparent; --b-fg: currentColor; border-color: currentColor; box-shadow: none; }
@media (hover: hover) and (pointer: fine) { .btn--ghost:hover { background: color-mix(in oklab, currentColor 8%, transparent); } }
.btn[disabled], .btn[aria-disabled="true"] { opacity: .45; cursor: not-allowed; transform: none; }
.btn svg { width: 1.15em; height: 1.15em; flex: none; }
.link { font-weight: 600; text-decoration: underline; text-underline-offset: .25em; text-decoration-thickness: 1px; color: inherit; display: inline-flex; align-items: center; min-height: 48px; }
.link:hover { text-decoration-thickness: 2px; }

/* -------------------------------------------------------------- header -- */
.bar {
  position: fixed; inset: 0 0 auto 0; z-index: 70; height: var(--bar-h);
  display: flex; align-items: center; gap: 1rem; padding-inline: clamp(.9rem, 3vw, 2rem);
  color: var(--ink);
}
.bar::before { /* the blur lives on a layer, never on the bar itself (drawer containing-block trap) */
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: color-mix(in oklab, var(--bone) 88%, transparent);
  -webkit-backdrop-filter: blur(10px) saturate(1.1); backdrop-filter: blur(10px) saturate(1.1);
  border-bottom: 1px solid var(--hair);
}
.bar__mark { display: flex; align-items: center; gap: .65rem; text-decoration: none; color: inherit; min-height: 48px; }
.bar__mark img { width: 38px; height: 38px; }
.bar__name { font-family: var(--sc-font-display); font-size: 1.28rem; line-height: 1; white-space: nowrap; }
.bar__tab {
  margin-left: .6rem; display: none; align-items: center; gap: .55rem; height: 34px; padding: 0 .9rem 0 .75rem;
  border: 1px solid var(--hair-strong); border-bottom-color: transparent; border-radius: 6px 6px 0 0;
  background: var(--bone-2); font-size: .82rem; font-weight: 600; letter-spacing: .02em; align-self: flex-end; margin-bottom: -1px;
}
.bar__tab::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--cognac); }
.bar__tab span { transition: opacity 200ms var(--sc-ease-out); }
@media (min-width: 980px) { .bar__tab { display: inline-flex; } }
.bar__right { margin-left: auto; display: flex; align-items: center; gap: .5rem; }
.bar .btn { min-height: 44px; padding: 0 1.1em; font-size: .95rem; }
.menu-btn {
  display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; padding: 0 .9rem;
  background: transparent; border: 1px solid var(--hair-strong); border-radius: var(--sc-r-sm); cursor: pointer; font-weight: 600; font-size: .95rem;
}
.menu-btn:hover { background: color-mix(in oklab, var(--ink) 5%, transparent); }
.menu-btn i { width: 16px; height: 10px; position: relative; display: block; border-top: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; }
@media (max-width: 520px) { .bar__name { font-size: 1.1rem; } .bar .btn { padding: 0 .85em; font-size: .9rem; } .menu-btn span { display: none; } }
@media (max-width: 380px) { .bar__name { display: none; } }

/* contents sheet (menu) */
.contents { position: fixed; inset: 0; z-index: 90; display: grid; place-items: start end; padding: 12px; visibility: hidden; }
.contents.is-open { visibility: visible; }
.contents__veil { position: absolute; inset: 0; background: hsl(28 30% 8% / .5); opacity: 0; transition: opacity 240ms var(--sc-ease-out); }
.contents.is-open .contents__veil { opacity: 1; }
.contents__sheet {
  position: relative; width: min(440px, 100%); max-height: calc(100svh - 24px); overflow: auto;
  background: var(--bone); color: var(--ink); border-radius: var(--sc-r-md); padding: 1.4rem 1.4rem 1.2rem;
  box-shadow: var(--sc-e3); transform: translateY(-8px) scale(.98); opacity: 0;
  transition: transform 260ms var(--sc-ease-drawer), opacity 200ms var(--sc-ease-out);
}
.contents.is-open .contents__sheet { transform: none; opacity: 1; }
.contents__head { display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--hair-strong); padding-bottom: .8rem; margin-bottom: .4rem; }
.contents__head .d-sm { font-size: 1.5rem; }
.close-x { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 50%; border: 1px solid var(--hair-strong); background: transparent; cursor: pointer; }
.close-x:hover { background: color-mix(in oklab, var(--ink) 6%, transparent); }
.contents ol { list-style: none; margin: 0; padding: 0; counter-reset: c; }
.contents li a {
  display: grid; grid-template-columns: 2.2rem 1fr; align-items: baseline; gap: .2rem .6rem; padding: .7rem .2rem; min-height: 56px;
  text-decoration: none; border-bottom: 1px dashed var(--hair-strong);
}
.contents li a::before { counter-increment: c; content: counter(c, decimal-leading-zero); grid-row: span 2; font-size: .8rem; font-weight: 700; color: var(--ink-3); letter-spacing: .06em; }
.contents li b { font-size: 1.12rem; font-weight: 650; }
.contents li small { font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); }
.contents li a:hover b { text-decoration: underline; text-underline-offset: .2em; }
.contents__foot { margin-top: 1rem; display: grid; gap: .5rem; }
.contents__foot .btn { width: 100%; }

/* ================================================== 01 · NOTICE (hero) == */
.notice { --p: var(--sc-p, 0); }
.notice [data-sc-stage] { overflow: clip; }
.n-guilloche { position: absolute; inset: auto 0 0 0; height: 64px; opacity: .55; background: url(assets/logo/guilloche-strip.svg) repeat-x 0 50% / auto 64px; border-top: 1px solid var(--hair); }
.n-water {
  position: absolute; width: min(78vh, 62vw); aspect-ratio: 1; right: -12vw; top: 6vh; opacity: .07; pointer-events: none;
  transform: rotate(calc(-18deg + 40deg * var(--p))) translate3d(0, calc(-6vh * var(--p)), 0);
}
.n-grid {
  position: absolute; inset: var(--bar-h) 0 64px 0;
  display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); align-items: center;
  padding-inline: clamp(1.2rem, 5vw, 5rem); gap: clamp(1rem, 3vw, 3rem);
}
.n-left { position: relative; z-index: 3; align-self: center; transform: translate3d(0, calc(-5vh * var(--p)), 0); }
.n-eyebrow { display: flex; align-items: center; gap: .8rem; margin-bottom: clamp(.8rem, 2vh, 1.4rem); }
.n-eyebrow::after { content: ""; flex: 1; max-width: 9rem; height: 1px; background: var(--hair-strong); }
.n-title { margin: 0; position: relative; }
.n-plate { width: min(100%, 620px); height: auto; filter: drop-shadow(0 1px 0 rgb(255 255 255 / .6)); }
.n-office { font-family: var(--sc-font-display); font-style: italic; color: var(--cognac); font-size: clamp(1.45rem, 1.1rem + 1.3vw, 2.3rem); line-height: 1.1; margin: clamp(.7rem, 1.6vh, 1.1rem) 0 0; }
.n-sub { margin: clamp(.8rem, 2vh, 1.3rem) 0 clamp(1.1rem, 2.6vh, 1.8rem); max-width: 36ch; font-size: clamp(1.06rem, 1rem + .35vw, 1.28rem); line-height: 1.5; color: var(--ink-2); }
.n-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.4rem; }

.n-right { position: relative; z-index: 2; height: 100%; display: grid; place-items: center; }
.exhibit-mount {
  position: relative; width: min(30vw, 44vh); aspect-ratio: 9 / 16; background: var(--bone-2);
  padding: 10px 10px 46px; border: 1px solid var(--hair-strong); border-radius: 2px;
  box-shadow: 0 2px 3px hsl(28 30% 12% / .18), 0 22px 46px -16px hsl(28 30% 12% / .42), 0 60px 90px -40px hsl(28 30% 12% / .35);
  transform: rotate(calc(-4deg + 4deg * var(--p))) translate3d(calc(-2vw * var(--p)), calc(-2vh * var(--p)), 0) scale(calc(1 + .06 * var(--p)));
  transform-origin: 50% 60%;
}
.exhibit-mount video, .exhibit-mount img { width: 100%; height: 100%; object-fit: cover; background: #2a241e; }
.exhibit-mount figcaption { position: absolute; left: 12px; right: 12px; bottom: 12px; display: flex; justify-content: space-between; gap: .5rem; font-size: .7rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-3); }
.n-seal {
  position: absolute; z-index: 4; width: clamp(110px, 11vw, 168px); aspect-ratio: 1; left: calc(50% - min(15vw, 22vh) - 60px); top: 12%;
  filter: drop-shadow(0 6px 10px hsl(28 30% 12% / .25));
  transform: rotate(calc(-8deg - 70deg * var(--p))) translate3d(calc(-3vw * var(--p)), calc(-14vh * var(--p)), 0);
}
.n-clip {
  position: absolute; z-index: 5; right: calc(50% - min(15vw, 22vh) - 26px); top: 7%; width: 54px; height: 100px;
  border: 3px solid #8f8778; border-radius: 27px; border-bottom-color: transparent; transform: rotate(14deg);
  box-shadow: inset 0 0 0 3px var(--bone-2);
}
@media (max-width: 860px) {
  .n-grid { grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: auto auto; align-content: center; column-gap: 1rem; row-gap: clamp(1rem, 3vh, 1.8rem); padding-inline: 1.1rem; }
  .n-left { display: contents; transform: none; }
  .n-head { grid-column: 1 / -1; grid-row: 1; }
  .n-copy { grid-column: 1; grid-row: 2; align-self: center; position: relative; z-index: 3; }
  .n-right { grid-column: 2; grid-row: 2; height: auto; display: block; }
  .exhibit-mount { width: min(42vw, 27vh); padding: 6px 6px 28px; }
  .exhibit-mount figcaption { font-size: .54rem; bottom: 8px; left: 8px; right: 8px; letter-spacing: .1em; }
  .n-seal { width: 72px; left: auto; right: -14px; top: -26px; transform: rotate(calc(-8deg - 70deg * var(--p))); }
  .n-clip { display: none; }
  .n-sub { font-size: 1rem; margin: 0 0 1rem; }
  .n-actions { flex-direction: column; align-items: flex-start; gap: .15rem; }
  .n-water { width: 120vw; right: -40vw; top: 26vh; }
  .n-plate { width: 100%; }
}
@media (max-width: 860px) and (max-height: 700px) { .exhibit-mount { width: 36vw; } }

/* ================================================= 02 · EXHIBITS (pan) == */
.exhibits [data-sc-stage] { display: flex; align-items: center; }
.ex-rail { gap: clamp(1.2rem, 2.4vw, 2.6rem); padding-inline: clamp(1.2rem, 5vw, 5rem); align-items: center; padding-top: var(--bar-h); }
.ex-lead { flex: 0 0 min(30rem, 84vw); display: grid; gap: 1.1rem; align-content: center; }
.ex-lead .d-lg { color: var(--bone); }
.ex-count { display: flex; gap: 1.6rem; flex-wrap: wrap; margin-top: .4rem; }
.ex-count div { border-top: 1px solid color-mix(in oklab, var(--bone) 30%, transparent); padding-top: .6rem; }
.ex-count b { display: block; font-family: var(--sc-font-display); font-weight: 400; font-size: clamp(1.9rem, 1.4rem + 1.5vw, 2.7rem); line-height: 1; color: var(--bone); }
.ex-count span { font-size: .85rem; color: var(--on-green-2); }
.ex-card {
  flex: 0 0 auto; width: clamp(220px, 21vw, 300px); position: relative; text-align: left; color: var(--ink);
  background: var(--bone); padding: 10px 10px 14px; border: 0; border-radius: 2px; cursor: pointer; font: inherit;
  box-shadow: 0 2px 4px hsl(150 40% 4% / .35), 0 26px 50px -22px hsl(150 40% 4% / .7);
  transform: rotate(var(--r, 0deg)); transition: transform 220ms var(--sc-ease-out), box-shadow 220ms var(--sc-ease-out);
}
.ex-card:nth-of-type(odd) { --r: -1.4deg; margin-top: -3vh; }
.ex-card:nth-of-type(even) { --r: 1.2deg; margin-top: 4vh; }
@media (hover: hover) and (pointer: fine) { .ex-card:hover { transform: rotate(0deg) translateY(-6px); box-shadow: 0 4px 8px hsl(150 40% 4% / .35), 0 34px 60px -22px hsl(150 40% 4% / .8); } }
.ex-card:focus-visible { outline-offset: 6px; }
.ex-card--land { width: clamp(300px, 34vw, 500px); }
.ex-media, .ex-meta, .ex-title, .ex-where { display: block; }
.ex-media { position: relative; aspect-ratio: 9 / 16; overflow: hidden; background: #1d1813; }
.ex-card--land .ex-media { aspect-ratio: 16 / 9; }
.ex-media img, .ex-media video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ex-media video { opacity: 0; transition: opacity 300ms var(--sc-ease-out); }
.ex-media video.is-on { opacity: 1; }
.ex-play {
  position: absolute; right: 10px; bottom: 10px; display: inline-flex; align-items: center; gap: .45rem; padding: .5rem .8rem .5rem .6rem;
  background: var(--bone); color: var(--ink); border-radius: 999px; font-size: .82rem; font-weight: 650; box-shadow: 0 2px 8px hsl(28 30% 8% / .35);
}
.ex-play svg { width: 18px; height: 18px; }
.ex-meta { padding: .8rem .2rem 0; display: grid; gap: .35rem; }
.ex-meta .row { display: flex; justify-content: space-between; align-items: baseline; gap: .5rem; }
.ex-meta .label { font-size: .7rem; }
.ex-views { font-size: .82rem; font-weight: 700; color: var(--cognac); white-space: nowrap; }
.ex-title { font-family: var(--sc-font-display); font-size: 1.22rem; line-height: 1.16; margin: 0; }
.ex-where { font-size: .82rem; color: var(--ink-3); margin: 0; }
.ex-end { flex: 0 0 min(20rem, 70vw); display: grid; gap: 1rem; align-content: center; color: var(--bone); }
.ex-end p { margin: 0; color: var(--on-green-2); }
.ex-end .btn { justify-self: start; }

/* player dialog */
.player { border: 0; padding: 0; background: transparent; max-width: none; max-height: none; width: 100%; height: 100%; }
.player::backdrop { background: hsl(150 30% 4% / .86); }
.player__inner { width: 100%; height: 100%; display: grid; place-items: center; padding: 64px 16px 16px; }
.player__frame { position: relative; height: min(82svh, 860px); aspect-ratio: var(--ar, 9 / 16); max-width: 100%; max-height: calc((100vw - 32px) / var(--arn, .5625)); background: #000; box-shadow: var(--sc-e3); }
.player__frame video { width: 100%; height: 100%; object-fit: contain; background: #000; }
.player__cap { position: absolute; left: 0; right: 0; top: calc(100% + .6rem); color: var(--bone); display: flex; justify-content: space-between; gap: 1rem; font-size: .9rem; }
.player__cap a { color: var(--bone); }
.player__close { position: fixed; top: 12px; right: 12px; width: 52px; height: 52px; border-radius: 50%; border: 1px solid rgb(243 236 223 / .4); background: rgb(243 236 223 / .1); color: var(--bone); cursor: pointer; display: grid; place-items: center; }
.player__close:hover { background: rgb(243 236 223 / .2); }
@media (max-width: 600px) { .player__frame { height: min(74svh, 100%); } .player__cap { font-size: .8rem; } }

/* ============================================== 03 · THE MINISTER (flow) == */
.minister { padding-block: clamp(5rem, 10vw, 10rem) clamp(4rem, 8vw, 8rem); overflow: clip; }
.min-grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(2rem, 6vw, 7rem); align-items: start; }
.min-photo { position: relative; margin: 0; }
.min-photo__frame { position: relative; aspect-ratio: 4 / 5.4; overflow: hidden; border-radius: 2px; box-shadow: var(--sc-e2); }
.min-photo__frame img { width: 100%; height: 115%; object-fit: cover; object-position: 50% 30%; }
.min-photo figcaption { margin-top: .8rem; display: flex; justify-content: space-between; gap: 1rem; }
.min-photo .stampmini { position: absolute; right: -28px; bottom: 52px; width: 128px; transform: rotate(-12deg); }
.min-copy { display: grid; gap: 1.4rem; padding-top: clamp(0rem, 4vw, 4rem); }
.min-copy .body { color: var(--ink-2); font-size: 1.08rem; line-height: 1.68; }
.langs { display: flex; flex-wrap: wrap; gap: .5rem; margin: .2rem 0 0; padding: 0; list-style: none; }
.langs li { border: 1px solid var(--hair-strong); padding: .45rem .8rem; border-radius: 999px; font-weight: 600; font-size: .92rem; background: var(--bone-2); }
.orders { margin-top: 1rem; border-top: 1px solid var(--ink); }
.orders h3 { margin: 1rem 0 .4rem; }
.order { display: grid; grid-template-columns: 3.2rem 1fr; gap: .8rem; padding: 1rem 0; border-bottom: 1px dashed var(--hair-strong); }
.order__no { font-family: var(--sc-font-display); font-size: 1.6rem; line-height: 1; color: var(--cognac); }
.order q { font-family: var(--sc-font-display); font-size: clamp(1.25rem, 1.1rem + .6vw, 1.6rem); line-height: 1.2; quotes: "\201C" "\201D"; }
.order p { margin: .3rem 0 0; color: var(--ink-3); font-size: .9rem; }
.min-silence { text-align: center; padding: clamp(5rem, 12vw, 10rem) 1rem 0; }
.min-silence q { font-family: var(--sc-font-display); font-style: italic; font-size: clamp(1.5rem, 1.2rem + 1.4vw, 2.4rem); line-height: 1.2; color: var(--ink); quotes: none; display: block; max-width: 26ch; margin: 0 auto; }
@media (max-width: 860px) { .min-grid { grid-template-columns: 1fr; } .min-photo { max-width: 460px; } .min-photo .stampmini { right: -6px; width: 104px; } }

/* =================================================== 04 · THE OATH (peak) == */
.oath { --p: var(--sc-p, 0); }
.oath [data-sc-stage] { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr) auto; padding: calc(var(--bar-h) + 1.4vh) clamp(1rem, 4vw, 4rem) 2.2vh; gap: 1.6vh; }
.oath__head { display: flex; justify-content: space-between; align-items: end; gap: 1rem; min-width: 0; }
.oath__head > div { min-width: 0; }
.oath__head .label { color: #CDBFAE; }
.oath__tri { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: 100%; height: 100%; gap: clamp(.6rem, 1.4vw, 1.4rem); min-height: 0; }
.panel { --t: clamp(0, (var(--p) - var(--s)) * 5, 1); position: relative; display: grid; grid-template-rows: minmax(0, 1fr) auto; gap: 1.2vh; min-height: 0; height: 100%; }
.panel__film { position: relative; min-height: 0; height: 100%; overflow: hidden; background: #241e18; clip-path: inset(calc(100% * (1 - var(--t))) 0 0 0); }
.panel__film video, .panel__film img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.panel__line { opacity: var(--t); transform: translate3d(0, calc(12px * (1 - var(--t))), 0); }
.panel__line .d-md { color: var(--bone); }
.panel__line .tr { color: #CDBFAE; font-size: 1rem; }
.panel__no { position: absolute; top: 10px; left: 10px; z-index: 2; background: var(--bone); color: var(--ink); font-size: .7rem; font-weight: 700; letter-spacing: .14em; padding: .35rem .55rem; text-transform: uppercase; }
.oath__foot { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 1.4rem; min-height: 96px; }
.oath__seal { width: clamp(84px, 9vh, 120px); --u: clamp(0, (var(--p) - .66) * 8, 1);
  opacity: var(--u); transform: scale(calc(1.5 - .5 * var(--u))) rotate(calc(-30deg + 30deg * var(--u))); filter: drop-shadow(0 6px 12px rgb(0 0 0 / .4)); }
.oath__sworn { --u: clamp(0, (var(--p) - .7) * 8, 1); opacity: var(--u); min-width: 0; }
.oath__sworn .d-sm { color: var(--bone); }
.oath__sworn p { margin: .2rem 0 0; color: #CDBFAE; font-size: .95rem; }
@media (max-width: 860px) {
  .oath [data-sc-stage] { padding-inline: 0; }
  .oath__head { padding-inline: 1.1rem; }
  .oath__tri { display: flex; gap: 4vw; padding-inline: 18vw; min-width: 0; transform: translate3d(calc(-1 * clamp(0, (var(--p) - .12) * 2.2, 1) * 2 * 68vw), 0, 0); }
  .panel { flex: 0 0 64vw; --t: clamp(0, (var(--p) - var(--s)) * 6, 1); }
  .oath__foot { padding-inline: 1.1rem; grid-template-columns: auto 1fr; }
  .oath__foot .btn { display: none; }
}

/* ============================================ 05 · DEPARTMENTS (reveal) == */
.depts { padding-block: clamp(5rem, 10vw, 9rem); }
.depts__head { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 2rem 4rem; align-items: end; margin-bottom: clamp(2.5rem, 5vw, 4.5rem); }
.ledger { border-top: 2px solid var(--ink); }
.dept { display: grid; grid-template-columns: 112px minmax(0, 1fr) minmax(0, 1.1fr) auto; gap: 1rem 2.2rem; align-items: center; padding: 1.6rem 0; border-bottom: 1px solid var(--hair-strong); }
.dept__seal { width: 104px; height: 104px; }
.dept__name .label { margin-bottom: .3rem; }
.dept__name h3 { margin: 0; }
.dept__desc { margin: 0; color: var(--ink-2); }
.dept__add { min-height: 48px; display: inline-flex; align-items: center; gap: .5rem; padding: 0 1rem; border: 1px solid var(--ink); background: transparent; border-radius: var(--sc-r-sm); cursor: pointer; font-weight: 650; white-space: nowrap; }
.dept__add[aria-pressed="true"] { background: var(--green); color: var(--bone); border-color: var(--green); }
.dept__add:hover { background: color-mix(in oklab, var(--ink) 6%, transparent); }
.dept__add[aria-pressed="true"]:hover { background: var(--green-2); }
.dept__add .tick { width: 18px; height: 18px; border: 1.5px solid currentColor; border-radius: 3px; display: grid; place-items: center; }
.dept__add[aria-pressed="true"] .tick::after { content: ""; width: 9px; height: 5px; border-left: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(-45deg) translate(1px, -1px); }
.band { margin: clamp(2.5rem, 5vw, 4rem) 0 0; display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(1.5rem, 4vw, 4rem); align-items: center; }
.band__film { position: relative; aspect-ratio: 9 / 16; max-height: 78vh; overflow: hidden; background: #241e18; justify-self: center; width: min(100%, 400px); box-shadow: var(--sc-e2); }
.band__film video, .band__film img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.band__film .ex-play { cursor: pointer; border: 0; }
@media (max-width: 900px) {
  .depts__head { grid-template-columns: 1fr; }
  .dept { grid-template-columns: 76px 1fr; align-items: start; }
  .dept__seal { width: 72px; height: 72px; }
  .dept__desc, .dept__add { grid-column: 2; }
  .dept__add { justify-self: start; }
  .band { grid-template-columns: 1fr; }
}

/* ========================================= 06 · JURISDICTION (map draw) == */
.juris { --p: var(--sc-p, 0); }
.juris [data-sc-stage] { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); align-items: center; gap: clamp(1rem, 4vw, 4rem); padding: calc(var(--bar-h) + 2vh) clamp(1.2rem, 5vw, 5rem) 3vh; }
.map { width: 100%; height: auto; max-height: calc(100svh - var(--bar-h) - 6vh); overflow: visible; -webkit-mask-image: radial-gradient(150% 120% at 55% 50%, #000 72%, transparent 100%); mask-image: radial-gradient(150% 120% at 55% 50%, #000 72%, transparent 100%); }
.map-grat line { stroke: color-mix(in oklab, var(--bone) 9%, transparent); stroke-width: 1; }
.map-land { fill: color-mix(in oklab, var(--green) 70%, var(--bone) 6%); stroke: color-mix(in oklab, var(--bone) 18%, transparent); stroke-width: 1; }
.map-land--home { fill: color-mix(in oklab, var(--green-2) 82%, var(--bone) 12%); stroke: color-mix(in oklab, var(--bone) 42%, transparent); }
.map-route { fill: none; stroke: var(--cognac-lit); stroke-width: 2.2; stroke-linecap: round; stroke-dasharray: 1 1;
  stroke-dashoffset: calc(1 - clamp(0, (var(--p) - var(--s, 0)) * 4, 1)); }
.map-dot { fill: var(--bone); stroke: var(--green); stroke-width: 2; }
.map-dot--home { fill: var(--orange); stroke: var(--bone); stroke-width: 3; }
.map-dot--near { fill: var(--cognac-lit); stroke: none; }
.map-label { fill: var(--bone); font: 600 19px var(--sc-font-text); letter-spacing: .02em; paint-order: stroke; stroke: var(--green); stroke-width: 5px; }
.map-label--home { font-size: 24px; }
.map-sub { fill: var(--on-green-2); font-weight: 500; font-size: 14px; }
.juris__copy { display: grid; gap: 1.1rem; align-content: center; }
.places { margin: 0; padding: 0; list-style: none; columns: 2; column-gap: 1.6rem; font-size: .95rem; color: var(--on-green-2); }
.places li { break-inside: avoid; padding: .25rem 0; border-bottom: 1px solid color-mix(in oklab, var(--bone) 10%, transparent); }
.places li b { color: var(--bone); font-weight: 600; }
.diary { margin-top: .4rem; border: 1px solid color-mix(in oklab, var(--bone) 24%, transparent); border-radius: var(--sc-r-md); padding: 1rem 1.1rem; background: color-mix(in oklab, var(--green-deep) 60%, transparent); }
.diary h3 { margin: 0 0 .5rem; color: var(--bone); }
.diary ul { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: 1fr 1fr; gap: .1rem 1.2rem; font-size: .92rem; }
.diary li { display: flex; justify-content: space-between; gap: .6rem; padding: .3rem 0; border-bottom: 1px dashed color-mix(in oklab, var(--bone) 16%, transparent); color: var(--on-green-2); }
.diary li b { color: var(--bone); font-weight: 600; font-variant-numeric: tabular-nums; }
.diary p { margin: .7rem 0 0; font-size: .9rem; color: var(--on-green-2); }
.diary .link { color: var(--bone); min-height: 44px; }
@media (max-width: 900px) {
  .juris [data-sc-stage] { grid-template-columns: 1fr; grid-template-rows: auto 1fr; align-content: start; gap: .6rem; padding-top: calc(var(--bar-h) + 1rem); }
  .juris__copy { order: -1; gap: .5rem; }
  .juris__copy .body, .places { display: none; }
  .map { max-height: 50svh; justify-self: center; width: auto; }
  .diary { padding: .7rem .8rem; }
  .diary ul { font-size: .82rem; }
}

/* ========================================= 07 · REPORTS FROM THE FIELD == */
.reports { padding-block: clamp(5rem, 10vw, 9rem); }
.reports__head { display: grid; gap: 1rem; max-width: 46rem; margin-bottom: clamp(2.5rem, 5vw, 4rem); }
.slips { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.8rem); align-items: start; }
.slip {
  grid-column: span 4; position: relative; background: #FBF7EF; padding: 1.3rem 1.3rem 1.1rem; border: 1px solid var(--hair);
  box-shadow: 0 1px 2px hsl(28 30% 12% / .12), 0 14px 28px -16px hsl(28 30% 12% / .35);
  transform: rotate(var(--r, 0deg));
}
.slip:nth-child(1) { grid-column: span 5; --r: -1deg; }
.slip:nth-child(2) { grid-column: span 4; --r: .8deg; margin-top: 2.5rem; }
.slip:nth-child(3) { grid-column: span 3; --r: -.5deg; }
.slip:nth-child(4) { grid-column: span 4; --r: .6deg; }
.slip:nth-child(5) { grid-column: span 4; --r: -.9deg; margin-top: 1.5rem; }
.slip:nth-child(6) { grid-column: span 4; --r: .4deg; }
.slip::before { content: ""; position: absolute; top: -9px; left: 50%; width: 76px; height: 18px; translate: -50% 0; background: color-mix(in oklab, var(--bone-3) 80%, transparent); box-shadow: 0 1px 1px hsl(28 30% 12% / .1); }
.slip .label { display: flex; justify-content: space-between; font-size: .68rem; }
.slip blockquote { margin: .9rem 0 .8rem; font-family: var(--sc-font-display); font-size: clamp(1.25rem, 1.1rem + .6vw, 1.65rem); line-height: 1.2; }
.slip:nth-child(1) blockquote { font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.4rem); }
.slip .tr { margin: -.3rem 0 .8rem; }
.slip footer { display: flex; align-items: center; gap: .5rem; padding-top: .7rem; border-top: 1px dashed var(--hair-strong); font-size: .88rem; color: var(--ink-2); }
.slip footer b { font-variant-numeric: tabular-nums; color: var(--ink); }
.slip footer svg { width: 16px; height: 16px; color: var(--cognac); }
@media (max-width: 900px) { .slips { grid-template-columns: 1fr; } .slip, .slip:nth-child(n) { grid-column: auto; margin-top: 0; } }

/* =========================================== 08 · THE APPOINTMENT DESK == */
.desk { padding-block: clamp(5rem, 9vw, 8rem) 0; }
.desk__head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1.5rem 3rem; align-items: end; margin-bottom: clamp(2rem, 4vw, 3rem); }
.desk__head .body { color: var(--on-green-2); }
.desk__steps3 { display: flex; gap: 1.6rem; margin: 0; padding: 0; list-style: none; counter-reset: s; }
.desk__steps3 li { counter-increment: s; display: grid; grid-template-columns: auto 1fr; gap: .1rem .6rem; font-size: .9rem; color: var(--on-green-2); max-width: 15ch; }
.desk__steps3 li::before { content: counter(s); grid-row: span 2; width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--on-green-2); display: grid; place-items: center; font-weight: 700; font-size: .8rem; color: var(--bone); }
.desk__steps3 b { color: var(--bone); font-weight: 600; }

.deskapp { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .92fr); gap: 0; background: var(--bone); color: var(--ink); border-radius: var(--sc-r-md); overflow: hidden; box-shadow: 0 2px 4px hsl(150 40% 4% / .3), 0 40px 80px -30px hsl(150 40% 4% / .7); }
.da-form { padding: clamp(1.2rem, 3vw, 2.6rem); display: grid; grid-template-rows: auto 1fr auto; gap: 1.4rem; min-height: 620px; border-right: 1px solid var(--hair-strong); }
.da-progress { display: flex; gap: .35rem; align-items: center; }
.da-progress i { flex: 1; height: 6px; border-radius: 3px; background: var(--bone-3); position: relative; overflow: hidden; }
.da-progress i::after { content: ""; position: absolute; inset: 0; background: var(--green); transform: scaleX(0); transform-origin: left; transition: transform 320ms var(--sc-ease-out); }
.da-progress i.done::after, .da-progress i.now::after { transform: scaleX(1); }
.da-progress i.now::after { background: var(--cognac); }
.da-progress span { font-size: .8rem; font-weight: 600; color: var(--ink-3); margin-left: .5rem; white-space: nowrap; }
.da-step { display: none; align-content: start; gap: 1rem; }
.da-step.is-on { display: grid; animation: stepIn 320ms var(--sc-ease-out); }
@keyframes stepIn { from { opacity: 0; transform: translate3d(0, 10px, 0); } }
.da-q { font-family: var(--sc-font-display); font-size: clamp(1.6rem, 1.3rem + 1.2vw, 2.3rem); line-height: 1.08; margin: 0; }
.da-hint { margin: -.4rem 0 0; color: var(--ink-3); font-size: .95rem; }
.da-field { display: grid; gap: .4rem; }
.da-field label { font-weight: 650; font-size: .95rem; }
.da-input, .da-field textarea {
  min-height: 56px; width: 100%; padding: .8rem 1rem; font-size: 1.1rem; background: #FBF7EF; color: var(--ink);
  border: 1.5px solid var(--hair-strong); border-radius: var(--sc-r-sm); transition: border-color 160ms var(--sc-ease-out), box-shadow 160ms var(--sc-ease-out);
}
.da-field textarea { min-height: 96px; resize: vertical; font-size: 1rem; }
.da-input:focus, .da-field textarea:focus { outline: none; border-color: var(--green); box-shadow: 0 0 0 3px color-mix(in oklab, var(--green) 22%, transparent); }
.da-input[aria-invalid="true"] { border-color: #A2352A; }
.da-err { color: #A2352A; font-size: .9rem; font-weight: 600; margin: 0; min-height: 1.2em; }
.da-date { font-size: 1.25rem; max-width: 22rem; }
.verdict { border-radius: var(--sc-r-md); padding: 1rem 1.1rem; display: none; gap: .5rem; border: 1px solid var(--hair-strong); background: #FBF7EF; }
.verdict.is-on { display: grid; animation: stepIn 260ms var(--sc-ease-out); }
.verdict__tag { display: inline-flex; align-items: center; gap: .5rem; font-weight: 750; font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; }
.verdict__tag::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: currentColor; }
.verdict--open .verdict__tag { color: #2E6B47; }
.verdict--booked .verdict__tag { color: #A2352A; }
.verdict--short .verdict__tag { color: var(--cognac); }
.verdict p { margin: 0; }
.verdict .alts { display: flex; flex-wrap: wrap; gap: .4rem; }
.chip { min-height: 44px; padding: 0 .9rem; border-radius: 999px; border: 1px solid var(--ink); background: transparent; cursor: pointer; font-weight: 600; font-size: .92rem; }
.chip:hover { background: color-mix(in oklab, var(--ink) 6%, transparent); }
.opts { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr)); gap: .55rem; }
.opt { position: relative; }
.opt input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.opt span {
  display: flex; align-items: center; gap: .7rem; min-height: 58px; padding: .7rem .95rem; border: 1.5px solid var(--hair-strong); border-radius: var(--sc-r-sm);
  background: #FBF7EF; font-weight: 600; line-height: 1.25; transition: border-color 140ms var(--sc-ease-out), background-color 140ms var(--sc-ease-out);
}
.opt span::before { content: ""; flex: none; width: 20px; height: 20px; border: 1.5px solid var(--ink-3); border-radius: 50%; }
.opt input[type=checkbox] + span::before { border-radius: 4px; }
.opt input:checked + span { border-color: var(--green); background: color-mix(in oklab, var(--green) 9%, #FBF7EF); }
.opt input:checked + span::before { border-color: var(--green); background: var(--green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3.2 3L15 7' fill='none' stroke='%23F3ECDF' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/16px no-repeat; }
.opt input:focus-visible + span { outline: 2px solid var(--orange); outline-offset: 2px; }
.opt small { display: block; font-weight: 500; color: var(--ink-3); font-size: .82rem; }
.da-nav { display: flex; align-items: center; justify-content: space-between; gap: .8rem; border-top: 1px solid var(--hair); padding-top: 1.1rem; }
.da-back { min-height: 52px; padding: 0 1rem; background: transparent; border: 0; font-weight: 650; cursor: pointer; text-decoration: underline; text-underline-offset: .25em; }
.da-back[hidden] { display: inline-block; visibility: hidden; }

/* the live letter */
.da-letter { background: var(--bone-2); padding: clamp(1rem, 2.4vw, 2rem); display: grid; align-content: start; gap: .8rem; position: relative; }
.da-letter__toggle { display: none; }
.letter {
  position: relative; background: #FBF8F1; color: var(--ink); padding: clamp(1.2rem, 2.6vw, 2.2rem) clamp(1.1rem, 2.4vw, 2.2rem) 1.4rem;
  box-shadow: 0 1px 2px hsl(28 30% 12% / .12), 0 18px 36px -18px hsl(28 30% 12% / .4); border: 1px solid var(--hair);
  font-size: .98rem; line-height: 1.62; overflow: hidden;
}
.letter__water { position: absolute; width: 74%; right: -14%; bottom: -10%; opacity: .06; pointer-events: none; }
.letter__head { display: grid; grid-template-columns: 54px 1fr; gap: .8rem; align-items: center; padding-bottom: .8rem; border-bottom: 1px solid var(--ink); }
.letter__head img { width: 54px; height: 54px; }
.letter__head b { display: block; font-family: var(--sc-font-display); font-weight: 400; font-size: 1.15rem; line-height: 1.1; }
.letter__head small { font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-3); }
.letter__meta { display: flex; justify-content: space-between; gap: 1rem; font-size: .76rem; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-3); margin: .7rem 0 .2rem; }
.letter h4 { font-family: var(--sc-font-display); font-weight: 400; font-size: 1.5rem; margin: .4rem 0 .6rem; letter-spacing: .01em; }
.letter p { margin: 0 0 .7rem; position: relative; z-index: 1; }
.fill { font-weight: 650; border-bottom: 1px solid var(--cognac); padding: 0 .1em; transition: background-color 400ms var(--sc-ease-out); }
.fill.is-empty { color: var(--ink-3); font-weight: 400; border-bottom-style: dotted; }
.fill.flash { background: color-mix(in oklab, var(--orange) 26%, transparent); }
.letter__sign { display: flex; justify-content: space-between; align-items: end; gap: 1rem; margin-top: 1.1rem; min-height: 170px; position: relative; z-index: 1; }
.letter__sign small { display: block; color: var(--ink-3); font-size: .78rem; }
.letter__seal { width: 92px; opacity: .2; transition: opacity 300ms var(--sc-ease-out); }
.letter.is-approved .letter__seal { opacity: 1; animation: press 520ms var(--sc-ease-out); }
.letter__stamp { position: absolute; right: 24%; bottom: 46px; width: 46%; max-width: 300px; opacity: 0; pointer-events: none; transform: rotate(-9deg) scale(1.6); z-index: 2; }
.letter.is-approved .letter__stamp { animation: stamp 620ms cubic-bezier(.2, .9, .2, 1) 180ms forwards; }
@keyframes stamp { 0% { opacity: 0; transform: rotate(-9deg) scale(1.7); } 60% { opacity: .95; transform: rotate(-9deg) scale(.96); } 100% { opacity: .92; transform: rotate(-9deg) scale(1); } }
@keyframes press { 0% { transform: scale(1.25); } 60% { transform: scale(.94); } 100% { transform: scale(1); } }
.letter.is-approved { animation: jolt 300ms ease-out 380ms; }
@keyframes jolt { 30% { transform: translateY(3px); } }

/* result */
.da-done { display: none; gap: 1rem; align-content: start; }
.da-done.is-on { display: grid; animation: stepIn 320ms var(--sc-ease-out); }
.da-ref { font-family: var(--sc-font-display); font-size: clamp(1.8rem, 1.4rem + 1.4vw, 2.6rem); line-height: 1; }
.da-actions { display: grid; gap: .55rem; }
.da-actions .btn { width: 100%; justify-content: center; }
.da-next { margin: .3rem 0 0; padding: 1rem 1.1rem; list-style: none; display: grid; gap: .6rem; background: #FBF7EF; border: 1px solid var(--hair-strong); border-radius: var(--sc-r-md); counter-reset: n; }
.da-next li { counter-increment: n; display: grid; grid-template-columns: 30px 1fr; gap: .6rem; font-size: .96rem; }
.da-next li::before { content: counter(n); width: 26px; height: 26px; border-radius: 50%; background: var(--green); color: var(--bone); display: grid; place-items: center; font-weight: 700; font-size: .8rem; }
.da-honest { font-size: .9rem; color: var(--ink-2); margin: 0; }

@media (max-width: 960px) {
  .desk__head { grid-template-columns: 1fr; }
  .desk__steps3 { flex-wrap: wrap; }
  .deskapp { grid-template-columns: 1fr; }
  .da-form { min-height: 0; border-right: 0; }
  .da-letter { border-top: 1px solid var(--hair-strong); }
  .da-letter__toggle { display: flex; width: 100%; justify-content: space-between; align-items: center; min-height: 52px; background: transparent; border: 1px solid var(--hair-strong); border-radius: var(--sc-r-sm); padding: 0 1rem; font-weight: 650; cursor: pointer; }
  .da-letter__toggle[aria-expanded="false"] + .letter { display: none; }
}

/* film slot + footer */
.film { padding-block: clamp(4rem, 8vw, 7rem) 0; display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(1.5rem, 4vw, 4rem); align-items: center; }
.film__player { position: relative; aspect-ratio: 9 / 16; width: min(100%, 380px); justify-self: center; background: #10201a; box-shadow: var(--sc-e3); }
.film__player video { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 900px) { .film { grid-template-columns: 1fr; } }

.foot { margin-top: clamp(4rem, 8vw, 7rem); padding: 2.6rem 0 2rem; border-top: 1px solid color-mix(in oklab, var(--bone) 18%, transparent); }
.foot__grid { display: grid; grid-template-columns: minmax(0, 1.1fr) repeat(3, minmax(0, .8fr)); gap: 2rem; }
.foot__lock { width: min(320px, 100%); height: auto; }
.foot h4 { margin: 0 0 .7rem; font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; color: var(--on-green-2); font-weight: 700; }
.foot ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .1rem; }
.foot a { color: var(--bone); text-decoration: none; display: inline-flex; align-items: center; gap: .55rem; min-height: 44px; }
.foot a:hover { text-decoration: underline; text-underline-offset: .2em; }
.foot a svg { width: 18px; height: 18px; flex: none; opacity: .9; }
.foot__strip { height: 46px; margin-top: 2.4rem; opacity: .35; background: url(assets/logo/guilloche-strip.svg) repeat-x 0 50% / auto 46px; filter: invert(1) sepia(.2); }
.foot__small { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .6rem 2rem; margin-top: 1.2rem; font-size: .84rem; color: var(--on-green-2); }
.foot__small a { min-height: 0; color: var(--on-green-2); text-decoration: underline; }
@media (max-width: 900px) { .foot__grid { grid-template-columns: 1fr 1fr; } .foot__brand { grid-column: 1 / -1; } }
@media (max-width: 560px) { .foot__grid { grid-template-columns: 1fr; } }

/* ----------------------------------------------------- reduced motion -- */
@media (prefers-reduced-motion: reduce) {
  .notice, .oath, .juris { --p: 1; }
  .n-water, .n-left, .exhibit-mount, .n-seal { transform: none !important; }
  .panel { --t: 1; }
  .oath__tri { transform: none !important; }
  .oath__seal, .oath__sworn { --u: 1; }
  .map-route { stroke-dashoffset: 0; }
  .letter.is-approved .letter__stamp { animation: none; opacity: .92; transform: rotate(-9deg); }
  .letter.is-approved, .letter.is-approved .letter__seal { animation: none; }
  .da-step.is-on, .verdict.is-on, .da-done.is-on { animation: none; }
}
@media (prefers-reduced-motion: reduce) and (max-width: 860px) {
  .oath__tri { overflow-x: auto; scroll-snap-type: x mandatory; padding-inline: 1.1rem; }
  .panel { scroll-snap-align: center; }
}
