/* Gallery: one centred work in focus, neighbours shrink and blur to the sides; it advances on its own. */
:root{--bg:#0b0e15;--ink:#f1f3f8;--mute:#7d879c;--line:#232a3a;--accent:#6d7dff;--mint:#4fe3c1;--font:'IBM Plex Sans Thai','Segoe UI',Tahoma,sans-serif;--display:'Space Grotesk',var(--font)}
*{box-sizing:border-box}
html,body{height:100%;margin:0}
body{background:radial-gradient(ellipse at 50% 55%,#161c2a,var(--bg) 70%);color:var(--ink);font-family:var(--font);overflow:hidden}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
.stage{position:relative;height:100vh;height:100dvh;overflow:hidden;user-select:none;-webkit-user-select:none;touch-action:pan-y}
.stage-head{position:absolute;top:32px;left:48px;z-index:300}
.back{display:inline-flex;align-items:center;gap:8px;font-size:12px;letter-spacing:.06em;color:var(--mute)}
.back img{width:22px;height:22px;border-radius:6px}.back b{font-family:var(--display);color:var(--ink)}
.stage-head h1{margin:18px 0 0;font-size:clamp(40px,6vw,72px);font-weight:600;line-height:1.15}
.stage-head h1 span{font-family:var(--display);font-size:.4em;font-weight:500;color:var(--mute);margin-left:.25em}
.stage-head p{margin:10px 0 0;max-width:420px;color:var(--mute);font-size:14px;font-weight:300}
.stage-meta{position:absolute;top:42px;right:48px;z-index:300;font-family:var(--display);font-size:11px;letter-spacing:.16em;color:var(--mute);text-transform:uppercase}
.floor{position:absolute;left:0;right:0;top:var(--top,190px);bottom:var(--bottom,120px)}
.card{position:absolute;left:50%;top:50%;width:var(--cw,420px);height:var(--cw,420px);margin:calc(var(--cw,420px) / -2) 0 0 calc(var(--cw,420px) / -2);padding:0;border:0;border-radius:18px;overflow:hidden;background:#121722;box-shadow:0 30px 60px -20px #000c;cursor:pointer;will-change:transform,filter,opacity}
.card img{display:block;width:100%;height:100%;object-fit:cover;pointer-events:none}
.card .cap{position:absolute;left:0;right:0;bottom:0;padding:40px 18px 16px;background:linear-gradient(transparent,#000a);font-size:13px;text-align:center;color:#fff}
.card .tag{position:absolute;top:14px;left:14px;padding:4px 10px;border-radius:999px;background:#0009;border:1px solid #ffffff2a;font-size:11px;letter-spacing:.06em;color:#cfd5e3}
.controls{position:absolute;left:48px;right:48px;bottom:32px;z-index:300;display:flex;align-items:center;gap:22px}
.nav-btn{flex:none;display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:#0b0e15aa;cursor:pointer;transition:border-color .2s}
.nav-btn:hover{border-color:var(--accent)}
.nav-btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.steps{flex:1;display:flex;gap:10px;margin:0;padding:0;list-style:none;min-width:0}
.steps li{flex:1;max-width:90px;cursor:pointer}
.steps small{display:block;font-family:var(--display);font-size:11px;color:var(--mute);margin-bottom:8px}
.steps li.on small{color:var(--ink)}
.steps i{display:block;height:2px;background:var(--line);overflow:hidden}
.steps i b{display:block;height:100%;background:var(--ink);transform-origin:left;transform:scaleX(0)}
.steps li.done i b{transform:scaleX(1);background:#4b5367}
.now{flex:none;width:220px;display:grid;gap:2px}
.now small{font-family:var(--display);font-size:10px;letter-spacing:.16em;color:var(--mute)}
.now strong{overflow:hidden;font-size:16px;font-weight:500;white-space:nowrap;text-overflow:ellipsis}
.now span{font-size:12px;color:var(--mute)}
.cta{position:absolute;top:70px;right:48px;z-index:300;padding:9px 16px;border-radius:999px;background:var(--accent);font-size:13px;font-weight:600}
.work-view{max-width:min(760px,92vw);padding:0;border:1px solid #2a3245;border-radius:18px;background:#121722;color:var(--ink)}
.work-view::backdrop{background:#000c}
.work-view img{display:block;width:100%;height:auto}
.work-view p{margin:0;padding:14px 18px;font-size:14px}
.work-close{position:absolute;top:10px;right:10px;width:34px;height:34px;border:0;border-radius:50%;background:#000a;color:#fff;font-size:20px;cursor:pointer}
@media(max-width:760px){
 .stage-head{top:20px;left:18px}.stage-head p{display:none}
 .stage-meta{top:26px;right:18px}.cta{top:50px;right:18px}
 .controls{left:16px;right:16px;bottom:18px;gap:10px;flex-wrap:wrap}
 .steps{order:3;flex-basis:100%}.now{flex:1;width:auto}
}
