:root{--paper:#f2f2ef;--ink:#111;--line:rgba(17,17,17,.18);--muted:#696965;--ease:cubic-bezier(.2,.8,.2,1)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--paper);color:var(--ink);font-family:Manrope,Arial,sans-serif}body{overflow:hidden}button,a{font:inherit}.app{height:100dvh;overflow:hidden}.view{display:none;min-height:100dvh}.view.is-active{display:block}.gallery{position:relative;overflow:hidden;padding:28px 32px 24px}.gallery-head{position:relative;z-index:5;display:flex;justify-content:space-between;align-items:flex-start}.eyebrow{text-transform:uppercase;letter-spacing:.11em;font-size:10px;font-weight:600}.status-dot{display:inline-block;width:7px;height:7px;background:#9ed751;border-radius:50%;margin-right:8px}.project-heading{text-align:right;max-width:620px}.project-heading h1{font-size:clamp(42px,7vw,104px);line-height:.85;letter-spacing:-.065em;margin:0;font-weight:500}.project-heading p{font-size:12px;color:var(--muted);margin:16px 3px 0}.wheel-stage{position:absolute;inset:12vh 0 8vh;cursor:grab;touch-action:none;outline:none}.wheel-stage.is-dragging{cursor:grabbing}.orbit{position:absolute;width:min(75vw,1000px);aspect-ratio:1;border:1px solid var(--line);border-radius:50%;left:50%;top:73%;transform:translate(-50%,-50%)}.wheel{position:absolute;inset:0}.work-card{--x:0px;--y:0px;--r:0deg;--s:1;position:absolute;left:50%;top:57%;width:clamp(210px,28vw,430px);aspect-ratio:4/5;border:0;padding:0;border-radius:clamp(22px,3vw,44px);overflow:hidden;background:var(--card);transform:translate(-50%,-50%) translate(var(--x),var(--y)) rotate(var(--r)) scale(var(--s));transform-origin:center 85%;transition:transform .08s linear,opacity .15s;will-change:transform;box-shadow:0 1px 0 rgba(255,255,255,.35) inset;cursor:pointer}.work-card:focus-visible{outline:3px solid #111;outline-offset:4px}.work-card .art{position:absolute;inset:0;overflow:hidden}.work-card .art:before,.work-card .art:after{content:"";position:absolute}.work-card .card-label{position:absolute;z-index:2;left:18px;right:18px;bottom:16px;display:flex;justify-content:space-between;align-items:flex-end;color:var(--label,#fff);font-size:10px;text-transform:uppercase;letter-spacing:.08em}.work-card .card-label strong{font-size:16px;letter-spacing:-.03em;text-transform:none;font-weight:500}.work-card[data-art="orb"] .art{background:#ed5038}.work-card[data-art="orb"] .art:before{width:72%;aspect-ratio:1;border-radius:50%;background:#ffb2b5;top:12%;left:14%;box-shadow:0 0 0 18px rgba(0,0,0,.07)}.work-card[data-art="chrome"] .art{background:#111}.work-card[data-art="chrome"] .art:before{width:66%;height:70%;left:17%;top:8%;border-radius:50%;background:radial-gradient(circle at 35% 25%,#fff 0 5%,#7a7a7a 22%,#090909 50%,#dadada 73%,#222 100%);filter:contrast(1.2)}.work-card[data-art="type"] .art{background:#ddd7ff}.work-card[data-art="type"] .art:before{content:"Aa";font-size:clamp(90px,12vw,180px);font-weight:600;letter-spacing:-.12em;left:6%;top:12%;color:#4529e6}.work-card[data-art="grid"] .art{background-color:#f5d62f;background-image:linear-gradient(#171717 1px,transparent 1px),linear-gradient(90deg,#171717 1px,transparent 1px);background-size:34px 34px}.work-card[data-art="grid"] .art:before{width:45%;height:45%;background:#151515;border-radius:50%;left:27%;top:22%}.work-card[data-art="wave"] .art{background:#1f4ae0}.work-card[data-art="wave"] .art:before{inset:10%;background:repeating-radial-gradient(ellipse at 50% 100%,transparent 0 18px,#fff 19px 22px);border-radius:40%}.work-card[data-art="paper"] .art{background:#e9e7df}.work-card[data-art="paper"] .art:before{width:60%;height:70%;background:#fff;left:20%;top:10%;transform:rotate(-8deg);box-shadow:12px 14px 0 #b8ff53}.work-card[data-art="paper"] .art:after{content:"FORM";font-size:38px;letter-spacing:-.07em;left:27%;top:31%;transform:rotate(-8deg)}.work-card[data-art="rings"] .art{background:#bdff66}.work-card[data-art="rings"] .art:before{width:75%;aspect-ratio:1;border:22px double #151515;border-radius:50%;left:7%;top:12%;box-shadow:0 0 0 22px #bdff66,0 0 0 25px #151515}.work-card[data-art="night"] .art{background:#15142c}.work-card[data-art="night"] .art:before{width:62%;aspect-ratio:1;border-radius:50%;left:19%;top:15%;background:linear-gradient(135deg,#ff6a3d,#ca8fff 55%,#57d8ff)}.drag-hint{position:absolute;z-index:10;left:50%;top:48%;transform:translate(-50%,-50%);background:#111;color:#fff;border-radius:99px;padding:11px 16px;font-size:10px;text-transform:uppercase;letter-spacing:.12em;pointer-events:none;animation:nudge 1.8s ease-in-out infinite;transition:opacity .3s}.drag-hint span{margin-right:8px}.drag-hint.is-hidden{opacity:0}@keyframes nudge{50%{transform:translate(calc(-50% + 10px),-50%)}}.gallery-foot{position:absolute;z-index:6;bottom:22px;left:32px;right:32px;display:grid;grid-template-columns:1fr auto 1fr;align-items:end}.gallery-foot p{font-size:10px;text-transform:uppercase;letter-spacing:.1em;margin:0;color:var(--muted)}.pill{border:0;background:#111;color:#fff;border-radius:100px;padding:11px 16px;font-size:11px;letter-spacing:.04em;min-height:40px}.about-button{justify-self:start;cursor:pointer;transition:transform .25s var(--ease),padding .25s}.about-button:hover{transform:scale(1.05);padding-inline:21px}.about-button span{display:inline-block;margin-left:5px;transition:transform .25s}.about-button:hover span{transform:rotate(45deg)}.help-button{justify-self:end;border:1px solid #111;background:transparent;border-radius:50%;width:44px;height:44px;cursor:pointer;transition:.2s}.help-button:hover{background:#111;color:#fff}.project-view,.about-view{overflow:auto;padding:24px 28px 50px}.back-button{position:sticky;top:20px;z-index:20;cursor:pointer}.project-hero{min-height:82vh;margin-top:-40px;border-radius:36px;background:var(--hero);position:relative;overflow:hidden;display:flex;align-items:flex-end;padding:clamp(25px,5vw,70px);color:var(--hero-label,#fff)}.project-hero .hero-art{position:absolute;inset:0;opacity:.9}.project-hero h1{position:relative;z-index:2;margin:0;font-size:clamp(58px,12vw,170px);line-height:.78;letter-spacing:-.075em;font-weight:500}.project-info{display:grid;grid-template-columns:1fr 2fr;gap:10vw;padding:80px 4vw 110px}.project-info .facts{font-size:11px;text-transform:uppercase;letter-spacing:.08em;line-height:2}.project-info .description{font-size:clamp(24px,3.6vw,52px);line-height:1.1;letter-spacing:-.045em;margin:0}.project-gallery{display:grid;grid-template-columns:1fr 1fr;gap:18px}.project-shot{min-height:60vh;border-radius:30px;background:var(--shot);position:relative;overflow:hidden}.project-shot:nth-child(3n){grid-column:1/-1;min-height:78vh}.about-view{padding:24px 4vw 32px}.about-intro{padding:11vh 0 13vh}.about-intro h1{font-size:clamp(76px,15vw,210px);line-height:.76;letter-spacing:-.08em;font-weight:500;margin:20px 0 55px}.about-intro>p:last-child{max-width:520px;margin-left:auto;font-size:18px;line-height:1.5}.link-section{margin:0 0 80px}.link-section h2{font-size:11px;text-transform:uppercase;letter-spacing:.1em;margin-bottom:17px}.link-list{display:grid;gap:8px}.link-list a{display:grid;grid-template-columns:28px 1fr 30px;align-items:center;padding:20px;border-radius:18px;background:#e5e5e1;color:#111;text-decoration:none;font-size:clamp(18px,2vw,28px);transition:transform .25s var(--ease),background .25s}.link-list a:hover{transform:translateX(7px);background:#dddeda}.link-list i{width:14px;height:14px;border-radius:50%;background:var(--dot)}.link-list b{text-align:right;font-weight:400}.about-footer{display:flex;justify-content:space-between;align-items:center;padding-top:50px}dialog{border:0;border-radius:28px;padding:35px;max-width:430px;background:#111;color:#fff;box-shadow:none}dialog::backdrop{background:rgba(242,242,239,.82);backdrop-filter:blur(8px)}dialog h2{font-size:45px;letter-spacing:-.055em;margin:20px 0}dialog p:last-child{color:#aaa;line-height:1.6;font-size:13px}#close-help{position:absolute;right:18px;top:18px;border:0;background:#2b2b2b;color:#fff;border-radius:50%;width:36px;height:36px;font-size:20px;cursor:pointer}
@media(max-width:700px){.gallery{padding:20px 16px}.gallery-head{display:block}.project-heading{text-align:left;margin-top:12px}.project-heading h1{font-size:48px}.project-heading p{margin-top:9px}.wheel-stage{inset:16vh 0 10vh}.orbit{width:155vw;top:75%}.work-card{width:min(64vw,290px);top:59%;border-radius:26px}.gallery-foot{left:16px;right:16px;grid-template-columns:1fr 1fr}.gallery-foot p{display:none}.project-view,.about-view{padding:16px 14px 35px}.project-hero{min-height:75vh;margin-top:-38px;border-radius:24px;padding:24px}.project-info{grid-template-columns:1fr;padding:45px 8px 65px;gap:24px}.project-gallery{grid-template-columns:1fr;gap:10px}.project-shot,.project-shot:nth-child(3n){grid-column:auto;min-height:55vh;border-radius:22px}.about-intro{padding:10vh 0}.about-intro h1{font-size:23vw;margin-bottom:45px}.link-list a{padding:17px;border-radius:15px}.link-section{margin-bottom:55px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition-duration:.01ms!important}}

/* Gallery wheel v2 */
:root{--paper:#fff;--ink:#090909;--line:rgba(0,0,0,.11)}
.gallery{padding:0}
.gallery-head{position:absolute;z-index:50;left:10px;top:9px;display:block}
.gallery-head h1{font-size:clamp(25px,2.1vw,32px);line-height:1;margin:0;font-weight:700;letter-spacing:-.065em}
.wheel-stage{inset:0;perspective:1100px}
.orbit{width:clamp(800px,66vw,950px);top:53%;border:1.5px solid var(--line);transform:translate(-50%,-50%) rotateX(8deg) rotateY(-10deg)}
.wheel-geometry{position:absolute;width:clamp(800px,66vw,950px);aspect-ratio:1;left:50%;top:53%;transform:translate(-50%,-50%) rotateX(8deg) rotateY(-10deg);opacity:.1;pointer-events:none}
.wheel-geometry:before,.wheel-geometry:after,.wheel-geometry i{content:"";position:absolute;background:#000;transform-origin:center}
.wheel-geometry:before{width:100%;height:1px;left:0;top:50%;transform:rotate(32deg)}
.wheel-geometry:after{width:100%;height:1px;left:0;top:50%;transform:rotate(-36deg)}
.wheel-geometry i:nth-child(1){width:1px;height:100%;left:50%;top:0;transform:rotate(18deg)}
.wheel-geometry i:nth-child(2){width:72%;height:72%;left:14%;top:14%;background:transparent;border:1px solid #000;transform:rotate(45deg)}
.wheel-geometry i:nth-child(3){width:52%;height:1px;left:24%;top:50%;transform:rotate(78deg)}
.wheel-geometry i:nth-child(4){width:34%;height:34%;left:33%;top:33%;background:transparent;border:1px solid #000;transform:rotate(22deg)}
.wheel{transform-style:preserve-3d}
.work-card{--z:0px;left:50%;top:53%;width:clamp(190px,16vw,270px);aspect-ratio:1;border-radius:clamp(28px,2.2vw,38px);transform:translate(-50%,-50%) translate3d(var(--x),var(--y),var(--z)) rotate(var(--r)) scale(var(--s));transform-origin:center;box-shadow:none}
.work-card .card-label{display:none}
.gallery-foot{z-index:60;bottom:16px;left:50%;right:auto;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center}
.about-button{padding:10px 30px;min-width:118px;font-size:19px;letter-spacing:-.05em}
.about-button:hover{transform:scale(1.05);padding-inline:36px}
.down-mark{display:block;width:34px;height:14px;margin-top:6px;overflow:visible}
.down-mark path{stroke:#000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
.project-kicker{margin:70px 0 14px;font-size:11px;text-transform:uppercase;letter-spacing:.1em}
@media(max-width:700px){.gallery{padding:0}.gallery-head{left:9px;top:9px}.gallery-head h1{font-size:25px}.wheel-stage{inset:0}.orbit,.wheel-geometry{width:600px;top:52.5%}.work-card{width:220px;top:52.5%;border-radius:30px}.gallery-foot{left:50%;right:auto}.drag-hint{top:46%}}

/* The rear wheel path stays structural, never visible. */
.orbit{display:none}
.wheel.is-opening .work-card:not(.is-opening){opacity:0!important;transform:translate(-50%,-50%) translate3d(var(--x),var(--y),var(--z)) rotate(var(--r)) scale(calc(var(--s) * .82));transition:opacity .42s ease,transform .55s cubic-bezier(.4,0,.2,1)}
.work-card.is-pressing{animation:card-press .22s cubic-bezier(.2,.7,.2,1) both}
.work-card.is-opening{z-index:999!important;pointer-events:none;animation:card-enter .72s cubic-bezier(.2,.75,.15,1) forwards}
@keyframes card-press{0%{transform:translate(-50%,-50%) translate3d(var(--x),var(--y),var(--z)) rotate(var(--r)) scale(var(--s))}45%{transform:translate(-50%,-50%) translate3d(var(--x),var(--y),var(--z)) rotate(var(--r)) scale(calc(var(--s) * .96))}100%{transform:translate(-50%,-50%) translate3d(var(--x),var(--y),var(--z)) rotate(var(--r)) scale(var(--s))}}
@keyframes card-enter{0%{transform:translate(-50%,-50%) translate3d(var(--x),var(--y),var(--z)) rotate(var(--r)) scale(var(--s));border-radius:30px}100%{transform:translate(-50%,-50%) translate3d(0,0,160px) rotate(0) scale(5);border-radius:8px}}
