/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer theme;.hidden{display:none}#projects{z-index:3;min-height:1080px;color:var(--text);isolation:isolate;background:0 0;padding:96px 0;position:relative;overflow:hidden}#projects:before{content:"";z-index:-1;opacity:.6;background:radial-gradient(circle at 50% 54%,var(--accent-dim),transparent 57%);pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0}#projects .wrap{width:min(100% - 40px,1440px);max-width:1440px}#projects .endpoint,#projects .h2,#projects .sub{z-index:5;position:relative}#projects .endpoint,#projects .endpoint .verb{color:var(--accent)}#projects .h2{color:var(--text);letter-spacing:.01em;font-family:Chakra Petch,sans-serif;font-size:clamp(26px,3.4vw,38px);font-weight:600;line-height:1.15}#projects .sub{color:var(--muted);font-family:IBM Plex Sans,sans-serif}#projGrid{z-index:2;position:relative}.projects-experience{min-height:745px;margin-top:-44px;font-family:IBM Plex Sans,sans-serif;position:relative}.projects-stage{z-index:1;perspective:1200px;pointer-events:none;place-items:center;display:grid;position:absolute;top:0;right:0;bottom:0;left:0;overflow:visible}.projects-stage:before{content:"";aspect-ratio:1;border:1px solid var(--border);width:min(60vw,780px);box-shadow:inset 0 0 90px var(--accent-dim),0 0 110px var(--accent-dim);opacity:0;border-radius:50%;transition:opacity .9s,transform 1.4s cubic-bezier(.16,1,.3,1);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.72)}.projects-experience--orbited .projects-stage:before{opacity:1;transform:translate(-50%,-50%)scale(1)}.projects-orbit{width:1px;height:1px;transform-style:preserve-3d;position:absolute;top:50%;left:50%}.project-orbit-tile{border:1px solid var(--border-strong);background:var(--bg-2);border-radius:10px;flex-direction:column;justify-content:space-between;align-items:center;width:124px;height:152px;padding:22px 16px 16px;display:flex;position:absolute;top:-76px;left:-62px}@supports (color:color-mix(in lab,red,red)){.project-orbit-tile{background:color-mix(in srgb,var(--bg-2) 88%,var(--card-color) 12%)}}.project-orbit-tile{color:var(--text);box-shadow:var(--shadow);opacity:.88;transform:translate3d(var(--flat-x),var(--flat-y),0) rotate(var(--flat-r)) scale(.93);backface-visibility:hidden;transition:transform 1.5s cubic-bezier(.16,1,.3,1),opacity .9s}.project-orbit-tile .project-symbol{width:68px;height:60px}.project-orbit-tile>span:last-child{width:100%;color:var(--muted);letter-spacing:.13em;font-family:JetBrains Mono,monospace;font-size:9px;font-weight:600}.projects-experience--orbited .projects-orbit{animation:28s linear infinite project-orbit-spin}.projects-experience--orbited .project-orbit-tile{opacity:.48;transform:rotateY(var(--angle)) rotateX(var(--tilt)) translateZ(410px) translateY(var(--lift))}.project-focus-wrap{z-index:5;perspective:1000px;place-items:center;min-height:620px;padding-top:58px;display:grid;position:relative}.project-focus-card{border:1px solid var(--border-strong);background:var(--bg-2);width:min(360px,100vw - 52px);min-height:472px;color:var(--text);text-align:left;box-shadow:var(--shadow),inset 0 2px 0 var(--card-color);border-radius:16px;flex-direction:column;align-items:flex-start;padding:24px;display:flex;position:relative;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.project-focus-card{box-shadow:var(--shadow),inset 0 2px color-mix(in srgb,var(--card-color) 72%,transparent)}}.project-focus-card{cursor:pointer;opacity:0;transition:transform 1.1s cubic-bezier(.16,1,.3,1),opacity .65s,box-shadow .3s;transform:translateY(38px)rotateX(9deg)scale(.94)}.projects-experience--orbited .project-focus-card{opacity:1;transform:translateY(0)rotateX(0)scale(1)}.project-focus-card:hover{border-color:var(--card-color)}@supports (color:color-mix(in lab,red,red)){.project-focus-card:hover{border-color:color-mix(in srgb,var(--card-color) 58%,var(--border-strong))}}.project-focus-card:hover{box-shadow:0 34px 90px #0000006b,inset 0 2px 0 var(--card-color);transform:translateY(-8px)rotateX(0)scale(1.015)}.project-focus-card:focus-visible,.project-selector button:focus-visible,.project-modal-close:focus-visible,.project-modal-links a:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.project-focus-meta{width:100%;color:var(--card-color);letter-spacing:.13em;justify-content:space-between;font-family:JetBrains Mono,monospace;font-size:9px;font-weight:600;display:flex}.project-symbol{border:1px solid var(--card-color);place-items:center;width:118px;height:106px;margin-top:28px;display:grid}@supports (color:color-mix(in lab,red,red)){.project-symbol{border:1px solid color-mix(in srgb,var(--card-color) 42%,transparent)}}.project-symbol{background:var(--card-color);border-radius:18px}@supports (color:color-mix(in lab,red,red)){.project-symbol{background:color-mix(in srgb,var(--card-color) 12%,transparent)}}.project-symbol{color:var(--card-color)}.project-symbol svg{filter:drop-shadow(0 0 12px var(--card-color))}@supports (color:color-mix(in lab,red,red)){.project-symbol svg{filter:drop-shadow(0 0 12px color-mix(in srgb,var(--card-color) 38%,transparent))}}.project-focus-copy{margin-top:auto}.project-focus-copy h3{letter-spacing:0;margin:0;font-family:Chakra Petch,sans-serif;font-size:clamp(24px,3vw,32px);font-weight:600;line-height:1.04}.project-focus-copy p{color:var(--muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:15px 0 0;font-size:12px;line-height:1.5;display:-webkit-box;overflow:hidden}.project-focus-open{border-top:1px solid var(--border);width:100%;color:var(--accent);letter-spacing:.12em;text-transform:lowercase;justify-content:space-between;align-items:center;margin-top:18px;padding-top:14px;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:600;display:flex}.project-selector{z-index:6;grid-template-columns:repeat(4,1fr);gap:8px;width:min(100%,1040px);margin:-20px auto 0;display:grid;position:relative}.project-selector button{border:1px solid var(--border);background:var(--surface);min-width:0;min-height:88px;color:var(--muted);text-align:left;cursor:pointer;border-radius:10px;padding:18px 16px 14px;transition:color .26s,background-color .26s,transform .26s,border-color .26s;position:relative;overflow:hidden}.project-selector button:before{content:"";background:var(--card-color);opacity:.34;width:4px;transition:width .36s cubic-bezier(.16,1,.3,1),opacity .26s;position:absolute;inset:0 auto 0 0}.project-selector button:hover,.project-selector button.is-active{border-color:var(--accent-line);background:var(--surface-strong);color:var(--text);transform:translateY(-3px)}.project-selector button.is-active:before{opacity:.14;width:100%}.project-selector button span,.project-selector button strong{z-index:1;display:block;position:relative}.project-selector button span{color:var(--card-color);letter-spacing:.13em;margin-bottom:8px;font-family:JetBrains Mono,monospace;font-size:8px;font-weight:600}.project-selector button strong{text-overflow:ellipsis;white-space:nowrap;font-family:Chakra Petch,sans-serif;font-size:11px;font-weight:500;line-height:1.25;overflow:hidden}#projects .rail-hint{z-index:7;width:min(100%,1040px);color:var(--accent);letter-spacing:.08em;text-align:center;justify-content:center;margin:18px auto 0;font-family:JetBrains Mono,monospace;font-size:11px;position:relative}.project-modal-shell{z-index:1000;overscroll-behavior:contain;-webkit-backdrop-filter:blur(18px);background:#05080cd6;place-items:center;padding:24px;animation:.22s both project-modal-fade;display:grid;position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden}.project-modal-card{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable;isolation:isolate;border:1px solid var(--border-strong);background:var(--bg-2);border-radius:18px;width:min(760px,100%);max-height:calc(100vh - 48px);padding:clamp(28px,5vw,58px);position:relative;overflow-y:auto}@supports (color:color-mix(in lab,red,red)){.project-modal-card{background:color-mix(in srgb,var(--bg-2) 95%,var(--card-color) 5%)}}.project-modal-card{color:var(--text);box-shadow:var(--shadow),inset 0 2px 0 var(--card-color)}@supports (color:color-mix(in lab,red,red)){.project-modal-card{box-shadow:var(--shadow),inset 0 2px color-mix(in srgb,var(--card-color) 68%,transparent)}}.project-modal-card{animation:.5s cubic-bezier(.16,1,.3,1) both project-modal-rise}.project-modal-close{border:1px solid var(--border-strong);background:var(--surface);width:42px;height:42px;color:var(--accent);cursor:pointer;border-radius:50%;place-items:center;display:grid;position:absolute;top:20px;right:20px}.project-modal-mark{border:1px solid var(--card-color);place-items:center;width:118px;height:104px;margin-bottom:44px;display:grid}@supports (color:color-mix(in lab,red,red)){.project-modal-mark{border:1px solid color-mix(in srgb,var(--card-color) 42%,transparent)}}.project-modal-mark{background:var(--card-color);border-radius:18px}@supports (color:color-mix(in lab,red,red)){.project-modal-mark{background:color-mix(in srgb,var(--card-color) 12%,transparent)}}.project-modal-mark{color:var(--card-color)}.project-modal-id{color:var(--card-color);letter-spacing:.14em;margin:0 0 12px;font-family:JetBrains Mono,monospace;font-size:9px;font-weight:600}.project-modal-card h3{letter-spacing:0;max-width:620px;margin:0;font-family:Chakra Petch,sans-serif;font-size:clamp(32px,5vw,54px);font-weight:600;line-height:1}.project-modal-body{max-width:620px;color:var(--muted);margin-top:28px;font-size:14px;line-height:1.72}.project-modal-body p{margin:0}.project-modal-tags{flex-wrap:wrap;gap:7px;margin-top:28px;display:flex}.project-modal-tag{border:1px solid var(--accent-line);color:var(--accent);letter-spacing:.05em;border-radius:999px;padding:7px 10px;font-family:JetBrains Mono,monospace;font-size:9px;font-weight:500}.project-modal-links{z-index:5;padding-bottom:max(6px,env(safe-area-inset-bottom));margin-top:34px;position:relative}.project-modal-links a,.project-modal-link-unavailable{z-index:6;border-top:1px solid var(--border);width:100%;color:var(--accent);letter-spacing:.08em;pointer-events:auto;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:var(--accent);justify-content:space-between;align-items:center;padding:17px 0;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:600;text-decoration:none;display:flex;position:relative}@supports (color:color-mix(in lab,red,red)){.project-modal-links a,.project-modal-link-unavailable{-webkit-tap-highlight-color:color-mix(in srgb,var(--accent) 22%,transparent)}}.project-modal-links a{isolation:isolate;border-radius:8px;transition:background-color .18s,padding .18s}.project-modal-links a:hover,.project-modal-links a:focus-visible{background:var(--accent-dim);padding-left:12px;padding-right:12px}.project-modal-link-unavailable{color:var(--faint);cursor:not-allowed;pointer-events:none}@keyframes project-orbit-spin{0%{transform:rotateX(-4deg)rotateY(0)}to{transform:rotateX(-4deg)rotateY(360deg)}}@keyframes project-modal-fade{0%{opacity:0}to{opacity:1}}@keyframes project-modal-rise{0%{opacity:0;transform:translateY(32px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@media(max-width:900px){#projects{min-height:980px;padding-top:92px}.projects-experience{min-height:700px;margin-top:12px}.projects-stage{transform:scale(.78)}.projects-experience--orbited .project-orbit-tile{transform:rotateY(var(--angle)) rotateX(var(--tilt)) translateZ(330px) translateY(var(--lift))}.project-selector{scroll-snap-type:x mandatory;scrollbar-width:none;width:calc(100vw - 40px);margin-top:-8px;padding-bottom:8px;display:flex;overflow-x:auto}.project-selector::-webkit-scrollbar{display:none}.project-selector button{scroll-snap-align:start;min-width:210px}}@media(max-width:560px){#projects{min-height:940px;padding:80px 0 72px}#projects .wrap{width:min(100% - 28px,1440px)}#projects .h2{font-size:24px}.projects-experience{min-height:670px}.projects-stage{transform:scale(.57)}.project-focus-wrap{min-height:550px;padding-top:24px}.project-focus-card{width:min(318px,100vw - 74px);min-height:430px;padding:20px}.project-symbol{width:102px;height:92px}.project-selector{width:calc(100vw - 28px)}.project-selector button{min-width:178px}#projects .rail-hint{margin-top:14px;font-size:10px}.project-modal-shell{align-items:end;padding:12px}.project-modal-card{max-height:calc(100vh - 24px);padding:28px 22px max(40px,calc(28px + env(safe-area-inset-bottom)))}.project-modal-mark{width:96px;height:84px;margin-bottom:32px}.project-modal-card h3{padding-right:34px;font-size:36px}}@media(prefers-reduced-motion:reduce){.projects-orbit,.projects-experience--orbited .projects-orbit{animation:none}.project-orbit-tile,.project-focus-card,.projects-stage:before{transition-duration:1ms}}
