.gallery-section{background:var(--night);color:var(--text-on-dark);margin-top:0;padding:92px clamp(22px,7vw,110px) 40px;position:relative;overflow:hidden}.gallery-curve{background:var(--night);border-radius:55% 45% 0 0/85% 100% 0 0;height:74px;position:absolute;top:-48px;left:-4%;right:-4%;transform:rotate(-2deg)}.filter-row{border-top:1px solid var(--line-on-dark);border-bottom:1px solid var(--line-on-dark);color:var(--text-on-dark-2);justify-content:space-between;align-items:center;gap:18px;padding:13px 0;font-size:9px;display:flex}.filter-controls{flex-wrap:wrap;gap:7px;display:flex}.filter-button{color:var(--text-on-dark);border:1px solid var(--line-on-dark);font-family:var(--mono);letter-spacing:.06em;transition:background var(--micro) var(--ease), color var(--micro) var(--ease), border-color var(--micro) var(--ease);background:0 0;border-radius:999px;padding:9px 14px;font-size:9px}.filter-button:hover{border-color:var(--blue-soft);color:var(--blue-soft)}.filter-button.active{background:var(--blue);border-color:var(--blue);color:#fff}.project-grid{perspective:1000px;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:26px 0 45px;display:grid}.project-card{border-radius:var(--radius);background:var(--night-card);border:1px solid var(--line-on-dark);transform-origin:bottom;min-width:0;transition:transform var(--hover) var(--ease), border-color var(--hover) var(--ease), box-shadow var(--hover) var(--ease);flex-direction:column;display:flex;position:relative;overflow:hidden}.project-card:hover{border-color:var(--blue-soft);transform:translateY(-10px)rotateX(-2deg);box-shadow:0 22px 44px #0206178c}.project-card:before{content:"";background:var(--blue-soft);transform-origin:0;height:1px;transition:transform var(--hover) var(--ease);z-index:2;pointer-events:none;position:absolute;top:50%;left:20px;right:20px;transform:scaleX(0)}.project-card:hover:before,.project-card:focus-within:before{transform:scaleX(1)}.project-card:focus-within{border-color:var(--blue-soft);transform:translateY(-10px)rotateX(-2deg);box-shadow:0 22px 44px #0206178c}.project-card:focus-within .project-cover img{transform:scale(1.04)}.project-link:focus-visible .project-link-arrow{background:var(--blue-soft);transform:translate(2px,-2px)}.project-cover{background:var(--surface-2);isolation:isolate;height:235px;position:relative;overflow:hidden}.project-cover-inner{isolation:isolate;clip-path:inset(0);position:absolute;inset:0;overflow:hidden}.project-cover img{object-fit:cover;width:100%;height:100%;transition:transform .5s var(--ease);position:absolute;inset:0}.project-card:hover .project-cover img{transform:scale(1.04)}.project-cover:after{content:"";pointer-events:none;background:linear-gradient(#0000 55%,#02061759);position:absolute;inset:0}.project-tag{z-index:2;background:var(--surface);color:var(--ink);font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;border-radius:999px;padding:5px 9px;font-size:8px;position:absolute;top:12px;left:12px}.project-number{z-index:2;font-family:var(--mono);color:var(--ink);font-size:9px;position:absolute;top:12px;right:12px}.project-info{flex-direction:column;flex:1;padding:16px 15px;display:flex}.project-info h3{letter-spacing:-.04em;margin:0 0 9px;font-size:17px;font-weight:600;line-height:1.15}.project-info .project-desc{color:var(--text-on-dark-2);flex:1;margin:0 0 14px;font-size:12px;line-height:1.6}.project-stack{flex-wrap:wrap;gap:6px;margin:0 0 16px;display:flex}.project-foot{border-top:1px solid var(--line-on-dark);justify-content:space-between;align-items:center;min-height:34px;padding-top:12px;display:flex}.project-status{color:var(--text-on-dark-2);align-items:center;gap:8px;font-size:9px;display:inline-flex}.project-status:before{content:"●";color:var(--blue-soft);font-size:8px}.project-link{font-family:var(--mono);letter-spacing:.08em;color:var(--text-on-dark);text-transform:uppercase;align-items:center;gap:8px;font-size:9px;display:inline-flex}.project-link .project-link-arrow{background:var(--surface);width:22px;height:22px;color:var(--ink);transition:transform var(--micro) var(--ease), background var(--micro) var(--ease), color var(--micro) var(--ease);border-radius:50%;place-items:center;font-size:13px;display:grid}.project-link:hover .project-link-arrow{background:var(--blue-soft);transform:translate(2px,-2px)}.gallery-bottom-line{border-top:1px solid var(--line-on-dark);color:var(--text-on-dark-2);justify-content:space-between;padding-top:16px;font-size:9px;display:flex}.empty-state{text-align:center;color:var(--text-on-dark-2);border-radius:var(--radius-sm);border:1px dashed #ffffff59;padding:30px;font-size:13px}.project-card--reserved{cursor:default;background:0 0;border:1px dashed #94a3b873;justify-content:center;gap:12px;padding:22px 20px}.project-card--reserved:hover{border-color:#94a3b873;transform:none}.credential-proof .project-link-arrow{background:var(--blue-pale);width:22px;height:22px;color:var(--blue-deep);transition:transform var(--micro) var(--ease), background var(--micro) var(--ease);border-radius:50%;place-items:center;font-size:12px;display:grid}.credential-proof:hover .project-link-arrow{background:var(--blue-soft);transform:translate(2px,-2px)}@media (width<=1050px){.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=700px){.gallery-section{padding-top:76px}.filter-row{flex-direction:column;align-items:flex-start}.filter-button{padding:8px 11px;font-size:8px}.project-grid{grid-template-columns:1fr;gap:11px}.project-cover{height:190px}.project-info{padding:13px 12px}.project-info h3{font-size:15px}}@media (width<=420px){.project-grid{grid-template-columns:1fr}.project-cover{height:200px}}@media (prefers-reduced-motion:reduce){.project-card:hover,.project-card:focus-within{box-shadow:none;transform:none}.project-card:before{display:none}}.gallery-section+.games-section{border-top:1px solid var(--line-on-dark);margin-top:0}.gallery-section:before{content:"";pointer-events:none;z-index:0;background-image:linear-gradient(#ffffff08 1px,#0000 1px),linear-gradient(90deg,#ffffff08 1px,#0000 1px);background-size:40px 40px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(72% 62% at 50% 44%,#000 38%,#0000 100%);mask-image:radial-gradient(72% 62% at 50% 44%,#000 38%,#0000 100%)}.gallery-inner{position:relative}.gallery-ruler{font-family:var(--mono);letter-spacing:.22em;color:#ffffff61;pointer-events:none;gap:26px;margin:-6px 0 16px;font-size:9px;display:flex}.gallery-ruler span{padding-left:12px;position:relative}.gallery-ruler span:before{content:"";background:#ffffff4d;width:8px;height:1px;position:absolute;top:50%;left:0}@media (width<=700px){.gallery-section:before{opacity:.5}}.ornament-gallery-truchet{opacity:.04;color:var(--blue-soft);inset:0;-webkit-mask-image:radial-gradient(80% 90%,#000 40%,#0000 95%);mask-image:radial-gradient(80% 90%,#000 40%,#0000 95%)}.ornament-gallery-stamp{font-family:var(--mono);letter-spacing:.12em;color:#93c5fd8c;border:1px dashed #93c5fd59;padding:6px 10px;font-size:9px;bottom:24px;right:24px;transform:rotate(-6deg)}@media (prefers-reduced-motion:reduce){.ornament-gallery-truchet{opacity:.04}}.case-study{background:var(--bg);min-height:100vh;padding:120px 24px 80px}.case-study-inner{max-width:860px;margin:0 auto}.case-study-title{font-family:var(--font);letter-spacing:-.02em;color:var(--ink);margin:10px 0 0;font-size:clamp(34px,6vw,58px);line-height:1.08}.case-study-meta{border-top:1px solid var(--border-soft);border-bottom:1px solid var(--border-soft);flex-wrap:wrap;align-items:center;gap:18px 28px;margin-top:24px;padding:16px 0;display:flex}.case-meta-item{font-family:var(--mono);letter-spacing:.06em;color:var(--text-2);align-items:center;gap:10px;font-size:12px;display:inline-flex}.case-study-cover{border:1px solid var(--border-soft);border-radius:var(--radius-sm);background:var(--surface);margin-top:28px;overflow:hidden}.case-study-cover img{width:100%;height:auto;display:block}.case-study-body{max-width:720px;margin-top:30px}.prose-archive p{color:var(--text-2);margin:0 0 16px;font-size:16px;line-height:1.75}.prose-archive h2{font-family:var(--font);letter-spacing:-.01em;color:var(--ink);margin:30px 0 12px;font-size:20px}.prose-archive ul{margin:0 0 16px;padding-left:20px}.prose-archive li{color:var(--text-2);margin-bottom:6px;font-size:15px;line-height:1.7}.case-study-actions{border-top:1px solid var(--border-soft);flex-wrap:wrap;gap:12px;margin-top:36px;padding-top:24px;display:flex}
