.brand img{width:clamp(9rem,40vw,11.875rem);height:auto}
.nav-toggle{display:none;min-height:var(--target);padding:0 var(--s-2);background:transparent;border:1px solid var(--c-ink);color:var(--c-ink);font:inherit;border-radius:var(--radius)}
@media (max-width:60rem){.nav-toggle{display:block}.gnav-wrap{display:none;position:absolute;left:0;right:0;top:100%;background:var(--c-bg);border-bottom:1px solid var(--c-line);padding:var(--s-1) var(--gutter)}.gnav-wrap.is-open{display:block}.site-header{position:relative}.gnav{flex-direction:column}}
.hero{position:relative;min-height:calc(100svh - 4.5rem);display:flex;align-items:flex-start;overflow:hidden;color:#fff;background:var(--c-ink);--sy:0}
.hero__photo{position:absolute;inset:0;margin:0}
.hero__photo img{width:100%;height:100%;object-fit:cover;object-position:45% 60%;scale:1.08;translate:0 calc(var(--sy)*.03px)}
html.js .hero__photo img{animation:kb 26s ease-in-out infinite alternate}
@keyframes kb{to{scale:1.18}}
html.js .hero__photo{animation:wipe 1.5s var(--ease) .1s both}
@keyframes wipe{from{clip-path:inset(0 0 100% 0)}}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,22,44,.66),rgba(14,22,44,.2) 52%,rgba(14,22,44,0) 78%);pointer-events:none}
.hero__grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s-4);padding-block:var(--s-5)}
.hero .logo-slot{margin:0 0 var(--s-4);padding:var(--s-1);background:#fff;color:var(--c-ink)}
.hero h1{margin:0;text-shadow:0 1px 18px rgba(0,0,0,.35)}.hero__sub{display:block;font:500 var(--fs-1)/1.5 var(--f-serif);letter-spacing:.3em;margin-bottom:var(--s-2)}
.hero__en{display:block;font:700 clamp(2rem,1rem + 4.6vw,4.75rem)/1.12 var(--f-serif);letter-spacing:.03em}
.hero__en::after{content:"";display:block;width:5rem;height:4px;background:var(--c-orange);margin-top:var(--s-3)}
html.js .hero__en::after{animation:bar 1.2s var(--ease) 1.4s both}
@keyframes bar{from{width:0}}
.hero__concept{writing-mode:vertical-rl;margin:0;font:700 clamp(2rem,1rem + 3.8vw,3.9rem)/1.8 var(--f-serif);letter-spacing:.2em;text-shadow:0 1px 18px rgba(0,0,0,.35)}
.ch{display:inline-block}
html.js .ch{animation:rise .9s var(--ease) calc(.3s + var(--i)*65ms) both}
html.js .hero__concept .ch{animation-name:rise-v}
@keyframes rise{from{opacity:0;transform:translateY(.7em)}}
@keyframes rise-v{from{opacity:0;transform:translateY(-.7em)}}
@media (max-width:48rem){.hero__grid{grid-template-columns:1fr}.hero__concept{writing-mode:horizontal-tb;letter-spacing:.1em}}
.marquee{overflow:hidden;border-block:1px solid var(--c-line);padding-block:var(--s-2)}
.marquee__track{display:flex;width:max-content}.marquee__grp{display:flex;flex:none}
html.js .marquee__track{animation:mq 50s linear infinite}
@keyframes mq{to{transform:translateX(-50%)}}
.marquee span{font:500 clamp(2.5rem,7vw,6rem)/1.2 var(--f-serif);color:transparent;-webkit-text-stroke:1px var(--c-ink);padding-right:.9em;white-space:nowrap}
main h2{position:relative;padding-top:var(--s-3)}
main h2::before{content:"";position:absolute;top:0;left:0;width:3.5rem;height:3px;background:var(--c-orange);transform-origin:0 50%}
html.js .reveal h2::before{transform:scaleX(0);transition:transform .9s var(--ease) .25s}
html.js .reveal.in h2::before{transform:none}
.future h2::before{left:50%;margin-left:-1.75rem}
.calm-btn{display:none;position:fixed;right:var(--s-2);bottom:var(--s-2);z-index:95;min-height:var(--target);padding:0 var(--s-2);background:var(--c-ink);color:#fff;border:1px solid #fff;border-radius:var(--radius);font:inherit;font-size:var(--fs-sm);cursor:pointer}
html.js .calm-btn{display:block}.calm-btn[aria-pressed="true"]{background:var(--c-red)}
.progress{position:fixed;left:0;top:0;height:3px;width:100%;background:linear-gradient(90deg,var(--c-red),var(--c-orange));transform:scaleX(0);transform-origin:0 50%;z-index:90}
html.calm *,html.calm *::before,html.calm *::after{animation:none!important;transition:none!important}
.intro{text-align:center}.intro__lead{margin-inline:auto;text-align:left}
.intro__years{font:500 clamp(2.5rem,8vw,5.5rem)/1 var(--f-serif);color:var(--c-ink);margin:0 0 var(--s-3);letter-spacing:.06em}.intro__years{font-variant-numeric:tabular-nums}.intro__years i{font-style:normal;color:var(--c-orange);margin:0 .4em}
.tn{display:grid;gap:var(--s-3);grid-template-columns:1fr 1fr}.tn figure{margin:0}.tn__img{aspect-ratio:4/3}.tn figcaption{font-size:var(--fs-sm);color:var(--c-ink-sub);margin-top:var(--s-1)}
@media (max-width:40rem){.tn{grid-template-columns:1fr}}
.section--paper{background:var(--c-paper)}
.tl-scroll{overflow-x:auto;padding-bottom:var(--s-2);margin-bottom:var(--s-3)}
.tl-h{display:flex;gap:var(--s-3);list-style:none;margin:0;padding:var(--s-2) 0 0;border-top:2px solid var(--c-line)}
.tl-h__item{flex:0 0 min(17rem,75vw);position:relative;padding-top:var(--s-2)}.tl-h__item::before{content:"";position:absolute;top:-8px;left:0;width:14px;height:14px;border-radius:50%;background:var(--c-orange)}
.tl-h__item p{font-size:var(--fs-sm);line-height:1.8;margin:0 0 .5rem}.tl-h__item .timeline__year{font-size:var(--fs-3)}
.msg{display:grid;gap:var(--s-4);grid-template-columns:minmax(0,18rem) 1fr;align-items:start}.msg__photo{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover}
.msg__name{font:700 var(--fs-1) var(--f-serif)}.draft{display:inline-block;font-size:var(--fs-sm);font-weight:700;color:var(--c-ink);background:var(--c-peach);padding:.1rem .6rem}
@media (max-width:40rem){.msg{grid-template-columns:1fr}.msg__photo{max-width:16rem}}
.cards{list-style:none;margin:0;padding:0;display:grid;gap:var(--s-3);grid-template-columns:repeat(2,1fr)}
@media (min-width:48rem){.cards{grid-template-columns:repeat(6,1fr)}.cards li{grid-column:span 2}.cards .cards__lg{grid-column:span 3}.cards__lg .card__media{aspect-ratio:16/10}}
.future{background:var(--c-ink);color:#fff;padding-block:var(--s-6);text-align:center}.future h2{font-size:var(--fs-4)}.future .placeholder{background:transparent;color:#fff;border-color:#fff;margin:0 auto var(--s-3);max-width:var(--measure)}
.future .btn{background:var(--c-bg);border-color:var(--c-bg);color:var(--c-red)}.future .btn:hover{background:var(--c-peach);color:var(--c-ink)}
.site-footer{padding-block:var(--s-4);background:var(--c-paper);font-size:var(--fs-sm)}.site-footer__in{display:grid;gap:var(--s-2)}address{font-style:normal}
html.js .reveal{opacity:0;transform:translateY(12px);transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease)}
html.js .reveal.in{opacity:1;transform:none}
.tl-ctl{display:flex;gap:var(--s-1);margin-bottom:var(--s-3)}
html.js .reveal .tn__img,html.js .reveal .msg__photo{clip-path:inset(0 100% 0 0);transition:clip-path 1.2s var(--ease) .15s}
html.js .reveal.in .tn__img,html.js .reveal.in .msg__photo{clip-path:inset(0)}
html.js .tn figure:nth-child(2) .tn__img{transition-delay:.45s}
.card__media{transition:transform .8s var(--ease)}.card{overflow:hidden}.card:hover .card__media,.card:focus-visible .card__media{transform:scale(1.04)}
.future{background:linear-gradient(120deg,var(--c-ink),#4a2018,var(--c-ink));background-size:220% 220%}
html.js .future{animation:flow 16s ease-in-out infinite alternate}
@keyframes flow{to{background-position:100% 50%}}
.tn__img img,.tl-h__fig img{width:100%;height:100%;object-fit:cover}
.tl-h__fig{margin:0 0 var(--s-2)}.tl-h__fig img{aspect-ratio:4/3;height:auto}.tl-h__fig figcaption{font-size:var(--fs-sm);color:var(--c-ink-sub);margin-top:.25rem}
.future{position:relative;overflow:hidden}.future__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.42}.future .container{position:relative}
