:root{--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;--font-display: "Helvetica Neue", Helvetica, Arial, sans-serif;--bg: #ffffff;--fg: #141414}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--fg);font-family:var(--font-sans);overflow:hidden;overscroll-behavior:none;-webkit-font-smoothing:antialiased}#stage,.viewport{position:fixed;inset:0}.viewport{cursor:grab;touch-action:none;overflow:hidden}.viewport.grabbing{cursor:grabbing}.world,.anchor{position:absolute;top:0;left:0;will-change:transform}.tile{position:absolute;top:0;left:0}.card{position:absolute;display:block;overflow:hidden;border-radius:4px;background:#ececec;box-shadow:0 6px 24px #0000001f;transition:transform .45s cubic-bezier(.22,1,.36,1),box-shadow .45s cubic-bezier(.22,1,.36,1);text-decoration:none;color:inherit;-webkit-user-drag:none;user-select:none}.card img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.22,1,.36,1);pointer-events:none}.card-logo{background:transparent;box-shadow:none;border-radius:0;display:grid;place-items:center;cursor:pointer}.card.card-logo:hover{box-shadow:none}.card-logo:after{display:none}.card-logo img{width:58%;height:auto;object-fit:contain;filter:invert(1)}.card-title{position:absolute;left:14px;bottom:12px;font-family:var(--font-display);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:#fff;opacity:0;transform:translateY(6px);transition:opacity .4s ease,transform .4s ease;text-shadow:0 1px 8px rgba(0,0,0,.6);z-index:2}.card:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,#00000073,#0000 45%);opacity:0;transition:opacity .4s ease}@media (hover: hover){.card:hover{transform:scale(1.04);box-shadow:0 18px 50px #00000038;z-index:10}.card:hover img{transform:scale(1.08)}.card:hover .card-title{opacity:1;transform:translateY(0)}.card:hover:after{opacity:1}}.site-header{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:22px 28px;pointer-events:none}.site-header a,.site-header .logo{pointer-events:auto}.site-header .logo img{height:30px;width:auto;display:block;filter:invert(1)}.pill-nav{display:flex;align-items:center;gap:18px;padding:14px 22px;border-radius:999px;background:linear-gradient(135deg,#cfcfcf,#9a9a9a);box-shadow:0 6px 22px #0000002e;font-family:var(--font-display);font-size:1.05rem;line-height:1}.pill-nav a{color:#fff;text-decoration:none;opacity:.92;transition:opacity .25s ease}.pill-nav a:hover{opacity:1}.drag-hint{position:fixed;left:50%;bottom:30px;transform:translate(-50%);z-index:50;font-family:var(--font-display);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--fg);opacity:.55;pointer-events:none;transition:opacity .6s ease;animation:hint-pulse 2.4s ease-in-out infinite}#stage.interacted~.drag-hint,.interacted .drag-hint{opacity:0}@keyframes hint-pulse{0%,to{opacity:.3}50%{opacity:.65}}.canvas-footer{position:fixed;right:24px;bottom:22px;z-index:50;display:flex;gap:18px;pointer-events:none;font-family:var(--font-display);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase}.canvas-footer a{pointer-events:auto;color:var(--fg);text-decoration:none;font-weight:500;opacity:.6;transition:opacity .25s ease}.canvas-footer a:hover{opacity:.95}.canvas-copyright{position:fixed;left:24px;bottom:22px;z-index:50;pointer-events:none;font-family:var(--font-display);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;font-weight:500;color:var(--fg);opacity:.6}@media (max-width: 640px){.canvas-footer{right:16px;bottom:14px;gap:12px;font-size:.62rem}.canvas-copyright{left:16px;bottom:14px;font-size:.62rem}}.intro{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:var(--bg)}.intro-logo{width:var(--final-logo-w, 267px);height:auto;filter:invert(1);transform:scale(1)}.intro.run{animation:intro-bg 2.2s ease forwards}.intro.run .intro-logo{animation:intro-logo 2.2s cubic-bezier(.7,0,.2,1) forwards}@keyframes intro-logo{0%{transform:scale(calc(var(--peak-scale, 3) * .82));opacity:0}18%{opacity:1}34%{transform:scale(var(--peak-scale, 3));opacity:1}52%{transform:scale(var(--peak-scale, 3))}to{transform:scale(1);opacity:1}}@keyframes intro-bg{0%,58%{background-color:var(--bg)}to{background-color:#fff0}}@keyframes intro-fade-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion: reduce){.card,.card img,.drag-hint{transition:none;animation:none}.intro.run{animation:intro-bg .5s ease forwards}.intro.run .intro-logo{animation:intro-fade-in .5s ease forwards}}
