@font-face{font-family:Manrope;src:url('assets/manrope.woff2') format('woff2');font-weight:200 800;font-display:swap}
:root{color-scheme:dark;font-family:Manrope,Arial,sans-serif;color:#f5f4f7;background:#09090d;font-synthesis:none;--accent:#ff565f;--card-width:360px;--card-height:344px;--radius:340px}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 50% 40%,#1c111b 0,transparent 58%),#09090d}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,.stage:focus-visible{outline:2px solid #ff8c92;outline-offset:5px}[hidden]{display:none!important}.app{height:100vh;height:100dvh;min-height:550px;display:grid;grid-template-rows:auto minmax(0,1fr) auto;padding:env(safe-area-inset-top,0px) max(24px,env(safe-area-inset-right,0px)) env(safe-area-inset-bottom,0px) max(24px,env(safe-area-inset-left,0px));overflow:hidden}.header{display:flex;justify-content:space-between;align-items:center;gap:24px;height:84px;border-bottom:1px solid #ffffff14;position:relative;z-index:3}.wordmark{font-size:38px;font-weight:800;letter-spacing:-.08em;display:flex;align-items:center;min-height:48px}.wordmark>span{color:var(--accent)}.wordmark small{font-size:13px;font-weight:500;letter-spacing:-.02em;margin-left:17px}.header-note{font-size:9px;letter-spacing:.18em;color:#9998a5}.view-toggle{display:flex;align-items:center;justify-content:center;gap:10px;border:1px solid #ffffff26;border-radius:100px;padding:0 17px;height:44px;background:#ffffff04;font-size:11px;min-width:115px}.view-toggle:hover{background:#ffffff10}.view-toggle svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.3}main{display:grid;grid-template-rows:auto minmax(220px,1fr) auto;min-height:0}.intro{text-align:center;position:relative;z-index:2;padding-top:24px;pointer-events:none}.eyebrow{margin:0 0 10px;font-size:9px;font-weight:600;letter-spacing:.2em;color:#c7c4ce;display:flex;align-items:center;justify-content:center;gap:10px}.eyebrow>span:first-child{height:5px;width:5px;border-radius:50%;background:var(--accent);box-shadow:0 0 14px #ff565f66}.edition{color:#767382;letter-spacing:.1em}h1{font-size:clamp(30px,3.3vw,48px);font-weight:500;line-height:1.1;letter-spacing:-.055em;margin:0}h1 em{font-style:normal;color:#ff777d}.intro-copy{font-size:12px;line-height:1.6;color:#a6a1af;margin:12px 0 0}.stage{position:relative;min-height:0;perspective:1100px;perspective-origin:50% 45%;touch-action:pinch-zoom;cursor:grab;outline-offset:-6px!important;isolation:isolate}.stage.is-dragging{cursor:grabbing}.ring{position:absolute;left:50%;top:50%;width:0;height:0;transform-style:preserve-3d;transform:translateZ(calc(-1 * var(--radius))) rotateX(-6deg);will-change:transform}.project{position:absolute;width:var(--card-width);height:var(--card-height);left:calc(var(--card-width) / -2);top:calc(var(--card-height) / -2);transform-style:preserve-3d;--card-accent:#ff565f}.card-face{position:absolute;inset:0;display:block;border:1px solid #ffffff29;border-radius:12px;backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden;background:#14141c;box-shadow:0 18px 55px #0008}.card-front{transform:translateZ(1px);transition:border-color .2s,box-shadow .2s;color:#f5f4f7}.project.is-active .card-front{border-color:#ffffff66;box-shadow:0 0 0 1px #ffffff0a,0 26px 65px #0009,0 0 38px #ff565f0a}.card-front:focus-visible{outline-offset:4px}.browser-bar{height:26px;display:flex;align-items:center;gap:10px;padding:0 12px;font-size:8px;letter-spacing:.01em;background:#1b1b24;color:#bdb9c9}.browser-bar>span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.browser-lights{color:#787383;font-size:17px;letter-spacing:2px}.browser-bar>span:last-child{font-size:13px}.card-front img{width:100%;height:auto;aspect-ratio:1.5;display:block;object-fit:cover;object-position:top;pointer-events:none;user-select:none;-webkit-user-drag:none}.card-info{height:78px;padding:15px 16px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:linear-gradient(110deg,#1c1b25,#121219);border-top:1px solid #ffffff0a}.card-info p{font-size:8px;letter-spacing:.1em;color:var(--card-accent);margin:0 0 7px;font-weight:600}.card-info h2{font-size:clamp(13px,1.4vw,19px);font-weight:600;letter-spacing:-.035em;line-height:1.15;margin:0;max-width:270px}.visit-icon{font-size:21px;width:34px;height:34px;display:grid;place-items:center;border:1px solid #ffffff24;border-radius:50%;flex:none;color:var(--card-accent)}.card-back{transform:rotateY(180deg);background:linear-gradient(135deg,#211b26,#0c0d12);display:flex;flex-direction:column;align-items:center;justify-content:center;border-color:#ff565f28;background-image:linear-gradient(#ff565f0b 1px,transparent 1px),linear-gradient(90deg,#ff565f0b 1px,transparent 1px),linear-gradient(135deg,#211b26,#0c0d12);background-size:24px 24px,24px 24px,100% 100%;pointer-events:none}.card-back>span{font-size:65px;font-weight:700;letter-spacing:-.12em;color:#6d5366}.card-back>span>span{color:#a74852}.card-back small{font-size:8px;letter-spacing:.25em;margin-top:20px;color:#8c7889}.scene-decoration{position:absolute;inset:0;overflow:hidden;pointer-events:none}.horizon{position:absolute;bottom:-180px;left:50%;width:1100px;height:600px;margin-left:-550px;background-image:linear-gradient(#ff565f16 1px,transparent 1px),linear-gradient(90deg,#ff565f16 1px,transparent 1px);background-size:52px 52px;transform:perspective(500px) rotateX(65deg);mask-image:radial-gradient(ellipse,#000 0%,transparent 65%)}.orbit{position:absolute;left:50%;top:50%;width:min(82vw,950px);height:190px;border:1px solid #ff565f29;border-radius:50%;transform:translate(-50%,70px) rotate(-5deg);box-shadow:0 0 36px #ff565f06}.orbit-two{width:min(72vw,820px);height:150px;transform:translate(-50%,90px) rotate(5deg);border-color:#ffffff0c}.spindle-axis{position:absolute;left:50%;top:20px;bottom:22px;width:1px;background:linear-gradient(transparent,#ff565f77 25%,#ff565f33 75%,transparent)}.axis-point{position:absolute;left:calc(50% - 3px);width:6px;height:6px;background:#ff7a80;border-radius:50%;box-shadow:0 0 12px #ff565f}.point-top{top:24px}.point-bottom{bottom:26px}.interaction-panel{position:relative;z-index:2;text-align:center;padding-bottom:25px}.gesture-hint{display:flex;align-items:center;justify-content:center;gap:8px;color:#aaa4b5;font-size:11px;letter-spacing:.015em;margin:0 0 15px}.gesture-hint svg{width:15px;height:15px;fill:none;stroke:#d2a0aa;stroke-width:1.1;stroke-linecap:round;stroke-linejoin:round}.controls{display:flex;align-items:center;justify-content:center;gap:9px}.arrow{width:44px;height:44px;flex:none;background:#ffffff05;border:1px solid #ffffff23;border-radius:50%;font:22px Arial,sans-serif}.arrow:hover{background:#ffffff12;border-color:#ff777d}.counter{display:flex;align-items:center;justify-content:center;gap:8px;font:11px monospace;color:#8e889b;min-width:60px;font-variant-numeric:tabular-nums}.counter #current-number{color:#fff}.counter-divider{color:#65566b}.control-divider{width:1px;height:24px;background:#ffffff20;margin-inline:15px}.open-site{display:flex;align-items:center;justify-content:space-between;gap:25px;min-height:46px;padding:12px 20px;border-radius:100px;border:1px solid #ff747b;background:#cf2e40;color:white;font-size:12px;font-weight:600;box-shadow:0 6px 25px #e944501c}.open-site:hover{background:#bd2536}.open-site span{font-size:19px;line-height:1}.footer{height:52px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid #ffffff12;font-size:8px;letter-spacing:.1em;color:#9891a4}.footer>span:first-child{display:flex;gap:8px;align-items:center}.footer i{height:4px;width:4px;border-radius:50%;background:#ff6a72}.footer strong{font-weight:500;color:#d3cddc}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:fixed;left:16px;top:-100px;padding:14px;background:#fff;color:#111;z-index:20}.skip:focus{top:16px}.no-script{text-align:center;color:#aaa;font-size:13px;padding:20px}
body[data-view=grid] .app{height:auto;min-height:100vh;min-height:100dvh;overflow:visible}main[data-view=grid]{display:block}main[data-view=grid] .intro{padding-block:35px 30px}main[data-view=grid] .stage{touch-action:auto;cursor:default;perspective:none;max-width:1320px;margin:auto}main[data-view=grid] .scene-decoration{display:none}main[data-view=grid] .ring{position:relative;inset:auto;width:auto;height:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding-bottom:40px;transform:none!important;will-change:auto}main[data-view=grid] .project{position:relative;inset:auto;width:auto;height:auto;transform:none!important}main[data-view=grid] .card-front{position:relative;inset:auto;transform:none;transition:transform .2s,border-color .2s}main[data-view=grid] .card-front:hover{transform:translateY(-4px);border-color:#ff777d}main[data-view=grid] .card-back{display:none}main[data-view=grid] .card-info h2{font-size:19px}main[data-view=grid] .interaction-panel{display:none!important}
@media(min-width:1600px){.app{padding-inline:60px}.header{height:92px}.intro{padding-top:30px}.interaction-panel{padding-bottom:30px}}
@media(max-width:850px){.header-note{display:none}main[data-view=grid] .ring{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.footer-year{display:none}.header{height:70px}.intro{padding-top:22px}.card-info h2{font-size:17px}.orbit{height:150px}.orbit-two{height:110px}}
@media(max-width:550px){.app{padding-inline:max(16px,env(safe-area-inset-left,0px)) max(16px,env(safe-area-inset-right,0px));min-height:520px}.header{height:64px;gap:10px}.wordmark{font-size:33px}.wordmark small{font-size:11px;margin-left:10px}.view-toggle{font-size:10px;min-width:100px;padding-inline:13px;gap:8px}.intro{padding-top:22px}.eyebrow{font-size:8px;letter-spacing:.15em;gap:8px;margin-bottom:12px}h1{font-size:clamp(29px,7.7vw,39px)}.intro-copy{font-size:11px;line-height:1.5;max-width:260px;margin:10px auto 0}.stage{margin-inline:-16px;perspective:900px;perspective-origin:50% 45%}.browser-bar{height:22px;padding-inline:9px;font-size:7px;gap:6px}.card-info{height:70px;padding:12px}.card-info p{font-size:7px;letter-spacing:.06em;margin-bottom:7px}.card-info h2{font-size:15px;max-width:190px}.visit-icon{width:28px;height:28px;font-size:18px}.card-face{border-radius:9px}.interaction-panel{padding-bottom:20px}.gesture-hint{font-size:10px;gap:7px;margin-bottom:14px}.gesture-hint svg{width:13px;height:13px}.controls{gap:6px}.counter{min-width:45px;gap:5px;font-size:10px}.control-divider{margin-inline:5px}.open-site{padding:12px 16px;font-size:11px;gap:15px}.footer{height:46px;font-size:7px;letter-spacing:.04em;gap:12px}.footer>span:nth-child(2){text-align:right;max-width:150px;line-height:1.7}.orbit{width:440px;height:100px;transform:translate(-50%,95px) rotate(-5deg)}.orbit-two{width:365px;height:80px;transform:translate(-50%,106px) rotate(5deg)}.point-top{top:20px}.point-bottom{bottom:21px}main[data-view=grid] .intro{padding-block:28px}main[data-view=grid] .stage{margin-inline:0}main[data-view=grid] .ring{grid-template-columns:1fr;gap:22px;padding-bottom:28px}main[data-view=grid] .card-info{height:76px}main[data-view=grid] .card-info h2{font-size:19px;max-width:none}main[data-view=grid] .card-info p{font-size:8px}main[data-view=grid] .browser-bar{font-size:8px}}
@media(max-height:680px) and (max-width:550px){.header{height:58px}.intro{padding-top:14px}.eyebrow{margin-bottom:8px}.intro-copy{margin-top:8px}.interaction-panel{padding-bottom:12px}.gesture-hint{margin-bottom:10px;font-size:9px}.footer{height:38px}.point-top{top:10px}.point-bottom{bottom:12px}}
@media(orientation:landscape) and (max-height:550px){.app{min-height:370px}.header{height:52px}.intro{padding-top:10px}.intro .eyebrow,.intro-copy{display:none}h1{font-size:25px}main{grid-template-rows:auto minmax(175px,1fr) auto}.interaction-panel{padding-bottom:10px}.gesture-hint{display:none}.footer{height:30px}.card-info{height:52px;padding:7px 12px}.card-info h2{font-size:12px}.card-info p{font-size:6px;margin-bottom:4px}.browser-bar{height:18px;font-size:6px}.visit-icon{width:24px;height:24px;font-size:16px}.point-top{top:8px}.point-bottom{bottom:8px}.orbit{transform:translate(-50%,35px) rotate(-5deg);height:100px}.orbit-two{transform:translate(-50%,45px) rotate(5deg);height:70px}.open-site{min-height:44px}.footer-year{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}
@media(max-width:360px){.controls{gap:4px}.counter{min-width:40px}.control-divider{margin-inline:3px}.open-site{padding-inline:12px;gap:9px;font-size:10px;white-space:nowrap}}

main[data-view=spindle]{touch-action:pinch-zoom;cursor:grab;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}main[data-view=spindle].is-dragging,main[data-view=spindle].is-dragging .stage{cursor:grabbing}

/* Compact browsing is the default; the spindle retains its original touch surface. */
.wordmark{min-width:44px}.header-actions{display:flex;align-items:center;gap:22px}.contact-link{display:inline-flex;align-items:center;min-height:44px;font-size:12px;color:#dedbe3}.contact-link:hover{color:#ff8c92}.view-toggle{min-width:132px;border-color:#ff777d80;color:#ffb0b4;background:#ff565f0b}.header-note{display:none}main[data-view=grid] .card-front img{aspect-ratio:1.8}main[data-view=grid] .ring{gap:20px}main[data-view=grid] .card-info{height:auto;min-height:78px}main[data-view=grid] .card-info h2{line-height:1.25}main[data-view=grid] .intro-copy{color:#bdb7c6}
@media(max-width:850px){.header-actions{gap:16px}main[data-view=grid] .ring{gap:16px}}
@media(max-width:550px){.wordmark small{display:none}.header-actions{gap:12px}.contact-link{font-size:11px}.view-toggle{min-width:120px;font-size:11px;padding-inline:12px}main[data-view=grid] .intro{padding-block:24px}main[data-view=grid] .intro-copy{max-width:290px;font-size:12px}main[data-view=grid] .ring{gap:12px;padding-bottom:24px}main[data-view=grid] .card-front{display:grid;grid-template-columns:35% minmax(0,1fr);min-height:100px}main[data-view=grid] .browser-bar{display:none}main[data-view=grid] .card-front img{height:100%;min-height:100px;aspect-ratio:auto;border-right:1px solid #ffffff14}main[data-view=grid] .card-info{height:auto;min-height:100px;padding:13px 12px;border-top:0}main[data-view=grid] .card-info p{font-size:8px;line-height:1.5;margin-bottom:5px;letter-spacing:.04em}main[data-view=grid] .card-info h2{font-size:16px;line-height:1.3;max-width:none}main[data-view=grid] .visit-icon{display:none}}
@media(max-width:350px){.header-actions{gap:8px}.contact-link{font-size:10px}.view-toggle{min-width:109px;font-size:10px;padding-inline:10px}main[data-view=grid] .card-front{grid-template-columns:31% minmax(0,1fr)}main[data-view=grid] .card-info{padding-inline:10px}main[data-view=grid] .card-info h2{font-size:15px}}

/* Shared site shell; the view toggle belongs to the gallery, not global navigation. */
.showcase-toolbar{display:flex;justify-content:center;align-items:center;gap:18px;padding:12px 0;position:relative;z-index:3}.showcase-toolbar a{font-size:12px;min-height:44px;display:inline-flex;align-items:center}.showcase-toolbar .view-toggle{pointer-events:auto}.app>main{grid-template-rows:auto auto minmax(160px,1fr) auto}.app>.baker-footer{padding-block:5px;min-height:54px}.app>.baker-footer>.baker-brand{font-size:16px}body[data-view=grid] .app>main{display:block}.app .intro{padding-top:20px}
@media(max-width:760px){.app>.baker-header{min-height:88px}.app>.baker-footer>.baker-brand{display:none}.app>.baker-footer{min-height:60px;font-size:10px}.app>.baker-footer .baker-footer-links{gap:14px}.showcase-toolbar{padding-block:8px}.app .intro{padding-top:16px}}
@media(orientation:landscape) and (max-height:550px){.app{min-height:470px}.app>.baker-header{min-height:62px;flex-direction:row;padding-top:0;gap:20px}.app>.baker-header .baker-nav{width:auto;font-size:12px;gap:18px}.app>.baker-footer{min-height:45px}.showcase-toolbar{padding:5px 0}.app .intro{padding-top:8px}}
@media(max-height:680px) and (max-width:550px){body[data-view=spindle] .intro-copy{display:none}}
@media(orientation:landscape) and (max-height:550px){body[data-view=spindle] .app{min-height:390px}body[data-view=spindle] .app>.baker-header{min-height:50px}body[data-view=spindle] .app>main{grid-template-columns:1fr 1fr;grid-template-rows:auto minmax(160px,1fr) auto}body[data-view=spindle] .intro{grid-column:1;grid-row:1;align-self:center;padding-top:0}body[data-view=spindle] .showcase-toolbar{grid-column:2;grid-row:1;padding-block:3px}body[data-view=spindle] .stage{grid-column:1/-1;grid-row:2}body[data-view=spindle] .interaction-panel{grid-column:1/-1;grid-row:3}}
