@font-face{font-family:Bricolage;src:url('/assets/fonts/bricolage-latin.woff2') format('woff2');font-style:normal;font-weight:300 800;font-display:swap}
@font-face{font-family:Instrument;src:url('/assets/fonts/instrument-latin.woff2') format('woff2');font-style:italic;font-weight:400;font-display:swap}
@font-face{font-family:Martian;src:url('/assets/fonts/martian-latin.woff2') format('woff2');font-style:normal;font-weight:400 700;font-display:swap}
:root{color-scheme:dark;--bg:#10120f;--ink:#eeeade;--muted:#a6a89b;--soft:#858b7d;--orange:#ea8f65;--line:#30362b;--display:Bricolage,system-ui,sans-serif;--mono:Martian,monospace;--ease:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{margin:0;background:var(--bg);color:var(--ink);font:400 1rem/1.6 var(--display);-webkit-font-smoothing:antialiased}body::before{content:'';position:fixed;inset:0;pointer-events:none;z-index:4;opacity:.024;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' opacity='.7' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}
a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--orange);outline-offset:6px}button:disabled{cursor:default}button{cursor:pointer}button:active{transform:scale(.96)}a,button{transition:color .25s var(--ease),background .25s var(--ease),transform .25s var(--ease)}svg{display:block;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}figure,h1,h2,p{margin:0}[hidden]{display:none!important}::selection{background:#ea8f65;color:#10120f}.page-width{width:min(1440px,100% - 112px);margin-inline:auto}.skip-link{position:fixed;top:16px;left:16px;transform:translateY(-200%);padding:12px 20px;background:var(--ink);color:var(--bg);z-index:5}.skip-link:focus{transform:translateY(0)}
.topbar{height:120px;display:flex;justify-content:space-between;align-items:center}.wordmark{display:flex;align-items:center;gap:13px;font-size:24px;font-weight:650;letter-spacing:-1.1px;line-height:1}.wordmark svg{width:30px;height:30px;color:var(--orange);stroke-width:1.8}.wordmark-light{font-weight:400}.wordmark-dot{color:var(--orange)}.header-right{display:flex;align-items:center;gap:50px}.daily-nav{font-size:13px;color:var(--muted)}.daily-nav:hover{color:var(--ink)}.lang-switch{display:flex;align-items:center;gap:7px;font:10px var(--mono)}.lang-switch a{min-height:44px;min-width:30px;display:grid;place-items:center;color:var(--muted)}.lang-switch a[aria-current=true]{color:var(--ink)}.lang-switch>span{color:#515b48}
.hero{display:grid;grid-template-columns:1fr 1.18fr;gap:0;align-items:center;min-height:min(720px,calc(100svh - 120px));padding-block:10px 58px}.hero-copy{position:relative;z-index:1;padding-block:48px}.eyebrow{font:9px/1.8 var(--mono);letter-spacing:1.9px;display:flex;align-items:center;gap:9px;color:var(--muted)}.status-dot{width:5px;height:5px;border-radius:50%;background:var(--orange)}h1{font-size:clamp(56px,5.7vw,86px);letter-spacing:-4.3px;line-height:1.03;font-weight:500;margin-top:26px}h1 em{font-family:Instrument,Georgia,serif;font-size:1.23em;letter-spacing:-4.4px;font-weight:400;color:var(--orange);line-height:1.07}.hero-sub{margin-top:30px;max-width:340px;color:var(--muted);font-size:15px;line-height:1.8;text-wrap:pretty}.hero-link{display:inline-flex;gap:26px;align-items:center;margin-top:32px;min-height:48px;font-size:13px;border-bottom:1px solid #676e5c}.hero-link svg{width:21px;height:21px;transition:transform .35s var(--ease);color:var(--orange)}.hero-link:hover svg{transform:translateX(6px)}.hero-link:hover{color:var(--orange)}.hero-footnote{display:block;margin-top:27px;color:var(--soft);font-size:11px}.machine-stage{position:relative;align-self:center;min-width:0;margin-right:-28px}.stage-art{display:block;width:100%;height:clamp(440px,43vw,660px);position:relative;isolation:isolate;border:0;padding:0;background:transparent;touch-action:pan-y pinch-zoom;cursor:grab;user-select:none;border-radius:24px}.stage-art:active{transform:none;cursor:grabbing}.stage-art:disabled{cursor:default}.stage-art img{pointer-events:none}.stage-art::before{content:'';position:absolute;inset:9% 4% 10%;background:radial-gradient(ellipse at center,rgba(103,112,75,.09),transparent 69%);z-index:-1}#engine-canvas,.machine-poster{width:100%;height:100%;position:absolute;inset:0;object-fit:contain}#engine-canvas{opacity:0;transition:opacity .6s var(--ease)}.machine-poster{transition:opacity .45s var(--ease)}body[data-scene-state=ready] #engine-canvas{opacity:1}body[data-scene-state=ready] .machine-poster{opacity:0}.pause-button{position:absolute;right:6%;bottom:3%;width:44px;height:44px;border:0;border-radius:50%;background:#10120fa6;display:grid;place-items:center;color:var(--muted);opacity:0;transition:opacity .2s var(--ease),color .2s var(--ease)}.machine-stage:hover .pause-button,.machine-stage:focus-within .pause-button,.pause-button[aria-pressed=true]{opacity:1}@media(hover:none){.pause-button{opacity:.65}}.pause-button:hover{color:var(--ink);border-color:var(--soft)}.pause-button svg{width:16px;height:16px}.play-icon{display:none}.pause-button[aria-pressed=true] .play-icon{display:block}.pause-button[aria-pressed=true] .pause-icon{display:none}
.daily{padding-block:70px 50px;border-top:1px solid var(--line);outline:none}.daily-heading{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:end;margin-bottom:36px}h2{font-size:clamp(29px,3vw,43px);font-weight:450;letter-spacing:-1.3px;line-height:1.16;margin-top:17px}h2 em{font-family:Instrument,Georgia,serif;font-weight:400;color:#b9bf9f;font-size:1.15em}html[lang=nl] h2{font-size:clamp(27px,2.65vw,38px)}.daily-summary{max-width:290px;justify-self:end;padding-bottom:3px}.daily-summary>p{font-size:13px;color:var(--muted);line-height:1.7}.daily-progress{display:flex;align-items:center;gap:8px;margin-top:16px;font:8px/1.6 var(--mono);color:var(--muted)}#daily-count{color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}.daily-track{display:block;width:65px;height:2px;background:var(--line);margin-left:8px}.daily-track i{display:block;width:100%;height:100%;background:var(--orange);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease)}.daily-list{display:grid;grid-template-columns:1fr 1fr;column-gap:64px}.daily-item{display:grid;grid-template-columns:25px 1fr auto;align-items:center;gap:14px;min-height:89px;border-top:1px solid var(--line);padding:15px 0;position:relative}.daily-item:nth-last-child(-n+2){border-bottom:1px solid var(--line)}.daily-index{font:9px var(--mono);color:var(--soft)}.daily-item strong{font-size:19px;letter-spacing:-.35px;font-weight:450;display:block;transition:transform .35s var(--ease)}.daily-item small{font-size:11px;color:var(--muted);display:block;margin-top:1px}.daily-end{display:flex;gap:8px;align-items:center}.daily-state{font:8px var(--mono);color:var(--orange)}.daily-arrow{width:20px;height:20px;transition:transform .35s var(--ease);color:var(--soft)}.daily-item:hover strong{transform:translateX(4px);color:var(--orange)}.daily-item:hover .daily-arrow{transform:translate(3px,-3px);color:var(--orange)}.daily-item.done .daily-index{color:var(--orange)}.daily-bottom{display:flex;justify-content:space-between;gap:20px;margin-top:23px;color:var(--soft);font-size:10px}#daily-date{font-family:var(--mono);font-size:8px;letter-spacing:.6px}.footer{border-top:1px solid var(--line);padding-block:30px 38px;display:flex;justify-content:space-between;gap:24px;color:var(--soft);font-size:10px}.footer-signoff{font-family:Instrument,Georgia,serif;font-style:italic;font-size:17px;color:var(--muted)}.privacy-link:hover{color:var(--ink)}
@media(min-width:1600px){.hero{grid-template-columns:1fr 1.15fr}.hero-copy{padding-left:30px}}
@media(max-width:1100px){.page-width{width:calc(100% - 72px)}.hero{grid-template-columns:1fr 1.05fr}h1{font-size:60px;letter-spacing:-3.3px}.stage-art{height:480px}.hero-footnote{max-width:260px}.daily-list{column-gap:36px}}
@media(max-width:820px){.page-width{width:calc(100% - 48px)}.topbar{height:92px}.wordmark{font-size:22px}.header-right{gap:20px}.daily-nav{display:none}.hero{grid-template-columns:1fr;min-height:0;padding-block:10px 40px}.hero-copy{padding-block:30px 0}.hero-sub{max-width:380px;margin-top:25px}h1{font-size:clamp(56px,10vw,78px);line-height:1.03}.hero-footnote{max-width:none;margin-top:19px}.hero-link{margin-top:22px}.machine-stage{margin:2px -16px 0}.stage-art{height:clamp(340px,79vw,540px)}.daily{padding-top:44px}.daily-heading{gap:25px;grid-template-columns:1.2fr 1fr}.daily-summary{max-width:220px}.daily-list{column-gap:28px}.daily-item strong{font-size:18px}}
@media(max-width:540px){.page-width{width:calc(100% - 40px)}.topbar{height:82px}.wordmark{font-size:21px;gap:9px}.wordmark svg{width:25px;height:25px}.hero{padding-top:0}.hero-copy{padding-top:27px}.eyebrow{font-size:8px;letter-spacing:1.3px}h1{margin-top:22px;font-size:61px;letter-spacing:-3.3px}h1 em{letter-spacing:-3px}.hero-sub{font-size:14px;max-width:330px;line-height:1.8}.hero-footnote{font-size:10px}.stage-art{height:350px}.machine-stage{margin-top:5px}.daily-heading{grid-template-columns:1fr;gap:22px;margin-bottom:27px}h2,html[lang=nl] h2{font-size:33px}.daily-summary{justify-self:start;max-width:100%;width:100%}.daily-summary>p{font-size:12px}.daily-progress{margin-top:12px}.daily-list{grid-template-columns:1fr}.daily-item{min-height:85px}.daily-item:nth-last-child(-n+2){border-bottom:0}.daily-item:last-child{border-bottom:1px solid var(--line)}.daily-item strong{font-size:20px}.daily-item small{font-size:12px}.daily-bottom{flex-direction:column;gap:7px}.footer{padding-block:23px 30px;gap:16px;flex-wrap:wrap}.footer-signoff{font-size:16px}}
@media(max-width:360px){h1{font-size:54px}.stage-art{height:310px}.hero-footnote{max-width:250px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

/* Odd daily inventories finish with one continuous baseline. */
@media(min-width:541px){.daily-list:has(.daily-item:last-child:nth-child(odd)){position:relative}.daily-list:has(.daily-item:last-child:nth-child(odd))::after{content:"";position:absolute;bottom:0;left:calc(50% + 32px);right:0;height:1px;background:var(--line)}}

/* The lab inventory: the original playable previews, in the splash typography. */
.projects{padding-block:70px 60px;border-top:1px solid var(--line);outline:none}
.projects-heading{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:end;margin-bottom:36px}
.projects-intro{max-width:330px;justify-self:end;font-size:14px;line-height:1.8;color:var(--muted);text-wrap:pretty}
.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.game-card{display:flex;flex-direction:column;min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:5px;background:#141812;transition:border-color .25s var(--ease),transform .3s var(--ease)}
.game-card:hover{border-color:color-mix(in srgb,var(--accent) 50%,var(--line));transform:translateY(-3px)}
.game-visual{position:relative;display:block;width:100%;aspect-ratio:2.15;overflow:hidden;background:#151b15}
.game-preview{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover}
.game-preview-image{filter:saturate(.8)}
.game-visual-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,14,10,.12),transparent 30%,transparent 70%,rgba(10,14,10,.5));pointer-events:none}
.game-index,.game-status{position:absolute;font:8px/1.5 var(--mono);color:var(--ink);background:#151a14;padding:5px 7px;border:1px solid #3a4432}
.game-index{top:12px;left:12px}.game-status{right:12px;bottom:12px}
.game-card-body{display:flex;flex:1;flex-direction:column;padding:25px 26px 24px}
.game-tag{font:9px/1.6 var(--mono);color:color-mix(in srgb,var(--accent) 65%,#eeeade);letter-spacing:.6px}
.game-name{display:block;margin-top:7px;font-size:30px;line-height:1.12;font-weight:500;letter-spacing:-.9px;color:var(--ink)}
.game-desc{display:block;margin-top:12px;font-size:14px;line-height:1.65;color:var(--muted);text-wrap:pretty}
.game-language{display:block;font-size:10px;color:var(--soft);margin-top:12px}
.game-card-foot{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:25px;margin-top:auto;font:9px/1.5 var(--mono);color:var(--ink);letter-spacing:.25px}
.game-card-foot b{font:400 22px var(--display);color:color-mix(in srgb,var(--accent) 60%,#eeeade);transition:transform .25s var(--ease)}
.game-card:hover .game-card-foot b{transform:translate(3px,-3px)}
@media(max-width:820px){.projects{padding-top:44px}.projects-heading{gap:25px}.project-grid{gap:18px}.game-card-body{padding:20px}.game-name{font-size:26px}.game-desc{font-size:13px}.game-visual{aspect-ratio:1.75}.projects-intro{font-size:13px}}
@media(max-width:600px){.project-grid{grid-template-columns:1fr}.projects-heading{grid-template-columns:1fr;gap:22px;margin-bottom:27px}.projects-intro{justify-self:start;max-width:350px}.game-visual{aspect-ratio:1.9}.game-name{font-size:28px}.game-desc{font-size:14px}.projects{padding-bottom:44px}}
/* Canvas previews use the original family names; both aliases reuse cached fonts. */
@font-face{font-family:'Bricolage Grotesque';src:url('/assets/fonts/bricolage-latin.woff2') format('woff2');font-style:normal;font-weight:300 800;font-display:swap}
@font-face{font-family:'Martian Mono';src:url('/assets/fonts/martian-latin.woff2') format('woff2');font-style:normal;font-weight:400 700;font-display:swap}
