


@font-face{ font-family:"PP Neue Montreal"; src:url("fonts/ppnm-400.woff2") format("woff2"); font-weight:100 400; font-style:normal; font-display:swap; }
@font-face{ font-family:"PP Neue Montreal"; src:url("fonts/ppnm-500.woff2") format("woff2"); font-weight:500 600; font-style:normal; font-display:swap; }
@font-face{ font-family:"PP Neue Montreal"; src:url("fonts/ppnm-700.woff2") format("woff2"); font-weight:700 900; font-style:normal; font-display:swap; }


:root{
  --ground:#F4F4F2; --ink:#0B0B0B; --quiet:#62625D; --line:#D6D6D1; --hair:rgba(11,11,11,.12); --stage:#E8E8E4;
  --chip:#E6E6E2; --card:#FFFFFF; --deep:#0B0B0B; --veil:rgba(11,11,11,.5); --scrim:rgba(11,11,11,.10); --scrim2:rgba(11,11,11,.42);
  --m:clamp(20px, 4.17vw, 60px); --gp:10px; --rad:4px;
  --d1:clamp(34px, 4.31vw, 74px);
  --d2:clamp(40px, 5.6vw, 92px);
  --b1:clamp(17px, 1.39vw, 22px);
  --b2:clamp(14px, 1.11vw, 17px);
  --font:"PP Neue Montreal","Helvetica Neue",Helvetica,Arial,sans-serif;
}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]){ --ground:#0B0B0B; --ink:#EDEDEA; --quiet:#86867F; --line:#2E2E2C; --hair:rgba(237,237,234,.14); --stage:#171717;
  --chip:#222221; --card:#161616; --deep:#000000; --veil:rgba(0,0,0,.66); --scrim:rgba(0,0,0,.34); --scrim2:rgba(0,0,0,.64); color-scheme:dark; } }
:root[data-theme="dark"]{ --ground:#0B0B0B; --ink:#EDEDEA; --quiet:#86867F; --line:#2E2E2C; --hair:rgba(237,237,234,.14); --stage:#171717;
  --chip:#222221; --card:#161616; --deep:#000000; --veil:rgba(0,0,0,.66); --scrim:rgba(0,0,0,.34); --scrim2:rgba(0,0,0,.64); color-scheme:dark; }
@media (max-width:767px){ :root{ --gp:6px; } }
body{ font-weight:400; letter-spacing:0; }




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



.fs-go{ color:var(--quiet); transition:color .18s ease; }
.fs-go span{ display:inline-block; margin-left:.15em; transition:transform .25s cubic-bezier(.2,.7,.2,1); }
.fs-go:hover, .fs-go:focus-visible{ color:var(--ink); }
.fs-go:hover span, .fs-go:focus-visible span{ transform:translateX(5px); }




.fs-tile{ display:block; min-width:0; color:var(--ink); }
.fs-med{ display:block; position:relative; overflow:hidden; border-radius:var(--rad); background:var(--bgm, var(--stage)); aspect-ratio:var(--ar, 7 / 8); max-width:100%; isolation:isolate; }
.fs-med > img, .fs-med > video{ position:absolute; inset:0; width:100%; height:100%; object-fit:var(--fit, cover); object-position:var(--pos, 50% 50%); display:block; }
.fs-med > img{ transition:transform 1.4s cubic-bezier(.2,.7,.2,1), opacity .6s ease; }
.fs-med > video{ opacity:0; transition:opacity .45s ease; object-fit:var(--vfit, cover); background:var(--deep); }
.fs-tile.play .fs-med > video{ opacity:1; }
@media (hover:hover) and (pointer:fine){ .fs-tile:hover .fs-med > img{ transform:scale(1.025); } }
.fs-nm{ margin:0; font-size:var(--b2); line-height:1.15; letter-spacing:-.01em; }
.fs-nm b{ font-weight:400; }
.fs-nm span{ color:var(--quiet); }
.fs-tile:focus-visible{ outline:none; }
.fs-tile:focus-visible .fs-med{ outline:2px solid var(--ink); outline-offset:3px; }






.fs-dlg{ border:0; padding:0; margin:auto; background:transparent; max-width:none; max-height:none; width:min(640px, calc(100vw - 32px)); color:var(--ink); overflow:visible; }
.fs-dlg::backdrop{ background:var(--veil); }
.fs-dlg .card{ position:relative; background:var(--card); border-radius:8px; padding:34px 34px 38px; max-height:calc(100svh - 48px); overflow:auto; box-shadow:0 30px 80px rgba(0,0,0,.25); }
.fs-dlg .x{ position:absolute; top:14px; right:14px; width:40px; height:40px; border:0; border-radius:20px; background:var(--chip); color:var(--ink); font:inherit; font-size:20px; line-height:1; cursor:pointer; }
.fs-dlg h3{ margin:6px 50px 20px 0; font-weight:400; font-size:clamp(26px, 2.6vw, 38px); line-height:.95; letter-spacing:-.02em; }
.fs-dlg p{ margin:0 0 14px; font-size:18px; line-height:1.4; letter-spacing:0; }
.fs-dlg .fs-med{ margin:0 0 20px; }









.fs-wm{ display:block; width:100%; height:auto; margin:clamp(40px, 4.2vw, 64px) 0 0; padding-bottom:clamp(20px, 2.4vw, 36px); color:var(--ink); box-sizing:content-box; }


.fsj .fs-rv{ opacity:0; transform:translateY(22px); transition:opacity .8s ease, transform 1s cubic-bezier(.2,.7,.2,1); }
.fsj .fs-rv.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ .fsj .fs-rv{ opacity:1; transform:none; transition:none; } .fs-med > img{ transition:none; } }


.fr{ position:absolute; inset:0; display:block; overflow:hidden; background:var(--stage); }
.fr > img.full{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.fr > img.fit{ position:absolute; inset:4% 6%; width:88%; height:92%; object-fit:contain; }


svg.dr{ position:absolute; inset:0; width:100%; height:100%; display:block; color:var(--ink); background:var(--stage); }
svg.dr rect{ fill:currentColor; transform-box:view-box; }
svg.dr .o{ fill-opacity:0; stroke:currentColor; stroke-width:1.5px; vector-effect:non-scaling-stroke; }
@media (prefers-reduced-motion:reduce){ svg.dr rect{ transition:none !important; animation:none !important; } }



.fs-wm.lock{ width:clamp(200px, calc((100% - 11 * var(--gp)) / 12 * 4 + 3 * var(--gp)), 460px); margin-top:clamp(64px, 7vw, 112px); padding-bottom:clamp(40px, 4.4vw, 72px); }
@media (max-width:767px){ .fs-wm.lock{ width:58%; } }

/* FOOTER · The footer ends on the page's own weight: the figure this browser measured, the carbon it stands for, and the line
   which sets it beside the rest of the site and the web; then the index and the legal row. The label sits in the left panel and
   everything else starts at the panel's edge, three columns of twelve in, as on the homepage. */
.fs-ft{ display:grid; grid-template-columns:repeat(12, minmax(0, 1fr)); align-items:start; margin-top:clamp(64px, 7vw, 120px); padding:18px var(--u) calc(clamp(40px, 4.4vw, 72px) + env(safe-area-inset-bottom, 0px)); border-top:1px solid var(--line); font-size:15px; line-height:1.4; letter-spacing:0; color:var(--ink); }
.fs-ft .ftm{ grid-column:1 / -1; display:grid; grid-template-columns:subgrid; align-items:start; }
.fs-ft .ftm-l{ grid-column:1 / span 3; margin:0; font-size:15px; font-weight:400; line-height:1.4; letter-spacing:0; }
.fs-ft .ftm-f{ grid-column:4 / -1; margin:0; font-size:clamp(72px, 13vw, 220px); font-weight:400; line-height:.86; letter-spacing:-.045em; font-variant-numeric:tabular-nums; }
.fs-ft .ftm-f{ white-space:nowrap; }
.fs-ft .ftm-f .u{ margin-left:.1em; font-size:.42em; letter-spacing:-.02em; }
.fs-ft .ftm-s{ grid-column:4 / span 6; margin:clamp(20px, 2vw, 32px) 0 0; max-width:34em; font-size:clamp(17px, 1.25vw, 19px); line-height:1.35; color:var(--quiet); text-wrap:pretty; }
.fs-ft .ftm-s .ld{ color:var(--ink); }
/* The line and the index end one column short of the right edge, so the footer keeps its air on the right as the page does on the left. */
.fs-ft .fpln{ grid-column:4 / -2; margin-top:clamp(20px, 2.4vw, 40px); }
.fs-ft .fpln-t{ position:relative; height:150px; }
.fs-ft .fpln-t::before{ content:""; position:absolute; left:0; right:0; top:74px; height:1px; background:var(--line); }
.fs-ft .fpln .sg{ position:absolute; top:74px; left:0; width:0; height:1px; background:var(--ft-hl); transition:width 1s cubic-bezier(.2, .7, .2, 1); }
.fs-ft .fpln .tk{ position:absolute; top:67px; width:0; height:15px; border-left:1px solid var(--quiet); }
.fs-ft .fpln .tk.us, .fs-ft .fpln .tk.rest{ border-left-color:var(--ft-hl); }
.fs-ft .fpln .mk{ position:absolute; margin:0; display:flex; flex-direction:column; gap:2px; white-space:nowrap; transition:opacity .4s ease .4s; }
/* the marks wait for the script which places them; without scripts the line is left out, and the figure above and the note beneath
   stand on the build's measure */
.js .fs-ft .fpln .mk{ opacity:0; }
.js .fs-ft .fpln.on .mk{ opacity:1; }
html:not(.js) .fs-ft .fpln-t, html:not(.js) .fs-ft .fpln-k{ display:none; }
.fs-ft .fpln .mk b{ font-weight:400; font-size:13px; line-height:1.2; color:var(--quiet); }
.fs-ft .fpln .mk span{ font-size:clamp(20px, calc(var(--u, 24px) * .4), 28px); line-height:1.05; letter-spacing:-.01em; color:var(--ink); font-variant-numeric:tabular-nums; }
.fs-ft .fpln .mk.us b, .fs-ft .fpln .mk.rest b{ color:var(--ft-hl); }
.fs-ft .fpln .mk.up{ bottom:84px; } .fs-ft .fpln .mk.dn{ top:92px; } .fs-ft .fpln .mk.d2{ top:146px; } .fs-ft .fpln-t.l3{ height:200px; }
.fs-ft .fpln .mk.al{ align-items:flex-start; text-align:left; } .fs-ft .fpln .mk.ac{ align-items:center; text-align:center; } .fs-ft .fpln .mk.ar{ align-items:flex-end; text-align:right; }
.fs-ft .fpln-n{ margin:6px 0 0; max-width:46em; font-size:13px; line-height:1.4; color:var(--quiet); }
.fs-ft .idx{ grid-column:4 / -2; display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); column-gap:24px; row-gap:28px; margin-top:clamp(56px, 6vw, 96px); }
.fs-ft .idx h3{ margin:0 0 6px; font-size:13px; font-weight:400; line-height:1.4; letter-spacing:0; color:var(--quiet); }
.fs-ft .idx ul{ list-style:none; margin:0; padding:0; font-size:15px; line-height:1.6; }
.fs-ft .idx li{ min-height:24px; }
.fs-ft .idx p{ margin:0; max-width:18em; font-size:15px; line-height:1.6; }
.fs-ft .idx .soon{ color:var(--quiet); }
.fs-ft a{ color:inherit; text-decoration:none; transition:color .18s ease; }
.fs-ft a:hover, .fs-ft a:focus-visible{ color:var(--quiet); }
.fs-ft .base{ grid-column:1 / -1; display:flex; flex-wrap:wrap; justify-content:space-between; align-items:baseline; gap:10px 32px; margin-top:clamp(56px, 6vw, 96px); padding-top:18px; border-top:1px solid var(--line); font-size:13px; color:var(--quiet); }
.fs-ft .base p{ margin:0; } .fs-ft .base i{ font-style:normal; margin:0 .55em; }
.fs-ft .base a{ color:var(--ink); } .fs-ft .base a:hover, .fs-ft .base a:focus-visible{ color:var(--quiet); }
@media (max-width:1023px){ .fs-ft .ftm-s{ grid-column:4 / -1; } }
@media (max-width:767px){
  .fs-ft{ padding-bottom:calc(96px + env(safe-area-inset-bottom, 0px)); }
  .fs-ft .ftm-l, .fs-ft .ftm-f, .fs-ft .ftm-s, .fs-ft .fpln, .fs-ft .idx{ grid-column:1 / -1; }
  .fs-ft .ftm-f{ margin-top:12px; font-size:clamp(64px, 23vw, 120px); }
  .fs-ft .idx{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .fs-ft .idx > div:last-child{ grid-column:1 / -1; }
  .fs-ft .base{ display:block; } .fs-ft .base .cd{ margin-top:12px; } .fs-ft .base i{ margin:0 .4em; }
}
@media (prefers-reduced-motion:reduce){ .fs-ft .fpln .sg, .fs-ft .fpln .mk{ transition:none; } }
