:root{--bg: #FAFAF9;--fg: #0E1013;--muted: rgba(44,47,54,0.72);--rule: #DEE1E6;--hover: rgba(222,225,230,0.45);--panel: #0E1013;--on-panel: #FAFAF9;--accent: #00A896;--on-accent: #0E1013;color-scheme:light dark}@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--bg: #0E1013;--fg: #FAFAF9;--muted: rgba(222,225,230,0.72);--rule: #2C2F36;--hover: rgba(44,47,54,0.55);--panel: #0E1013;--on-panel: #FAFAF9}}:root[data-theme="light"]{--bg: #FAFAF9;--fg: #0E1013;--muted: rgba(44,47,54,0.72);--rule: #DEE1E6;--hover: rgba(222,225,230,0.45);--panel: #0E1013;--on-panel: #FAFAF9;color-scheme:light}:root[data-theme="dark"]{--bg: #0E1013;--fg: #FAFAF9;--muted: rgba(222,225,230,0.72);--rule: #2C2F36;--hover: rgba(44,47,54,0.55);--panel: #0E1013;--on-panel: #FAFAF9;color-scheme:dark}*,*::before,*::after{box-sizing:border-box}[hidden]{display:none !important}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{margin:0;min-height:100vh;display:flex;flex-direction:column;font-family:"Hanken Grotesk",system-ui,-apple-system,"Segoe UI",sans-serif;font-weight:400;font-size:1.0625rem;line-height:1.6;color:var(--fg);background:var(--bg);-webkit-font-smoothing:antialiased}h1,h2,h3,h4{margin:0;font-family:"Outfit",system-ui,-apple-system,"Segoe UI",sans-serif;font-weight:600;line-height:1.05;letter-spacing:-0.03em}p{margin:0}a{color:inherit}img{display:block;max-width:100%}ul{margin:0;padding:0;list-style:none}:focus-visible{outline:2px solid var(--fg);outline-offset:3px;border-radius:4px}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip-link{position:absolute;left:16px;top:-100px;z-index:10;padding:8px 16px;color:var(--bg);background:var(--fg);border-radius:4px}.skip-link:focus{top:16px}.wrap{width:100%;max-width:1248px;margin:0 auto;padding:0 24px}.grid{display:grid;grid-template-columns:repeat(8, minmax(0, 1fr));column-gap:24px}main{flex:1}.grid-lines{position:fixed;inset:0;z-index:0;pointer-events:none}.grid-lines .grid{height:100%;max-width:1248px;margin:0 auto;padding:0 24px;box-sizing:border-box}.grid-lines i{display:block;height:100%;border-left:1px solid var(--rule);opacity:0.6;transform-origin:top}@media (max-width: 600px){.grid-lines{display:none}}.site-header,main,.site-footer{position:relative;z-index:1}.site-header{view-transition-name:site-header}.site-header .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:16px 24px;padding-top:24px;padding-bottom:24px}.site-title{font-family:"Outfit",system-ui,-apple-system,"Segoe UI",sans-serif;font-weight:600;font-size:1.125rem;letter-spacing:-0.02em;text-decoration:none;white-space:nowrap}.site-nav{display:flex;align-items:center;gap:24px;margin-left:auto}@media (max-width: 600px){.site-nav{gap:16px}}.site-nav a{text-decoration:none;color:var(--muted);transition:color 0.2s}.site-nav a:hover,.site-nav a[aria-current="page"]{color:var(--fg)}.lang-switch{display:flex;gap:16px}.lang-switch a{font-size:0.9375rem}.lang-switch a[aria-current="true"]{color:var(--fg);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px}.theme-toggle{display:grid;place-items:center;width:40px;height:40px;padding:0;color:var(--fg);background:none;border:1px solid var(--rule);border-radius:4px;cursor:pointer;transition:background-color 0.2s}@media (hover: hover){.theme-toggle:hover{background:var(--hover)}}.theme-toggle:active{background:var(--hover)}.theme-toggle svg{transition:transform 0.5s cubic-bezier(0.2, 0.8, 0.2, 1)}.theme-toggle:active svg{transform:rotate(180deg)}.site-footer{margin-top:104px}.site-footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;padding-top:24px;padding-bottom:40px;color:var(--muted);font-size:0.9375rem;border-top:1px solid var(--rule)}.site-footer a{text-decoration-thickness:1px;text-underline-offset:4px}.hero{padding-top:64px;padding-bottom:64px}.hero__title{margin-bottom:40px;font-size:clamp(3rem, 9.5vw, 8.5rem);line-height:0.98;letter-spacing:-0.045em}.hero__title .line{display:block;overflow:hidden;padding-bottom:0.08em;margin-bottom:-0.08em}.hero__title .line>span{display:block}.hero__lead{grid-column:1 / span 5;max-width:52ch;font-size:1.1875rem;color:var(--muted)}.hero__cta{grid-column:6 / span 3;align-self:end;justify-self:end}@media (max-width: 900px){.hero{padding-top:40px;padding-bottom:40px}.hero__lead,.hero__cta{grid-column:1 / -1;justify-self:start}.hero__cta{margin-top:24px}}.section{padding-bottom:64px}.section__head{display:flex;align-items:baseline;justify-content:space-between;gap:24px;margin-bottom:24px}.section__title{font-size:1.5rem}.page-head{padding-top:64px;padding-bottom:40px}.page-head h1{font-size:clamp(2.75rem, 7vw, 5.5rem);letter-spacing:-0.04em}.page-head p{margin-top:16px;max-width:52ch;color:var(--muted)}@media (max-width: 900px){.page-head{padding-top:40px}}.btn{display:inline-flex;align-items:center;gap:8px;padding:16px 24px;font:inherit;font-weight:600;line-height:1;text-decoration:none;color:var(--on-accent);background:var(--accent);border:1px solid var(--accent);border-radius:4px;cursor:pointer;transition:transform 0.25s cubic-bezier(0.2, 0.8, 0.2, 1),filter 0.2s}.btn svg{transition:transform 0.3s cubic-bezier(0.2, 0.8, 0.2, 1)}@media (hover: hover){.btn:hover{filter:brightness(1.08)}.btn:hover svg{transform:translate(2px, -2px)}.btn:hover .icon--right{transform:translateX(3px)}}.btn:active{transform:translateY(1px);filter:brightness(1.08)}.btn--ghost{color:var(--fg);background:none;border-color:var(--rule)}@media (hover: hover){.btn--ghost:hover{filter:none;background:var(--hover)}}.btn--ghost:active{filter:none;background:var(--hover)}.icon{flex:none;width:16px;height:16px}.toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 24px;padding-bottom:24px}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{padding:8px 16px;font:inherit;font-size:0.9375rem;color:var(--muted);background:none;border:1px solid var(--rule);border-radius:4px;cursor:pointer;transition:color 0.2s, background-color 0.2s, border-color 0.2s}@media (hover: hover){.chip:hover{color:var(--fg);background:var(--hover)}}.chip[aria-pressed="true"]{color:var(--bg);background:var(--fg);border-color:var(--fg)}.search{width:100%;max-width:280px;padding:8px 16px;font:inherit;font-size:1rem;color:var(--fg);background:none;border:1px solid var(--rule);border-radius:4px}.search::placeholder{color:var(--muted)}.status{padding-bottom:16px;color:var(--muted);font-size:0.9375rem}.empty{padding:64px 0;max-width:44ch}.empty p{margin-bottom:16px}.list-head,.project-row__link{display:grid;grid-template-columns:repeat(8, minmax(0, 1fr));column-gap:24px;align-items:baseline}.list-head{padding-bottom:8px;color:var(--muted);font-size:0.875rem}.list-head span:nth-child(1){grid-column:1 / span 2}.list-head span:nth-child(2){grid-column:3 / span 4}.list-head span:nth-child(3){grid-column:7 / span 2}@media (max-width: 900px){.list-head{display:none}}.project-list{border-top:1px solid var(--rule)}.project-row{border-bottom:1px solid var(--rule)}.project-row__link{position:relative;padding:24px 0;text-decoration:none}.project-row__link::before{content:"";position:absolute;top:0;bottom:0;left:-24px;right:-24px;background:var(--hover);transform:scaleX(0);transform-origin:left;transition:transform 0.5s cubic-bezier(0.2, 0.8, 0.2, 1);z-index:-1}.project-row__link:focus-visible::before,.project-row__link:active::before{transform:scaleX(1)}@media (hover: hover){.project-row__link:hover::before{transform:scaleX(1)}}.project-row__date{grid-column:1 / span 2;color:var(--muted);font-size:0.9375rem}.project-row__main{grid-column:3 / span 4;display:block;transition:transform 0.5s cubic-bezier(0.2, 0.8, 0.2, 1)}.project-row__link:focus-visible .project-row__main{transform:translateX(8px)}@media (hover: hover){.project-row__link:hover .project-row__main{transform:translateX(8px)}}.project-row__title{display:inline-block;font-family:"Outfit",system-ui,-apple-system,"Segoe UI",sans-serif;font-weight:600;font-size:1.75rem;line-height:1.1;letter-spacing:-0.03em}.project-row__summary{display:block;margin-top:4px;max-width:52ch;color:var(--muted)}.project-row__lang{grid-column:7 / span 1;font-size:0.9375rem}.project-row__go{grid-column:8 / span 1;justify-self:end;align-self:center;transition:transform 0.4s cubic-bezier(0.2, 0.8, 0.2, 1)}.project-row__link:focus-visible .project-row__go{transform:translateX(-8px)}@media (hover: hover){.project-row__link:hover .project-row__go{transform:translateX(-8px)}}@media (max-width: 900px){.project-row__link{grid-template-columns:1fr auto;row-gap:8px}.project-row__link::before{left:-16px;right:-16px}.project-row__main{grid-column:1 / -1;grid-row:1}.project-row__date{grid-column:1;grid-row:2}.project-row__lang{grid-column:2;grid-row:2}.project-row__go{display:none}}.back{display:inline-flex;align-items:center;gap:8px;color:var(--muted);text-decoration:none;transition:color 0.2s}.back .icon{transform:scaleX(-1);transition:transform 0.3s cubic-bezier(0.2, 0.8, 0.2, 1)}@media (hover: hover){.back:hover{color:var(--fg)}.back:hover .icon{transform:scaleX(-1) translateX(2px)}}.project{padding-top:40px}.project__head{padding:64px 0 40px;row-gap:24px}.project__title{grid-column:1 / -1;font-size:clamp(2.75rem, 8vw, 6.5rem);letter-spacing:-0.045em}.project__title span{display:inline-block}.project__summary{grid-column:1 / span 5;max-width:44ch;font-size:1.1875rem;color:var(--muted)}.project__actions{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:16px}.project__body{display:grid;grid-template-columns:repeat(8, minmax(0, 1fr));column-gap:24px;row-gap:40px;padding-bottom:64px}.project__visual{grid-column:1 / span 5}.project__side{grid-column:6 / span 3}.project__text{grid-column:1 / span 5;max-width:65ch}.project__text p+p,.project__text p+ul,.project__text ul+p{margin-top:16px}.project__text ul{padding-left:24px;list-style:disc}.project__text a{text-underline-offset:4px}@media (max-width: 900px){.project__head{padding-top:40px}.project__summary,.project__visual,.project__side,.project__text{grid-column:1 / -1}}.facts{margin:0;border-top:1px solid var(--rule)}.facts div{display:grid;grid-template-columns:1fr 2fr;gap:16px;padding:16px 0;border-bottom:1px solid var(--rule)}.facts dt{color:var(--muted);font-size:0.9375rem}.facts dd{margin:0;overflow-wrap:anywhere}.tags{display:flex;flex-wrap:wrap;gap:8px}.tags li{padding:2px 8px;font-size:0.875rem;border:1px solid var(--rule);border-radius:4px}.visual{position:relative;margin:0;aspect-ratio:16 / 9;overflow:hidden;border:1px solid var(--rule);border-radius:4px;background:var(--panel)}.visual img{width:100%;height:100%;object-fit:cover;object-position:top}.visual--empty{display:flex;align-items:flex-end;padding:24px;color:var(--on-panel)}.visual--empty .guides{position:absolute;inset:0;display:grid;grid-template-columns:repeat(8, 1fr)}.visual--empty .guides i{border-left:1px solid var(--on-panel);opacity:0.12}.visual--empty .name{position:relative;font-family:"Outfit",system-ui,-apple-system,"Segoe UI",sans-serif;font-weight:600;font-size:clamp(1.75rem, 5vw, 3.5rem);letter-spacing:-0.04em;line-height:1}.pager{display:grid;grid-template-columns:repeat(8, minmax(0, 1fr));column-gap:24px;padding:40px 0;border-top:1px solid var(--rule)}.pager a{display:block;text-decoration:none}.pager a small{display:block;color:var(--muted);font-size:0.9375rem}.pager a span{font-family:"Outfit",system-ui,-apple-system,"Segoe UI",sans-serif;font-weight:600;font-size:1.5rem;letter-spacing:-0.03em;transition:transform 0.4s cubic-bezier(0.2, 0.8, 0.2, 1);display:inline-block}@media (hover: hover){.pager a:hover span{transform:translateX(8px)}}.pager__prev{grid-column:1 / span 4}.pager__next{grid-column:5 / span 4;text-align:right}@media (hover: hover){.pager__next:hover span{transform:translateX(-8px)}}@keyframes draw-line{from{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes rise{from{transform:translateY(140%)}to{transform:translateY(0)}}@keyframes settle{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.rotator{display:grid;overflow:hidden;padding-bottom:0.12em;margin-bottom:-0.12em}.rotator__item{grid-area:1 / 1;visibility:hidden}.rotator__item:first-child{visibility:visible}@media (prefers-reduced-motion: no-preference){.rotator.is-live .rotator__item{visibility:visible;transform:translateY(140%);transition:transform 0.75s cubic-bezier(0.2, 0.8, 0.2, 1)}.rotator.is-live .rotator__item.is-active{transform:none}.rotator.is-live .rotator__item.is-past{transform:translateY(-140%)}.rotator.is-live .rotator__item.no-anim{transition:none}}@media (prefers-reduced-motion: no-preference){html.intro .grid-lines i{animation:draw-line 1.1s cubic-bezier(0.2, 0.8, 0.2, 1) backwards}html.intro .grid-lines i:nth-child(1){animation-delay:0ms}html.intro .grid-lines i:nth-child(2){animation-delay:70ms}html.intro .grid-lines i:nth-child(3){animation-delay:140ms}html.intro .grid-lines i:nth-child(4){animation-delay:210ms}html.intro .grid-lines i:nth-child(5){animation-delay:280ms}html.intro .grid-lines i:nth-child(6){animation-delay:350ms}html.intro .grid-lines i:nth-child(7){animation-delay:420ms}html.intro .grid-lines i:nth-child(8){animation-delay:490ms}html.intro .hero__title .line>span{display:block;animation:rise 0.95s cubic-bezier(0.2, 0.8, 0.2, 1) backwards;animation-delay:0.45s}html.intro .hero__title .line+.line>span{animation-delay:0.58s}html.intro .hero__lead,html.intro .hero__cta,html.intro .page-head p{animation:settle 0.7s cubic-bezier(0.2, 0.8, 0.2, 1) backwards;animation-delay:0.95s}}@media (pointer: coarse), (max-width: 600px){.site-title,.site-nav a,.lang-switch a,.site-footer a,.back{display:inline-flex;align-items:center;min-height:44px}.chip,.search{min-height:44px}.theme-toggle{width:44px;height:44px}}@media (max-width: 900px){.toolbar{flex-direction:column-reverse;flex-wrap:nowrap;align-items:stretch;gap:16px}.search{max-width:none}}@media (max-width: 600px){.site-header .wrap{display:grid;grid-template-columns:1fr auto;align-items:center;gap:0 16px;padding-top:16px;padding-bottom:8px}.site-title{grid-area:1 / 1}.theme-toggle{grid-area:1 / 2}.site-nav{grid-area:2 / 1 / 3 / 3;margin-left:0}.chips{display:grid;grid-template-columns:repeat(auto-fill, minmax(104px, 1fr));gap:8px}.chip{padding-left:8px;padding-right:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hero__cta{justify-self:stretch}.hero__cta .btn,.project__actions .btn{width:100%;justify-content:center}.project__actions{flex-direction:column}.project__side{order:-1}.pager__prev,.pager__next{grid-column:1 / -1}.pager__next{margin-top:24px;text-align:left}.site-footer .wrap{flex-direction:column;gap:0}}
