@font-face{font-family:Outfit;src:url('/assets/Outfit.ttf') format('truetype');font-weight:100 900;font-display:swap}
.tiles{pointer-events:none}.tile{pointer-events:auto}
:root{color-scheme:dark;font-family:Outfit,Arial,sans-serif;background:#080909;color:#f5f5f0;font-synthesis:none}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button{border:0}button:focus-visible,a:focus-visible{outline:2px solid #c9e3c8;outline-offset:5px}button:disabled{cursor:default}[hidden]{display:none!important}.topbar{position:fixed;z-index:12;top:0;left:0;right:0;height:116px;padding:32px 44px;display:flex;justify-content:space-between;align-items:flex-start;background:linear-gradient(#080909 0%,#080909d9 50%,transparent);pointer-events:none}.topbar>*{pointer-events:auto}.brand{display:flex;gap:12px;align-items:center;font-size:17px;font-weight:500;letter-spacing:-.4px}.brand img{margin-top:1px}.brand-sub{display:block;font-size:8px;letter-spacing:2.1px;color:#a0a4a1;margin-top:5px}.language{display:flex;align-items:center;gap:8px;color:#646965;padding:5px 0;font-size:12px}.language button{background:none;padding:4px;color:#828783;font-weight:500}.language button[aria-pressed=true]{color:#fff}.gallery{position:fixed;inset:0;overflow:hidden;cursor:grab;touch-action:none;perspective:1100px;contain:strict}.gallery.dragging{cursor:grabbing}.tiles{position:absolute;inset:0;transform-style:preserve-3d}.tile{position:absolute;left:50%;top:50%;width:360px;height:238px;padding:0;border-radius:32px;overflow:hidden;background:#17252b;text-align:left;will-change:transform;backface-visibility:hidden;box-shadow:inset 0 0 0 1px #ffffff35,0 15px 35px #0005;transform-style:preserve-3d;user-select:none;-webkit-user-select:none}.tile:after{content:'';position:absolute;inset:0;pointer-events:none;border-radius:inherit;border:1px solid #ffffff40;background:linear-gradient(125deg,#ffffff19,transparent 36%,transparent 65%,#ffffff09);box-shadow:inset 0 -2px 3px #c4f6f735}.tile img{position:absolute;width:100%;height:100%;object-fit:cover;inset:0;pointer-events:none;transition:scale .6s}.tile:hover img{scale:1.045}.tile-shade{position:absolute;inset:0;background:linear-gradient(0deg,#02090eea,transparent 65%)}.tile-copy{position:absolute;bottom:25px;left:26px;right:26px;pointer-events:none}.tile-category{display:block;font-size:8px;text-transform:uppercase;letter-spacing:1.7px;margin-bottom:8px;color:#e2ece8b3}.tile h2{font-size:25px;font-weight:600;letter-spacing:-1px;line-height:1.08;margin:0 0 7px}.tile p{font-size:11px;color:#e5eeedc2;margin:0;line-height:1.35;max-width:90%}.tile-arrow{position:absolute;right:22px;bottom:24px;font-size:20px;opacity:0;transition:opacity .25s,transform .25s;transform:translate(-4px,4px)}.tile:hover .tile-arrow,.tile:focus-visible .tile-arrow{opacity:1;transform:none}.gallery:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(#080909 0%,#080909b0 13%,transparent 36%,transparent 72%,#080909 100%),linear-gradient(90deg,#080909aa,transparent 17%,transparent 83%,#080909aa)}.intro{position:fixed;z-index:2;left:0;right:0;top:120px;text-align:center;pointer-events:none;text-shadow:0 2px 30px #080909}.eyebrow{font-size:9px;letter-spacing:2.3px;font-weight:400;color:#a9b1aa}.intro h1{font-size:clamp(28px,3.7vw,51px);font-weight:450;line-height:1.1;letter-spacing:-2px;margin:13px 0}.intro p{font-size:13px;color:#a6afa7;margin:0}.gallery-footer{position:fixed;z-index:4;bottom:112px;left:44px;right:44px;display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#939c95;pointer-events:none}.gallery-footer button{pointer-events:auto;background:#0b100ddd;border:1px solid #ffffff1a;border-radius:30px;display:flex;align-items:center;gap:8px;padding:9px 15px;color:#b9c1ba;font-size:10px;backdrop-filter:blur(16px)}.gesture{display:flex;gap:10px;align-items:center}.cross{font-size:20px}.list-icon{font-size:17px;line-height:1}.dock{position:fixed;z-index:15;bottom:max(25px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;gap:4px;padding:6px;border:1px solid #ffffff32;background:linear-gradient(130deg,#4c514c99,#222623b3);border-radius:40px;box-shadow:inset 0 1px 1px #ffffff30,0 8px 35px #0008;backdrop-filter:blur(24px)}.dock button{background:none;padding:13px 23px;border-radius:30px;display:flex;gap:9px;align-items:center;white-space:nowrap;color:#c5c9c5;font-size:12px;transition:background .2s}.dock button[aria-current]{background:#ffffff21;color:#fff;box-shadow:inset 0 1px 1px #ffffff17}.dock button>span:first-child{font-size:17px}.dock button:hover{background:#ffffff16}.skip{position:fixed;top:-100px;left:20px;z-index:99;background:#fff;color:#000;padding:12px}.skip:focus{top:20px}.text-page{position:fixed;inset:0;overflow-y:auto;padding:clamp(150px,21vh,240px) max(30px,calc((100vw - 830px)/2)) 150px;background:radial-gradient(ellipse at 80% 20%,#15231c55,transparent 60%)}.text-page h1{font-size:clamp(43px,6vw,78px);line-height:1.04;font-weight:450;letter-spacing:-3px;margin:24px 0 32px}.text-page .lead{font-size:clamp(21px,2.4vw,29px);line-height:1.5;color:#d5dcd6;max-width:650px;font-weight:350}.text-page p:not(.lead){font-size:16px;line-height:1.9;color:#929e95;max-width:620px}.about-links{display:flex;gap:28px;margin-top:40px;font-size:14px}.about-links button{background:none;padding:0}.about-links a{color:#9eaba1}.page-foot{display:block;margin-top:70px;color:#606e64;font-size:12px}.external-links{margin-top:40px}.external-links a,.github-link{display:flex;justify-content:space-between;align-items:center;padding:24px 0;border-bottom:1px solid #ffffff1a;gap:20px;font-size:clamp(18px,2.4vw,26px)}.external-links a span,.github-link span{font-size:13px;color:#9eaaa2}.github-link{font-size:20px}.project-list{position:fixed;inset:280px 0 160px;overflow-y:auto;z-index:3;padding:0 max(30px,calc((100vw - 920px)/2));display:grid;grid-template-columns:1fr 1fr;gap:22px;align-content:start}.project-list button{height:280px;width:100%;position:relative;top:auto;left:auto;will-change:auto}.list-mode .gallery{visibility:hidden}.list-mode .gesture{visibility:hidden}dialog{border:1px solid #ffffff25;border-radius:30px;padding:0;color:#f6f7f3;background:#111512;width:min(720px,calc(100vw - 32px));max-height:calc(100dvh - 48px);overflow-y:auto;box-shadow:0 40px 100px #0009}dialog::backdrop{background:#020504b8;backdrop-filter:blur(18px)}.close{position:absolute;right:18px;top:18px;border-radius:50%;width:38px;height:38px;z-index:2;background:#0d181acc;backdrop-filter:blur(15px);font-size:27px;font-weight:300;line-height:1}.detail-art{height:270px;background-size:cover;background-position:center;position:relative}.detail-art:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 70%,#111512)}.detail-copy{padding:10px 42px 38px}.detail-copy h2{font-size:39px;font-weight:500;letter-spacing:-1.5px;margin:14px 0 18px}.detail-copy>p{font-size:16px;line-height:1.65;color:#a5b0a7}.tags{display:flex;list-style:none;padding:0;gap:8px;flex-wrap:wrap;margin:22px 0}.tags li{font-size:10px;border:1px solid #ffffff23;border-radius:20px;padding:6px 11px;color:#bcc5be}.detail-copy .access-note{font-size:12px;color:#a8b4ab}.visit{background:#e2ebdf;color:#112118;display:flex;justify-content:space-between;border-radius:14px;padding:16px 21px;font-size:14px;margin-top:24px}.no-script{position:fixed;z-index:20;inset:110px 20px 110px;background:#111;padding:30px}.no-script a{display:block;margin:20px 0}
@media(min-height:900px){.intro{top:145px}.tile{height:260px}.gallery-footer{bottom:115px}}
@media(max-width:650px){.topbar{padding:25px 23px;height:100px}.brand{font-size:15px;gap:9px}.brand-sub{font-size:7px;letter-spacing:1.7px}.brand img{width:27px;height:27px}.intro{top:117px;padding:0 20px}.intro h1{letter-spacing:-1px;font-size:30px;margin:10px 0}.intro p{font-size:12px}.eyebrow{font-size:8px;letter-spacing:1.7px}.tile{border-radius:26px}.tile h2{font-size:23px}.gallery-footer{left:23px;right:23px;bottom:108px}.gesture{font-size:9px;max-width:185px;line-height:1.5;gap:6px}.dock{bottom:max(24px,env(safe-area-inset-bottom));padding:5px}.dock button{padding:13px 17px;font-size:11px;gap:7px}.detail-art{height:220px}.detail-copy{padding:10px 25px 27px}.detail-copy h2{font-size:30px}.detail-copy>p{font-size:14px}.text-page{padding-top:150px}.text-page h1{letter-spacing:-2px}.external-links a{align-items:flex-start;flex-direction:column;gap:7px}.project-list{inset:237px 0 160px;padding:0 25px;grid-template-columns:1fr;gap:18px}.project-list button{height:235px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}
/* Larger project tiles and original project branding. */
.tile{box-shadow:inset 0 0 0 1px #ffffff35,0 8px 20px #0003}
.tile>img:not(.project-logo){opacity:.72;transition:none}
.tile:hover>img:not(.project-logo){scale:1}
.tile .project-logo{inset:auto;left:50%;top:8%;transform:translateX(-50%);width:39%;height:57%;object-fit:contain;z-index:1;scale:1;transition:none}
.tile .project-logo.deals-logo{top:25%;width:74%;height:auto;max-height:27%;padding:12px 15px;background:#e4efe0;border:1px solid #f1fff14d;border-radius:14px;object-fit:contain}
.tile-copy{z-index:2;bottom:29px;left:31px;right:31px}
.tile h2{font-size:32px;letter-spacing:-1.3px}
.tile-category{font-size:9px;margin-bottom:9px}
.tile p{font-size:13px}
.tile:after{box-shadow:none}
.tile-arrow{z-index:2}
.detail-logo{position:absolute;width:175px;height:220px;object-fit:contain;left:50%;top:14px;transform:translateX(-50%)}
.detail-logo.deals-logo{width:65%;height:auto;top:80px;background:#e4efe0;padding:15px 22px;border-radius:18px}
.project-list .tile{height:320px}
@media(max-width:650px){.tile h2{font-size:25px}.tile p{font-size:11px}.tile-copy{left:24px;right:24px;bottom:23px}.tile-category{font-size:8px}.tile .project-logo.deals-logo{padding:8px 12px;border-radius:11px}.tile .project-logo.archive-logo{top:5%;height:55%}.project-list .tile{height:270px}.detail-logo{height:180px;width:150px}.detail-logo.deals-logo{top:65px}}
/* Each project carries its own visual identity. */
.tile.archive{background:#280f17;color:#ffedbd}
.tile.deals{background:#087d83;color:#edfff9}
.tile>img:not(.project-logo){opacity:1}
.tile.archive .tile-shade{background:linear-gradient(0deg,#160b11 0%,#200c14e6 22%,transparent 70%)}
.tile.deals .tile-shade{background:linear-gradient(0deg,#002c32 0%,#003f48d9 22%,transparent 73%)}
.tile.archive:after{border-color:#d9a65b60;background:linear-gradient(130deg,#fce6aa0d,transparent 45%)}
.tile.deals:after{border-color:#94e4dd70;background:linear-gradient(130deg,#dbfff615,transparent 45%)}
.tile.archive .tile-category{color:#d3ab6f}.tile.archive p{color:#e8d7bf}.tile.deals .tile-category{color:#a3e7de}.tile.deals p{color:#c5ede6}
.tile .project-logo.archive-logo{top:4%;width:43%;height:62%}
.tile .project-logo.deals-logo{top:18%;width:77%;height:35%;max-height:none;object-fit:contain;padding:0;background:none;border:0;border-radius:0}
.tile:hover img,.tile:hover .project-logo{scale:1}
.tile{scale:1;transition:scale .32s cubic-bezier(.2,.75,.25,1);transform-origin:center}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.tile:hover{scale:1.045;z-index:3}.gallery.dragging .tile:hover{scale:1;z-index:auto}}
.list-mode .gallery{display:none!important}
.project-list{grid-template-columns:1fr;gap:18px;inset:280px 0 160px;padding-top:8px;padding-bottom:15px}
.project-list .tile{height:180px;overflow:hidden;flex-shrink:0;border-radius:24px}
.project-list .tile>img:not(.project-logo){width:36%;object-fit:cover}
.project-list .tile .tile-shade{background:linear-gradient(90deg,transparent 10%,#002c32 37%)!important}
.project-list .tile.archive .tile-shade{background:linear-gradient(90deg,transparent 10%,#210e16 37%)!important}
.project-list .tile .project-logo{left:17%;top:10%;width:24%;height:80%;max-height:none;padding:0}
.project-list .tile .project-logo.deals-logo{width:29%;height:60%;top:20%}
.project-list .tile .tile-copy{left:38%;right:44px;top:50%;bottom:auto;transform:translateY(-50%)}
.project-list .tile h2{font-size:29px}.project-list .tile p{font-size:13px}.project-list .tile .tile-arrow{opacity:1;right:26px;bottom:50%;transform:translateY(50%)}
.project-list .tile:hover{scale:1.015}
#project-dialog.archive{background:#210e16;border-color:#b1874e66;color:#ffe7ac}
#project-dialog.deals{background:#00343b;border-color:#46c1c180;color:#ecfff8}
#project-dialog.archive .detail-art:after{background:linear-gradient(transparent 60%,#210e16)}
#project-dialog.deals .detail-art:after{background:linear-gradient(transparent 60%,#00343b)}
.detail-logo.archive-logo{top:8px;height:235px;width:230px}
.detail-logo.deals-logo{top:38px;width:66%;height:160px;padding:0;background:none;border:0;border-radius:0;object-fit:contain}
#project-dialog.archive .eyebrow{color:#d3ab6f}#project-dialog.archive .detail-copy>p{color:#d5c0ad}#project-dialog.archive .tags li{color:#e9cb97;border-color:#99704766}#project-dialog.archive .visit{background:#e0b56b;color:#29111a}
#project-dialog.deals .eyebrow{color:#77d3ca}#project-dialog.deals .detail-copy>p{color:#b3d8d2}#project-dialog.deals .tags li{color:#bde8df;border-color:#5caaa166}#project-dialog.deals .visit{background:#70d7ca;color:#003137}
@media(max-width:650px){.project-list{inset:237px 0 155px;gap:15px;padding-left:22px;padding-right:22px}.project-list .tile{height:170px;border-radius:22px}.project-list .tile .tile-copy{left:37%;right:20px}.project-list .tile h2{font-size:21px;letter-spacing:-.7px}.project-list .tile p{font-size:11px;line-height:1.5;max-width:100%}.project-list .tile .tile-category{font-size:7px;letter-spacing:1px}.project-list .tile .tile-arrow{display:none}.detail-logo.archive-logo{height:190px;width:185px}.detail-logo.deals-logo{top:25px;height:130px}.tile .project-logo.archive-logo{top:3%;height:59%}}
