:root{font-family:IBM Plex Sans,Avenir Next,Segoe UI,sans-serif;line-height:1.5;font-weight:400;color:#2a221d;background:#f7f1e8;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;overflow-x:hidden;overflow-y:auto}button,input,textarea,select{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}#root{min-height:100vh}.app-shell{position:relative;min-height:100vh;overflow-x:hidden;background:#f7f1e8;color:#2a221d}.phase-start,.phase-launching,.phase-orbit{overflow-y:hidden}.phase-project{overflow-y:auto}.nebula-canvas{position:fixed;inset:0;z-index:0}.phase-start,.phase-launching{background:#000;color:#fff}.launch-overlay{position:fixed;inset:0;z-index:4;pointer-events:none;opacity:0;transition:opacity .22s ease}.launch-overlay.visible{opacity:1}.launch-vignette{position:absolute;inset:0;background:radial-gradient(circle at center,#ffffff0d,#fff0 18%),radial-gradient(circle at center,#0b0a1300,#0b0a13e0 72%);animation:tunnelFlash 1.3s ease-out forwards}.launch-core{position:absolute;top:50%;left:50%;width:.28rem;height:.28rem;border-radius:50%;background:#fff;transform:translate(-50%,-50%) scale(.5);box-shadow:0 0 .65rem #fffffff2,0 0 1.8rem #ffffff47;animation:coreCollapse 1.25s cubic-bezier(.18,.88,.14,1) forwards}.launch-ray{position:absolute;top:50%;left:50%;width:var(--ray-length);height:var(--ray-thickness);border-radius:999px;transform-origin:center center;background:linear-gradient(90deg,#ef9a8beb,#f1c879f0 28%,#7fd1a0eb 62%,#7cb5f5f0);opacity:0;mix-blend-mode:screen;transform:translate(-50%,-50%) rotate(var(--ray-angle, 0deg)) translate(var(--ray-offset)) scaleX(.12);animation-delay:var(--ray-delay, 0s);animation:rayTunnel 1.15s ease-out forwards}.launch-ring{position:absolute;top:50%;left:50%;border-radius:50%;transform:translate(-50%,-50%) scale(.12);mix-blend-mode:screen;animation:warp 1.28s cubic-bezier(.16,.84,.2,1) forwards;border:0;box-shadow:none;-webkit-mask:radial-gradient(circle,transparent calc(50% - 6px),#000 calc(50% - 6px),#000 calc(50% + 6px),transparent calc(50% + 6px));mask:radial-gradient(circle,transparent calc(50% - 6px),#000 calc(50% - 6px),#000 calc(50% + 6px),transparent calc(50% + 6px))}.launch-ring-a{width:10rem;height:10rem;background:conic-gradient(from 20deg,#ef9a8b00,#ef9a8b 100deg,#f1c879 165deg,#7fd1a0eb 240deg,#7cb5f5e6 320deg,#ef9a8b00 360deg)}.launch-ring-b{width:18rem;height:18rem;background:conic-gradient(from 90deg,#7cb5f500,#7cb5f5 90deg,#7fd1a0eb,#f1c879 250deg,#ef9a8bf5 320deg,#7cb5f500 360deg);animation-delay:70ms}.launch-ring-c{width:28rem;height:28rem;background:conic-gradient(from 200deg,#7fd1a000,#7fd1a0fa 100deg,#7cb5f5f5 175deg,#ef9a8bf5 260deg,#f1c879fa 320deg,#7fd1a000 360deg);animation-delay:.12s}.launch-ring-d{width:42rem;height:42rem;background:conic-gradient(from 310deg,#f1c87900,#f1c879f2 90deg,#ef9a8be6 155deg,#7cb5f5eb 235deg,#7fd1a0e6 320deg,#f1c87900 360deg);animation-delay:.17s}.start-screen,.experience,.project-page{position:relative;z-index:1;min-height:100vh}.start-screen{display:grid;place-items:center}.start-button,.reset-button,.artifact-chip,.category-label,.hover-project-card,.hover-category-card,.center-hover-card,.center-about-card,.content-card,.project-hero,.project-hero-media,.hover-card-hero{font:inherit;-webkit-backdrop-filter:blur(24px) saturate(135%);backdrop-filter:blur(24px) saturate(135%)}.start-button{position:relative;display:grid;place-items:center;width:4rem;height:4rem;padding:0;border-radius:50%;border:0;background:transparent;cursor:pointer;animation:startPulse 4.4s ease-in-out infinite;transition:transform .22s ease,filter .22s ease}.start-button:before,.start-button:after{content:"";position:absolute;inset:50%;border-radius:50%;transform:translate(-50%,-50%) scale(1)}.start-button:before{width:4.05rem;height:4.05rem;background:#b5ceff47;animation:startPulseOuter 4.4s ease-in-out infinite}.start-button:after{width:5.8rem;height:5.8rem;background:#b5ceff38;animation:startPulseOuterFar 4.4s ease-in-out infinite}.start-button-orbit{position:absolute;inset:50%;width:7.4rem;height:7.4rem;border-radius:50%;background:#b5ceff29;transform:translate(-50%,-50%) scale(1);animation:startPulseOuterFarthest 4.4s ease-in-out infinite}.start-button-core{width:2.35rem;height:2.35rem;border-radius:50%;background:#fff;transition:transform .22s ease,box-shadow .22s ease;box-shadow:0 0 1rem #ffffff47,0 0 2rem #ffffff1f}.start-button:hover,.start-button:focus-visible{outline:none;filter:brightness(1.05)}.start-button:hover .start-button-core,.start-button:focus-visible .start-button-core{transform:scale(1.08);box-shadow:0 0 1.25rem #ffffff61,0 0 2.35rem #fff3}.topbar,.project-topbar{position:fixed;top:0;left:0;right:0;z-index:3;display:flex;justify-content:flex-start;align-items:center;padding:1.25rem 1.5rem 0}.eyebrow{margin:0 0 .4rem;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:#463427a3}.topbar h1,.project-hero-copy h1{margin:0;font-size:clamp(2rem,4vw,3.8rem);line-height:.94;letter-spacing:-.05em}.reset-button{display:inline-grid;place-items:center;width:2.4rem;height:2.4rem;padding:0;border-radius:999px;border:1px solid rgba(255,255,255,.46);background:#fffaf524;color:#3d2c22;cursor:pointer;box-shadow:0 1.25rem 3rem #5b452c14;font-size:1.1rem;line-height:1;transition:transform .2s ease,background .2s ease,border-color .2s ease,box-shadow .2s ease}.reset-button:hover,.reset-button:focus-visible{outline:none;transform:translateY(-1px) scale(1.04);background:#fffaf538;border-color:#ffffff9e;box-shadow:0 1.4rem 3.2rem #5b452c1f}.orbit-frame{display:grid;place-items:center;min-height:100vh;padding:.4rem 1.5rem 1.35rem}.orbit-camera{transition:transform .7s cubic-bezier(.18,.9,.16,1);will-change:transform}.orbit-camera.focused{transform:scale(2.35)}.orbit-scene{position:relative;width:min(90vw,54rem);aspect-ratio:1;animation:orbitSceneReveal .72s cubic-bezier(.16,.9,.18,1) both}.category-center-orbit{position:absolute;top:50%;left:50%;border-radius:50%;border:1.5px solid color-mix(in srgb,var(--orbit-color) 30%,rgba(68,55,47,.1));transform:translate(-50%,-50%) scale(.08);transition:opacity .26s ease;pointer-events:none;z-index:0;opacity:0;animation:orbitRingReveal .76s cubic-bezier(.16,.9,.18,1) var(--ring-delay, 80ms) forwards}.category-center-orbit.dimmed{opacity:.12}.identity-core{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:grid;place-items:center;z-index:10;pointer-events:none;transition:opacity .22s ease}.identity-core.hidden{opacity:0;pointer-events:none}.identity-ring{position:absolute;width:27rem;height:27rem;border-radius:50%;border:0}.identity-button{display:grid;place-items:center;padding:0;border:0;background:transparent;cursor:pointer;pointer-events:auto;z-index:11;transition:transform .22s ease}.identity-dot{width:1.1rem;height:1.1rem;border-radius:50%;background:#fff;transition:transform .22s ease,box-shadow .22s ease;box-shadow:0 0 1.35rem #ffffffe6,0 0 2.8rem #ffffff5c}.identity-button:hover,.identity-button:focus-visible{outline:none}.identity-button:hover .identity-dot,.identity-button:focus-visible .identity-dot{transform:scale(1.12);box-shadow:0 0 1.6rem #fffffff5,0 0 3.2rem #ffffff70}.category-group{position:absolute;top:50%;left:50%;width:0;height:0;transition:opacity .26s ease,filter .26s ease;z-index:2}.category-group.dimmed{opacity:0;pointer-events:none}.category-group.focused{z-index:4}.category-planet{position:absolute;top:50%;left:50%;width:1rem;height:1rem;padding:0;border:0;border-radius:50%;background:color-mix(in srgb,var(--category-color) 42%,white);transform:translate(-50%,-50%);box-shadow:0 0 0 1px #ffffff9e,0 0 .9rem color-mix(in srgb,var(--category-color) 18%,white);z-index:3;animation:planetReveal .7s cubic-bezier(.18,.88,.16,1) var(--planet-delay, .12s) both;transition:transform .22s ease,box-shadow .22s ease,background .22s ease}.category-planet:hover,.category-planet:focus-visible{outline:none;transform:translate(-50%,-50%) scale(1.09);box-shadow:0 0 0 1px #ffffffc7,0 0 1.1rem color-mix(in srgb,var(--category-color) 26%,white)}.category-label{position:absolute;left:50%;top:calc(50% + 1.35rem);transform:translate(-50%);padding:.35rem .7rem;border-radius:999px;background:#fffaf433;border:1px solid rgba(255,255,255,.44);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;opacity:0;transition:opacity .18s ease;white-space:nowrap}.category-label.visible{opacity:1}.project-orbit-shell{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);opacity:0;transition:opacity .22s ease;pointer-events:none;z-index:1}.project-orbit-shell.visible{opacity:1;animation:orbitBlossomReveal .76s cubic-bezier(.16,.9,.18,1) var(--shell-delay, .15s) both}.project-orbit-shell.dimmed{opacity:0}.project-orbit-ring{position:absolute;inset:0;border-radius:50%;border:1.5px solid color-mix(in srgb,var(--ring-color) 18%,rgba(68,55,47,.08))}.project-node{position:absolute;top:50%;left:50%;width:.92rem;height:.92rem;padding:0;border:0;border-radius:50%;background:var(--node-color);transform:translate(-50%,-50%);box-shadow:0 0 0 1px #ffffff9e;z-index:2;will-change:transform;pointer-events:auto;animation:planetReveal .72s cubic-bezier(.18,.88,.16,1) var(--node-delay, .18s) both;transition:width .22s ease,height .22s ease,margin .22s ease,box-shadow .22s ease,filter .22s ease}.project-node:hover,.project-node:focus-visible{outline:none;width:1rem;height:1rem;margin-left:-.04rem;margin-top:-.04rem;box-shadow:0 0 0 1px #ffffffc7,0 0 1.2rem color-mix(in srgb,var(--node-color) 52%,white)}.hover-project-card,.hover-category-card,.center-hover-card,.center-about-card,.content-card,.project-hero,.project-hero-media{background:#fffaf424;border:1px solid rgba(255,255,255,.48);box-shadow:0 1.25rem 3rem #5b452c14,inset 0 1px #ffffff3d}.hover-project-card,.hover-category-card,.center-hover-card,.center-about-card{position:fixed;left:1.5rem;bottom:1.5rem;z-index:3;width:min(23rem,calc(100vw - 3rem));padding:1rem;border-radius:1.25rem}.center-about-card{display:block}.about-card-topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:.9rem;margin-bottom:.55rem}.about-card-heading{text-align:right}.about-card-heading .eyebrow{margin-top:0;margin-bottom:.4rem}.about-card-heading h2{margin:0}.hover-project-card h2,.hover-category-card h2,.center-hover-card h2,.center-about-card h2,.content-card h2{margin:0;font-size:1.2rem}.center-hover-card{display:flex;flex-direction:column;gap:.35rem}.center-hover-card .eyebrow{margin-bottom:.1rem}.about-close-button{display:inline-grid;flex:0 0 auto;place-items:center;width:2.2rem;height:2.2rem;padding:0;border:1px solid rgba(255,255,255,.42);border-radius:999px;background:#fffaf524;color:#3d2c22;-webkit-backdrop-filter:blur(20px) saturate(135%);backdrop-filter:blur(20px) saturate(135%);cursor:pointer;font-size:1rem;line-height:1;transition:transform .2s ease,background .2s ease,border-color .2s ease,box-shadow .2s ease}.about-close-button:hover,.about-close-button:focus-visible{outline:none;transform:translateY(-1px) scale(1.04);background:#fffaf538;border-color:#fff9;box-shadow:0 1rem 2.2rem #5b452c1f}.hover-card-hero{display:block;margin-bottom:.9rem;border-radius:1rem;background:#fffaf429;border:1px dashed rgba(68,55,47,.18);overflow:hidden;color:#4634278a}.hover-card-hero .project-media-asset{display:block;object-fit:contain;width:100%;height:auto;background:#fffaf438}.hover-card-hero video.project-media-asset{aspect-ratio:16 / 9;min-height:10rem}.project-media-asset{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}.project-pdf-frame{width:100%;height:100%;min-height:12rem;border:0;display:block;background:#fff}.hover-meta,.hover-intro,.hover-category-card p:not(.eyebrow),.center-hover-card p:not(.eyebrow),.center-about-card p:not(.eyebrow),.project-subtitle,.content-card p{margin:.55rem 0 0;line-height:1.6;color:#2a221dbd}.center-hover-card{width:min(18rem,calc(100vw - 3rem))}.center-about-card{left:50%;top:50%;bottom:auto;transform:translate(-50%,-50%);width:min(30rem,calc(100vw - 3rem));display:flex;flex-direction:column}.about-card-links{display:flex;gap:.55rem;margin-top:.8rem;align-self:flex-end}.about-card-links a{display:inline-flex;align-items:center;justify-content:center;min-height:2.15rem;padding:.45rem .8rem;border-radius:999px;border:1px solid rgba(255,255,255,.36);background:#fffaf524;color:#2a221dc2;text-decoration:none;-webkit-backdrop-filter:blur(18px) saturate(130%);backdrop-filter:blur(18px) saturate(130%);transition:transform .18s ease,color .18s ease,border-color .18s ease,background .18s ease,box-shadow .18s ease}.about-card-links a:hover,.about-card-links a:focus-visible{color:#2a221df0;background:#fffaf538;border-color:#ffffff94;box-shadow:0 .8rem 1.8rem #5b452c1a;transform:translateY(-1px);outline:none}.project-layout{padding:1.25rem 1.5rem 2rem;width:min(100%,64rem);margin:0 auto}.project-hero{display:flex;flex-direction:column;gap:1rem;padding:1rem;border-radius:1.5rem}.project-hero-media{display:grid;place-items:center;min-height:32rem;border-radius:1.2rem;border:1px dashed rgba(68,55,47,.18);overflow:hidden;color:#4634278a}.project-hero-copy{display:flex;flex-direction:column;justify-content:space-between;padding:.25rem .5rem .5rem;gap:.2rem;min-width:0}.project-hero-keywords{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:flex-end;align-self:flex-end;margin-top:auto;margin-left:auto;max-width:100%;white-space:nowrap}.project-content-grid{display:grid;grid-template-columns:1fr;gap:1rem;margin-top:1rem}.media-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1rem;align-items:start}.media-gallery-row{display:flex;align-items:stretch}.media-gallery-row>*{min-width:0}.media-card-frame{min-height:12rem;border-radius:1rem;overflow:hidden;border:1px solid rgba(255,255,255,.42);background:#fffaf41a}.media-carousel{position:relative;min-width:0}.media-carousel-frame,.media-embed-frame,.media-pdf-embed{height:18.5rem;border-radius:1.05rem;overflow:hidden;border:1px solid rgba(255,255,255,.42);background:#fffaf41a}.media-gallery>.media-pdf-embed:only-child{grid-column:1 / -1;height:34rem}.media-carousel-frame{min-height:0}.media-carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);width:2.4rem;height:2.4rem;padding:0;border-radius:999px;font-size:1.1rem;line-height:1;opacity:0;pointer-events:none;transition:opacity .16s ease,transform .18s ease,background .18s ease,border-color .18s ease}.media-carousel:hover .media-carousel-arrow,.media-carousel:focus-within .media-carousel-arrow{opacity:1;pointer-events:auto}.media-carousel-arrow:hover{transform:translateY(-50%) scale(1.04)}.media-carousel-arrow-left{left:.9rem}.media-carousel-arrow-right{right:.9rem}.media-carousel-dots{position:absolute;left:50%;bottom:.9rem;transform:translate(-50%);display:flex;gap:.42rem}.media-carousel-dot{width:.42rem;height:.42rem;border-radius:999px;background:#ffffff59;transition:transform .18s ease,background .18s ease}.media-carousel-dot.is-active{transform:scale(1.15);background:#ffffffd1}.media-embed-frame .project-media-asset{object-fit:contain;background:#211d1adb}.media-gallery-row .media-carousel-frame,.media-gallery-row .media-embed-frame,.media-gallery-row .media-pdf-embed{height:19rem}.media-gallery-row-compact .media-carousel-frame,.media-gallery-row-compact .media-embed-frame,.media-gallery-row-compact .media-pdf-embed{height:15.5rem}.media-gallery-row .media-album .media-carousel-frame{background:#fffaf41f}.media-gallery-row .media-album .project-media-asset,.media-gallery-row .media-embed-frame .project-media-asset{object-fit:cover;background:transparent}.content-card{padding:1rem;border-radius:1.25rem}.artifact-list{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:.8rem}.artifact-chip{padding:.45rem .72rem;border-radius:999px;border:1px solid rgba(255,255,255,.42);background:#fffaf52e;color:#3d2c22}.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}@keyframes warp{0%{transform:translate(-50%,-50%) scale(.12);opacity:.95}to{transform:translate(-50%,-50%) scale(7.2);opacity:0}}@keyframes coreCollapse{0%{transform:translate(-50%,-50%) scale(.5);opacity:.4}55%{transform:translate(-50%,-50%) scale(8);opacity:.3}to{transform:translate(-50%,-50%) scale(.08);opacity:0}}@keyframes rayTunnel{0%{opacity:0}12%{opacity:.92}72%{opacity:.72;transform:translate(-50%,-50%) rotate(var(--ray-angle, 0deg)) translate(calc(var(--ray-target) * 1.2)) scaleX(1.06)}to{opacity:0;transform:translate(-50%,-50%) rotate(var(--ray-angle, 0deg)) translate(calc(var(--ray-target) * 1.65)) scaleX(1.12)}}@keyframes tunnelFlash{0%{opacity:0}20%{opacity:1}to{opacity:0}}@keyframes startPulse{0%,to{transform:scale(.98)}50%{transform:scale(1.05)}}@keyframes startPulseOuter{0%,to{transform:translate(-50%,-50%) scale(.96);opacity:.86}50%{transform:translate(-50%,-50%) scale(1.06);opacity:.56}}@keyframes startPulseOuterFar{0%,to{transform:translate(-50%,-50%) scale(.92);opacity:.8}50%{transform:translate(-50%,-50%) scale(1.1);opacity:.5}}@keyframes startPulseOuterFarthest{0%,to{transform:translate(-50%,-50%) scale(.9);opacity:.72}50%{transform:translate(-50%,-50%) scale(1.12);opacity:.42}}@keyframes orbitSceneReveal{0%{transform:scale(.14);opacity:0}to{transform:scale(1);opacity:1}}@keyframes orbitRingReveal{0%{transform:translate(-50%,-50%) scale(.08);opacity:0}to{transform:translate(-50%,-50%) scale(1);opacity:1}}@keyframes orbitBlossomReveal{0%{transform:translate(-50%,-58%) scale(.06);opacity:0}to{transform:translate(-50%,-50%) scale(1);opacity:1}}@keyframes planetReveal{0%{opacity:0;scale:.2}to{opacity:1;scale:1}}@media(max-width:900px){.orbit-scene{width:min(96vw,36rem)}.identity-ring{width:18rem;height:18rem}.project-hero,.project-content-grid,.media-gallery{grid-template-columns:1fr}.media-gallery-row{display:grid;grid-template-columns:1fr}}@media(max-width:680px){.topbar,.project-topbar{padding:1rem 1rem 0}.hover-project-card,.hover-category-card,.center-hover-card{left:1rem;bottom:1rem;width:calc(100vw - 2rem)}.center-about-card{width:calc(100vw - 2rem)}.project-layout{padding:5rem 1rem 1rem}.media-carousel-frame,.media-embed-frame,.media-pdf-embed{height:16rem}.media-gallery>.media-pdf-embed:only-child{height:22rem}.media-carousel-arrow-left{left:.6rem}.media-carousel-arrow-right{right:.6rem}}
