:root{--slot:40svh;--bottom-bar:0px}.scene{z-index:0;pointer-events:none;height:100lvh;position:fixed;inset:0 0 auto}.scene-ghost{opacity:.3;transition:opacity 1.6s;position:absolute;inset:0}.scene-ghost img{object-fit:cover;width:100%;height:100%}:root.has-scene .scene-ghost{opacity:0}.scene-canvas{opacity:0;transition:opacity 1.4s;position:absolute;inset:0}.scene-canvas.is-ready{opacity:1}.scene-posters picture{opacity:0;transition:opacity .4s;position:absolute;inset:0}.scene-posters picture.is-active{opacity:1}@starting-style{.scene-posters picture.is-active{opacity:0}}.scene-posters img{object-fit:cover;width:100%;height:100%}.progress{z-index:30;background:var(--brand);transform-origin:0;height:2px;position:fixed;inset:0 0 auto;transform:scaleX(0)}.stop-now{font-family:var(--data);color:var(--ink-2);white-space:nowrap;font-size:.98rem}.stop-now b,.stops-button b{color:var(--brand);font-variant-numeric:tabular-nums;margin-right:.3em}.stops{z-index:15;position:fixed;top:55%;right:0;translate:0 -50%}.stops:before{content:"";background:radial-gradient(farthest-side at 100% 50%, color-mix(in srgb, var(--paper-deep) 86%, transparent) 50%, transparent);opacity:0;pointer-events:none;transition:opacity .3s;position:absolute;inset:-8rem 0 -8rem -20rem}.stops a{width:var(--gutter);height:1.75rem;color:var(--ink-2);text-decoration:none;display:block;position:relative}.stops a:after{content:"";top:50%;right:calc(var(--gutter) / 2 - 6px);width:14px;height:var(--line-wide);box-shadow:0 0 0 1px color-mix(in srgb, var(--paper-deep) 45%, transparent), 0 0 8px 2px color-mix(in srgb, var(--paper-deep) 85%, transparent);opacity:.8;transition:width .35s var(--ease-out), opacity .2s ease, background-color .2s ease;background:currentColor;position:absolute;translate:0 -50%}.stops a[aria-current]:after{background:var(--brand);opacity:1;width:28px}@media (height<=950px){.stops a{height:1.5rem}}.stop-label{font-family:var(--data);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .25s ease, translate .35s var(--ease-out);align-items:baseline;gap:.55em;padding-right:.15rem;font-size:1.05rem;font-weight:600;display:flex;position:absolute;top:50%;right:100%;translate:.5rem -50%}.stop-n{font-variant-numeric:tabular-nums;opacity:.8;font-size:.9rem}.stops:is(:hover,:has(:focus-visible)):before{opacity:1}.stops:is(:hover,:has(:focus-visible)) .stop-label{opacity:1;pointer-events:auto;translate:0 -50%}.stops a[aria-current]{color:var(--ink)}.stops a:is(:hover,:focus-visible){color:var(--brand)}.stops a:hover:after,.stops a:focus-visible:after{opacity:1}.stops a:focus-visible{outline:none}.stops a:focus-visible .stop-label{outline:2px solid var(--brand);outline-offset:4px}.stops-sheet{inset:auto 0 var(--bottom-bar) 0;width:100%;max-width:none;padding:.4rem var(--gutter) .9rem;background:var(--paper-deep);color:var(--ink);opacity:0;transition:opacity .2s ease-in, translate .2s ease-in, overlay .2s allow-discrete, display .2s allow-discrete;border:0;margin:0;display:none;position:fixed;translate:0 1rem}.stops-sheet:popover-open{opacity:1;transition-timing-function:var(--ease-out);transition-duration:.3s;display:block;translate:none}@starting-style{.stops-sheet:popover-open{opacity:0;translate:0 1rem}}.stops-sheet::backdrop{background:#071b3166}.stops-sheet ol{border-bottom:var(--line) solid var(--rule)}.stops-sheet a{border-top:var(--line) solid var(--rule);font-family:var(--display);grid-template-columns:2.75rem minmax(0,1fr);align-items:baseline;padding:.55rem 0 .5rem;font-size:1.5rem;font-weight:760;line-height:1.1;text-decoration:none;display:grid}.stops-sheet .stop-n{font-family:var(--data);color:var(--ink-2);opacity:1;font-size:1rem;font-weight:600}.stops-sheet a[aria-current]{color:var(--brand)}main{z-index:1;position:relative;overflow-x:clip}.chapter{position:relative}.beat{display:none}.stage{padding:calc(var(--header) + 14svh) var(--gutter) 14svh;position:relative}.items{grid-template-columns:minmax(0,1fr);gap:40svh;min-width:0;max-width:40rem;display:grid}.item{isolation:isolate;position:relative}.item:before{content:"";z-index:-1;background:radial-gradient(closest-side, var(--glow) 64%, transparent);pointer-events:none;position:absolute;inset:-5.5rem -8rem}.chapter{--glow:color-mix(in srgb, var(--paper) 94%, transparent)}.chapter-hero .items{max-width:48rem}.chapter-finished .items,.chapter-projects .items{max-width:30rem}.chapter-hero .item:before{inset:-60vh -34vw -60vh calc(-1 * var(--gutter) - 1px);background:linear-gradient(90deg, var(--glow) 50%, transparent)}.chapter-site,.chapter-projects,.chapter-contact{--ink:#f2f4f7;--ink-2:#d3dae6;--brand:#8fe0d6;--brand-ink:#0b2745;--paper:#0b2745;--tint:#f2f4f724;--tint-strong:#f2f4f73d;--glow:#081a30b3;color:var(--ink)}.chapter-projects{--glow:#081a3073}h1{font-family:var(--display);letter-spacing:-.015em;text-wrap:balance;font-size:clamp(2.4rem,1rem + 4.6vw,5.6rem);font-weight:800;line-height:.98}h2{font-family:var(--display);letter-spacing:-.012em;text-wrap:balance;font-size:clamp(2.2rem,1.1rem + 4vw,5.4rem);font-weight:800;line-height:1}h3{font-family:var(--display);letter-spacing:-.01em;text-wrap:balance;font-size:clamp(1.9rem,1.1rem + 3vw,4.2rem);font-weight:780;line-height:1.02}.lead{text-wrap:pretty;max-width:34rem;margin-top:1.1rem;font-size:clamp(1.1rem,1rem + .4vw,1.35rem);line-height:1.45}.more{font-family:var(--data);color:var(--brand);text-underline-offset:.25em;margin-top:.4rem;margin-bottom:-.6rem;padding-block:.6rem;font-size:1.1rem;font-weight:650;display:inline-block}h3 a{text-decoration:none}h3 a:hover{text-underline-offset:.15em;text-decoration:underline 2px}.actions{flex-wrap:wrap;gap:.6rem;margin-top:1.6rem;display:flex}.scroll-hint{left:var(--gutter);bottom:calc(var(--bottom-bar) + 4svh);font-family:var(--data);color:var(--ink-2);font-size:.98rem;position:absolute}.scroll-hint:after{content:"";background:var(--brand);width:1px;height:2.2rem;margin-top:.6rem;display:block}.facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem;margin-top:1.8rem;display:grid}.facts dt{font-family:var(--display);color:var(--brand);font-variant-numeric:tabular-nums;font-size:clamp(1.6rem,1.2rem + 1vw,2.2rem);font-weight:720;line-height:1}.facts dd{color:var(--ink-2);margin-top:.5rem;font-size:.95rem;line-height:1.35}.chapter-finished .facts{grid-template-columns:repeat(2,auto);justify-content:start;column-gap:2.5rem}.chapter-finished .facts dt{white-space:nowrap}.index{font-family:var(--display);gap:.35rem;margin-top:1.4rem;font-size:clamp(1.25rem,1rem + .75vw,1.75rem);font-weight:720;line-height:1.15;display:grid}.index a{align-items:baseline;gap:.6em;text-decoration:none;display:inline-flex}.index a:before{content:"";background:var(--brand);flex:none;width:.9em;height:2px;transform:translateY(-.3em)}.index a:hover{text-underline-offset:.15em;text-decoration:underline 2px}.sheets{gap:.55rem;margin-top:1.4rem;display:grid}.sheets a{grid-template-columns:auto minmax(0,1fr);align-items:baseline;column-gap:.9rem;text-decoration:none;display:grid}.sheet-no{min-width:3.6rem;font-family:var(--data);color:var(--brand);font-variant-numeric:tabular-nums;grid-row:span 2;font-size:.95rem}.sheet-title{font-family:var(--display);font-size:clamp(1.15rem,1rem + .4vw,1.4rem);font-weight:720;line-height:1.12}.sheet-place{font-family:var(--data);color:var(--ink-2);font-size:.95rem}.sheets a:hover .sheet-title,.sheets li[data-shown] .sheet-title,.sheets li.pointed .sheet-title{text-underline-offset:.15em;text-decoration:underline 2px}.sheet-photo{display:none}:root:not(.has-scene) .sheets a{grid-template-columns:4.5rem auto minmax(0,1fr)}:root:not(.has-scene) .sheet-photo{grid-row:span 2;align-self:center;display:block}.sheet-photo img{aspect-ratio:3/2;object-fit:cover;width:4.5rem;height:auto;display:block}.kicker{font-family:var(--data);color:var(--ink-2);margin-bottom:.5rem;font-size:1rem;font-weight:650}.caption h2,.caption h3{font-size:clamp(1.9rem,1.2rem + 2.2vw,3.4rem)}.caption .lead{max-width:30rem;font-size:clamp(1.02rem,.95rem + .3vw,1.2rem)}.caption :is(.kicker,.lead,.more){text-shadow:0 1px 2px #081a308c,0 0 18px #081a30bf}.contact-list{gap:.9rem;margin-top:1.6rem;display:grid}.contact-list dt{font-family:var(--data);color:var(--ink-2);font-size:.95rem}.contact-list dd{font-family:var(--display);font-variant-numeric:tabular-nums;font-size:clamp(1.25rem,1rem + .9vw,1.8rem);font-weight:700;line-height:1.15}.contact-list div:last-child dd{font-family:var(--text);font-size:1.1rem;font-weight:500}.contact-list a{margin-block:-.55rem;padding-block:.55rem;text-decoration:none;display:inline-block}.contact-list a:hover{color:var(--brand)}.chapter-contact .stage{padding-bottom:0}.chapter-contact .site-footer{margin:14svh calc(-1 * var(--gutter)) 0;pointer-events:auto}.bottom-bar{display:none}@media (prefers-reduced-motion:reduce){html{scroll-padding-top:calc(var(--header) + 1rem)}}@media (prefers-reduced-motion:reduce) and (width>=861px){.item:before{background:radial-gradient(closest-side, var(--glow) 76%, transparent);inset:-6rem -11rem}}@supports not (animation-timeline:view()){html{scroll-padding-top:calc(var(--header) + 1rem)}}@media (prefers-reduced-motion:reduce) and (width<=860px){.stage{padding-block:40svh}.chapter-hero .stage{padding-top:calc(var(--header) + 14svh)}.items{gap:80svh}}@supports not (animation-timeline:view()){@media (width<=860px){.stage{padding-block:40svh}.chapter-hero .stage{padding-top:calc(var(--header) + 14svh)}.items{gap:80svh}}}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){html{scroll-snap-type:y mandatory;touch-action:pinch-zoom}:root[data-snap=off]{scroll-snap-type:none;touch-action:auto}.beat{left:0;top:calc((var(--i) + .5) * var(--slot));pointer-events:none;scroll-snap-align:start;scroll-snap-stop:always;width:1px;height:1px;display:block;position:absolute}.chapter-hero .beat{top:0}.scene,.story{transition:opacity .5s var(--ease-out)}:root[data-jumping] :is(.scene,.story){opacity:0;transition:opacity .28s ease-in}.progress{animation-name:progress-grow;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:scroll(root)}.chapter{height:calc(100svh + var(--n) * var(--slot));view-timeline:--chapter block;scroll-margin-top:calc(-.5 * var(--slot));pointer-events:none}.chapter+.chapter{margin-top:-100svh}.stage{height:100svh;padding:var(--header) var(--gutter) var(--bottom-bar);align-items:center;display:grid;position:sticky;top:0}.items{gap:0;display:grid}.items>.item{pointer-events:auto;animation-name:item-slot;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--chapter;animation-range:contain calc(var(--i) / var(--n) * 100%) contain calc((var(--i) + 1) / var(--n) * 100%);grid-area:1/1;align-self:center}.chapter-hero .items>.item{animation-name:hero-out;animation-range:contain}.chapter-contact .items>.item{animation-name:item-enter;animation-range:contain contain 50%}.chapter-contact{overflow:clip}.chapter-contact .stage{grid-template-rows:minmax(0,1fr) auto}.chapter-contact .site-footer{margin-top:0}.scroll-hint{animation-name:hint-out;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--chapter;animation-range:contain contain 60%}.chapter-site .stage{padding-top:calc(var(--header) + 4svh);align-items:start}.chapter-site .items{isolation:isolate;position:relative}.chapter-site .items>.item:before{content:none}.chapter-site .items:before{content:"";z-index:-1;background:radial-gradient(closest-side, var(--glow) 64%, transparent);pointer-events:none;animation-name:site-glow;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--chapter;animation-range:contain;position:absolute;inset:-5.5rem -8rem}}}@keyframes site-glow{0%{opacity:0}11%,89%{opacity:1}to{opacity:0}}@keyframes progress-grow{to{transform:scaleX(1)}}@keyframes item-slot{0%{opacity:0;pointer-events:none;transform:translateY(2.5rem)}22%,78%{opacity:1;pointer-events:auto;transform:none}to{opacity:0;pointer-events:none;transform:translateY(-2.5rem)}}@keyframes hero-out{0%,20%{opacity:1;pointer-events:auto;transform:none}to{opacity:0;pointer-events:none;transform:translateY(-2.5rem)}}@keyframes item-enter{0%,40%{opacity:0;pointer-events:none;transform:translateY(2.5rem)}to{opacity:1;pointer-events:auto;transform:none}}@keyframes hint-out{to{opacity:0}}@media (scripting:none){.stop-now,.stops-button :is([data-stop-n],[data-stop-name]){display:none}.stops-button:before{content:attr(data-label)}}@media (width<=1180px){.stop-now{display:none}}@media (width>=861px) and (width<=1280px){.facts .detail{display:none}}@media (width<=860px),(hover:none) and (pointer:coarse){:root{--bottom-bar:calc(56px + env(safe-area-inset-bottom))}.bottom-bar{z-index:20;height:var(--bottom-bar);padding-bottom:env(safe-area-inset-bottom);background:var(--paper);font-family:var(--data);grid-template-columns:minmax(0,1fr) auto;font-size:1.05rem;font-weight:650;display:grid;position:fixed;inset:auto 0 0}.bottom-bar a{place-items:center;text-decoration:none;display:grid}.bottom-bar .call{background:var(--brand);color:var(--brand-ink);padding-inline:1.75rem}.stops-button{min-width:0;padding:0 var(--gutter);color:var(--ink);font:inherit;text-align:left;white-space:nowrap;cursor:pointer;background:0 0;border:0;align-items:center;display:flex}.stops-button [data-stop-name]{text-overflow:ellipsis;overflow:hidden}.stops-button svg{fill:none;stroke:var(--brand);stroke-width:2px;transition:rotate .3s var(--ease-out);flex:none;margin-left:.5rem}.stops-button[data-open] svg{rotate:180deg}.stops,.chapter-hero .actions .button:not(.button-primary),.chapter-contact .actions .button:not(.button-primary){display:none}}@media (width<=860px){.item:before,.chapter-hero .item:before{--fade:3rem;inset:-3rem -100vw -3rem calc(-1 * var(--gutter) - 1px);background:linear-gradient(to bottom, transparent, var(--glow) var(--fade), var(--glow) calc(100% - var(--fade)), transparent)}.chapter-finished .items,.chapter-projects .items{max-width:40rem}h1{font-size:2.2rem}h2{font-size:2rem}h3{font-size:1.6rem}.caption h2,.caption h3{font-size:1.55rem}.caption .lead{font-size:.95rem}.kicker{margin-bottom:.3rem;font-size:.9rem}.index{gap:0;margin-top:.45rem;font-size:1.15rem}.index a{padding-block:.45rem}.sheets{gap:.35rem;margin-top:.9rem}.sheet-no{font-size:.82rem}.sheet-title{font-size:1rem}.sheet-place{display:none}:root.has-scene .chapter-projects .items{container-type:inline-size}:root.has-scene .sheets{--peek:3.25rem;grid-auto-flow:column;grid-auto-columns:calc(100cqi - var(--peek));margin-inline:calc(-1 * var(--gutter));padding-inline:var(--gutter) calc(var(--gutter) + var(--peek));scroll-padding-inline:var(--gutter);overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;gap:1.25rem;overflow-x:auto}:root.has-scene .sheets::-webkit-scrollbar{display:none}:root.has-scene .sheets li{scroll-snap-align:start;border-top:2px solid var(--tint-strong);padding-top:.6rem;transition:border-color .2s}:root.has-scene .sheets li[data-shown]{border-top-color:var(--brand)}:root.has-scene .sheets li[data-shown] .sheet-title{text-decoration:none}:root.has-scene .sheet-place{display:block}.lead{margin-top:.7rem;font-size:1rem;line-height:1.42}.actions{margin-top:1.1rem}.facts{gap:.8rem;margin-top:1.1rem}.facts dt{font-size:1.4rem}.facts dd{margin-top:.35rem;font-size:.82rem}.detail{display:none}.contact-list{grid-template-columns:auto minmax(0,1fr);align-items:baseline;gap:.75rem 1rem;margin-top:1rem}.contact-list div{display:contents}.contact-list dt{font-size:.85rem}.contact-list dd{font-size:1.15rem}.contact-list div:last-child dd{font-size:.95rem}.scroll-hint{display:none}}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference) and (width<=860px){:root.has-scene .sheets{touch-action:pan-x pinch-zoom}.stage{padding-bottom:calc(var(--bottom-bar) + 22px);align-items:end}.items>.item{align-self:end}.item:before,.chapter-hero .item:before{--fade:4.5rem;inset:-5rem -100vw -40vh calc(-1 * var(--gutter) - 1px)}.chapter-site .items:before{--fade:4.5rem;inset:-40vh -100vw -5rem calc(-1 * var(--gutter) - 1px);background:linear-gradient(to bottom, transparent, var(--glow) var(--fade), var(--glow) calc(100% - var(--fade)), transparent)}.chapter-site .stage{padding-top:calc(var(--header) + 14px);align-items:start}.chapter-site .items>.item{align-self:start}.chapter-contact .stage{padding-bottom:0}.chapter-contact .items{padding-bottom:18px}}}
