@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap";:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;font-weight:400;color:#0b2b40;background-color:#d9edff;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 10% 20%,rgba(0,98,178,.12),transparent 28%),radial-gradient(circle at 80% 10%,rgba(0,183,255,.12),transparent 30%),#d9edff}a{color:inherit}#root{min-height:100vh}body{background-color:#0f75c1}:root,root,#root{background-color:#fff}.page{min-height:100vh;padding:0;background:#368cfc}.floating-nav{position:fixed;top:12px;left:50%;transform:translate(-50%);width:fit-content;z-index:100;display:flex;align-items:center;gap:18px;padding:10px 18px;border-radius:999px;background:#ffffffd1;box-shadow:0 16px 40px #0000001a;border:1px solid rgba(0,61,122,.08);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.brand{font-weight:700;letter-spacing:-.01em;color:#0b3f66}.nav-links{display:flex;gap:14px;font-weight:600;color:#0f3d67}.nav-links a{text-decoration:none;color:inherit;padding:6px 10px;border-radius:10px;transition:background .16s ease,transform .16s ease}.nav-links a:hover{background:#003d7a14;transform:translateY(-1px)}.nav-links a.active{background:#0062b229;color:#0b2b40;box-shadow:0 6px 14px #004b821f}.viewport{position:relative;height:100vh;height:100dvh;min-height:100vh;min-height:100dvh;background:transparent;overflow:hidden;margin:0;max-width:none;padding-top:88px;z-index:1}.bg-canvas{position:absolute;inset:0;pointer-events:none;z-index:0;opacity:1;transition:opacity .5s ease-out}.project-hover-background{position:fixed;top:0;left:0;width:100%;height:100%;background-size:cover;background-position:center;background-repeat:no-repeat;z-index:0;opacity:.15;transition:opacity .5s ease-in-out;pointer-events:none;backdrop-filter:blur(40px);-webkit-backdrop-filter:blur(40px)}.project-hover-background:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:#0006;z-index:1}.plane{position:absolute;height:auto;width:auto;left:0;top:88px;will-change:transform;z-index:1}.card{position:absolute;width:260px;padding:18px;border-radius:16px;border:1px solid rgba(0,61,122,.12);background:radial-gradient(120% 120% at 10% 10%,#ffffff1a,#fffffff2);box-shadow:0 8px 24px #00000026,0 4px 8px #0000001a;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#0b2b40;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease,border-width .2s ease;cursor:pointer;outline:none;z-index:10;touch-action:manipulation}.card:focus-visible{border-color:#0062b280;box-shadow:0 20px 50px #0062b22e}.card:hover{transform:translateY(-6px);border-color:#0062b28c;box-shadow:0 16px 32px #0003,0 8px 16px #00000026,0 0 0 1px #0062b229}.card.active{transform:translateY(-6px) scale(1.05);border:2px solid rgba(0,98,178,.8);box-shadow:0 20px 40px #0062b240,0 12px 24px #0003,0 0 0 3px #0062b233}.card-glow{position:absolute;inset:-20%;background:radial-gradient(120% 120% at 50% 50%,#7bc7ff26,#7bc7ff00);filter:blur(24px);opacity:.8;pointer-events:none}.card-body{position:relative;display:flex;flex-direction:column;gap:12px}.card-kicker{margin:0;text-transform:uppercase;letter-spacing:.12em;font-size:11px;color:#0f75c1}.card h3{margin:0;font-size:20px;letter-spacing:-.01em}.card-copy{margin:0;color:#32526d;line-height:1.5}.tags{display:flex;gap:6px;flex-wrap:wrap}.tag{font-size:12px;padding:6px 8px;border-radius:10px;background:#003d7a14;border:1px solid rgba(0,61,122,.14);color:#0f3d67}.card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:2px;color:#22537c}.chip{padding:6px 10px;border-radius:999px;background:#0062b21f;border:1px solid rgba(0,98,178,.35);color:#0f3d67;font-size:12px}.hint-arrow{font-size:18px;opacity:.7}.hint{position:absolute;left:14px;bottom:12px;display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:12px;border:1px solid rgba(0,61,122,.12);background:#fffc;color:#0f3d67;font-size:13px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 18px 40px #004b8229;z-index:4}.hint-dots{display:flex;gap:4px}.hint-dots span{width:6px;height:6px;border-radius:999px;background:linear-gradient(120deg,#0f75c1,#24c1ff);opacity:.9;animation:pulse 1.8s ease-in-out infinite}.hint-dots span:nth-child(2){animation-delay:.2s}.hint-dots span:nth-child(3){animation-delay:.4s}.content-section{max-width:900px;margin:0 auto 56px;padding:0 22px}.section-title{margin:0 0 10px;color:#0b2b40}.section-body{margin:0;color:#6088a8;line-height:1.6}.hero{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:1000px;padding:18px 20px;border-radius:16px;z-index:0;opacity:1;pointer-events:none;transition:opacity .6s ease-out}.eyebrow{letter-spacing:.1em;font-size:12px;text-transform:uppercase;color:#0f75c1;margin:0 0 6px}h1{margin:0 0 6px;font-size:clamp(200px,4vw,44px);letter-spacing:-.1em;color:#fff;line-height:.8}.lede{margin:0 0 10px;color:#fff;line-height:1.6;font-size:60px}.pill-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.pill{padding:8px 12px;border:1px solid #b3d9ff;border-radius:999px;background:linear-gradient(120deg,#e8f4ff,#d6ecff);color:#0f3d67;font-size:13px}.minimap{position:fixed;right:18px;bottom:18px;width:300px;height:300px;background:#fff6;border:1px solid rgba(0,61,122,.15);border-radius:12px;box-shadow:0 18px 34px #004b822e;overflow:hidden;pointer-events:auto;z-index:200}.minimap-nodes{position:absolute;inset:0;z-index:1}.minimap-node{position:absolute;background:#0062b24d;border-radius:3px}.minimap-viewport{position:absolute;border:2px solid rgba(0,61,122,.7);background:#0062b21f;border-radius:6px;box-sizing:border-box;pointer-events:none}@keyframes pulse{0%,to{transform:scale(.9);opacity:.5}50%{transform:scale(1.1);opacity:1}}.debug-hud{position:fixed;top:80px;right:18px;background:#000000d9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:12px 16px;font-family:Inter,-apple-system,sans-serif;font-size:12px;color:#e0e0e0;z-index:300;min-width:280px;box-shadow:0 4px 12px #0000004d}.debug-hud-title{font-weight:600;font-size:13px;color:#fff;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid rgba(255,255,255,.1)}.debug-hud-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;line-height:1.4}.debug-hud-row:last-child{margin-bottom:0}.debug-label{color:#a0a0a0;margin-right:12px}.debug-value{color:#4fc3f7;font-family:Monaco,Menlo,Courier New,monospace;font-weight:500;text-align:right}.project-modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000bf;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;display:flex;align-items:flex-start;justify-content:center;padding:100px 20px 20px;animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.project-modal{background:#fffffffa;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:20px;max-width:700px;width:100%;max-height:85vh;overflow-y:auto;overflow-x:hidden;box-shadow:0 24px 48px #0000004d;position:relative;animation:slideUp .4s cubic-bezier(.16,1,.3,1);border:1px solid rgba(255,255,255,.2);display:flex;flex-direction:column}@keyframes slideUp{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.project-modal-close{position:absolute;top:20px;right:20px;width:40px;height:40px;border:none;background:#0000000d;border-radius:50%;font-size:28px;line-height:1;color:#333;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;z-index:10}.project-modal-close:hover{background:#0000001a;transform:rotate(90deg)}.project-modal-header{padding:40px 40px 24px;border-bottom:1px solid rgba(0,0,0,.08)}.project-modal-meta{display:flex;gap:12px;align-items:center;margin-bottom:12px}.project-modal-year{font-size:14px;font-weight:600;color:#666;padding:4px 12px;background:#0000000d;border-radius:12px}.project-modal-kicker{font-size:12px;font-weight:500;color:#999;text-transform:uppercase;letter-spacing:.5px}.project-modal-title{font-size:36px;font-weight:700;color:#000;margin:0 0 20px;line-height:1.2}.project-modal-tags{display:flex;flex-wrap:wrap;gap:8px}.project-modal-tag{font-size:13px;font-weight:500;color:#06c;padding:6px 14px;background:#0066cc1a;border-radius:16px;border:1px solid rgba(0,102,204,.2)}.project-modal-image{width:100%;background-size:cover;background-position:center;background-repeat:no-repeat;flex-shrink:0}.project-modal-image-top{height:300px;background-size:cover}.project-modal-image-top{border-top:1px solid rgba(0,0,0,.08);border-bottom:1px solid rgba(0,0,0,.08)}.project-modal-image-bottom{width:100%;border-top:1px solid rgba(0,0,0,.08);margin-top:0;display:flex;align-items:flex-start;justify-content:center;background-color:transparent}.project-modal-image-bottom img{width:100%;height:auto;display:block}.project-modal-content{padding:32px 40px 40px}.project-modal-description{font-size:16px;line-height:1.7;color:#444;margin:0 0 32px}.project-modal-actions{display:flex;gap:12px;align-items:center}.project-modal-link{display:inline-flex;align-items:center;gap:8px;font-size:16px;font-weight:600;color:#06c;text-decoration:none;padding:12px 24px;background:#0066cc1a;border-radius:12px;border:1px solid rgba(0,102,204,.2);transition:all .2s ease}.project-modal-link:hover{background:#0066cc26;transform:translateY(-1px);box-shadow:0 4px 12px #06c3}.project-modal-link-arrow{font-size:18px;transition:transform .2s ease}.project-modal-link:hover .project-modal-link-arrow{transform:translate(2px,-2px)}.project-modal::-webkit-scrollbar{width:8px}.project-modal::-webkit-scrollbar-track{background:transparent}.project-modal::-webkit-scrollbar-thumb{background:#0003;border-radius:4px}.project-modal::-webkit-scrollbar-thumb:hover{background:#0000004d}.view-content-wrapper{opacity:1;width:100%;height:100%;will-change:opacity;position:relative;transform:translateZ(0);-webkit-transform:translateZ(0)}.simple-view{min-height:100vh;padding-top:88px;background:#fff}.simple-hero{max-width:1200px;margin:0 auto;padding:80px 22px 60px;text-align:center}.simple-hero h1{font-size:clamp(36px,8vw,64px);letter-spacing:-.05em;color:#0b2b40;margin:0 0 16px;line-height:1.1}.simple-hero .lede{font-size:clamp(20px,4vw,32px);color:#32526d;margin:0;line-height:1.4}.simple-projects{max-width:1200px;margin:0 auto;padding:0 22px 80px}.simple-projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:32px}.simple-project-card{background:#fffffff2;border-radius:16px;border:1px solid rgba(0,61,122,.12);overflow:hidden;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;box-shadow:0 4px 12px #00000014}.simple-project-card:hover{transform:translateY(-4px);box-shadow:0 12px 24px #0000001f}.simple-project-image{width:100%;height:200px;background-size:cover;background-position:center;background-color:#f0f0f0}.simple-project-content{padding:24px}.simple-project-meta{display:flex;gap:12px;align-items:center;margin-bottom:12px}.simple-project-year{font-size:13px;font-weight:600;color:#666;padding:4px 12px;background:#0000000d;border-radius:12px}.simple-project-kicker{font-size:11px;font-weight:500;color:#999;text-transform:uppercase;letter-spacing:.5px}.simple-project-title{font-size:24px;font-weight:700;color:#0b2b40;margin:0 0 12px;line-height:1.2}.simple-project-summary{font-size:15px;line-height:1.6;color:#32526d;margin:0 0 16px}.simple-project-tags{display:flex;flex-wrap:wrap;gap:8px}.simple-project-tag{font-size:12px;font-weight:500;color:#06c;padding:6px 12px;background:#0066cc1a;border-radius:12px;border:1px solid rgba(0,102,204,.2)}.nav-toggle-wrapper{position:relative;display:inline-flex;align-items:center;height:100%}.nav-toggle{background:transparent;border:none;color:#0f3d67;font-weight:600;font-size:inherit;padding:6px 10px;border-radius:10px;cursor:pointer;transition:background .16s ease,transform .16s ease;font-family:inherit;height:100%;min-height:36px;width:75px;display:flex;align-items:center;justify-content:center}.nav-toggle:hover{background:#003d7a14;transform:translateY(-1px)}.nav-toggle.active{background:#0062b229;color:#0b2b40;box-shadow:0 6px 14px #004b821f}.nav-toggle-tooltip{position:absolute;top:100%;left:50%;transform:translate(-50%);margin-top:10px;padding:12px 16px;background:#fff;color:#000;font-size:14px;font-weight:500;white-space:nowrap;border-radius:8px;pointer-events:auto;cursor:pointer;z-index:1000;animation:tooltipFadeIn .3s ease-out;box-shadow:0 4px 16px #0003;border:1px solid rgba(0,0,0,.1);transition:opacity .2s ease-out}.nav-toggle-tooltip:hover{opacity:.9}.nav-toggle-tooltip:after{content:"";position:absolute;bottom:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-bottom-color:#fff}.nav-toggle-tooltip:before{content:"";position:absolute;bottom:100%;left:50%;transform:translate(-50%);border:7px solid transparent;border-bottom-color:#0000001a;margin-bottom:-1px}@keyframes tooltipFadeIn{0%{opacity:0;transform:translate(-50%) translateY(-4px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@media(max-width:1024px){.minimap{width:200px;height:200px;right:12px;bottom:12px}.card{width:220px;padding:16px}.card h3{font-size:18px}.hero{width:90%;max-width:800px}h1{font-size:clamp(32px,8vw,40px)}.lede{font-size:clamp(24px,5vw,36px)}}@media(max-width:768px){.floating-nav{top:8px;left:8px;right:8px;transform:none;width:auto;padding:8px 14px;gap:12px;justify-content:space-between}.brand{font-size:14px}.nav-links{gap:8px;font-size:13px}.nav-links a{padding:6px 10px}.viewport{padding-top:60px;height:100dvh;min-height:100dvh}.plane{top:60px}.card{width:200px;padding:14px;border-radius:12px}.card h3{font-size:16px}.card-copy{font-size:13px}.card-kicker{font-size:10px}.tag,.chip{font-size:11px;padding:4px 8px}.minimap{width:150px;height:150px;right:8px;bottom:8px}.hint{left:8px;bottom:8px;padding:8px 12px;font-size:12px;gap:8px}.hint-arrow{font-size:16px}.hero{width:95%;padding:14px 16px}h1{font-size:clamp(28px,10vw,36px);line-height:.9}.lede{font-size:clamp(20px,6vw,28px);margin-bottom:8px}.eyebrow{font-size:11px}.pill{font-size:11px;padding:6px 10px}.project-modal{max-width:100%;width:100%;margin:0 auto;border-radius:16px;height:85vh}.project-modal-header{padding:32px 24px 20px}.project-modal-title{font-size:28px}.project-modal-image-top{height:250px}.project-modal-content{padding:24px}.project-modal-description{font-size:15px}.project-modal-close{width:36px;height:36px;font-size:24px;top:16px;right:16px}.project-modal{height:85vh}.project-modal-overlay{padding:80px 20px 20px;align-items:flex-start;justify-content:center}.debug-hud{top:60px;right:8px;left:8px;min-width:auto;font-size:11px;padding:10px 12px}.debug-hud-title{font-size:12px}}@media(max-width:480px){.viewport{height:100dvh;min-height:100dvh}.floating-nav{padding:6px 12px;gap:10px}.brand{font-size:13px}.nav-links{gap:6px;font-size:12px}.nav-links a{padding:5px 8px}.nav-toggle-tooltip{font-size:13px;padding:10px 14px;white-space:normal;max-width:150px;text-align:center;min-width:150px}.card{width:180px;padding:12px}.card h3{font-size:15px}.card-copy{font-size:12px}.minimap{width:120px;height:120px}.hint{font-size:11px;padding:6px 10px}.hint-arrow{font-size:14px}.hero{padding:12px 14px}h1{font-size:clamp(24px,12vw,32px)}.lede{font-size:clamp(18px,7vw,24px)}.project-modal-title{font-size:24px}.project-modal-header{padding:28px 20px 18px}.project-modal-image-top{height:200px}.project-modal-content{padding:20px}.project-modal-description{font-size:14px}.project-modal-link{font-size:14px;padding:10px 20px}.simple-view{padding-top:60px}.simple-hero{padding:40px 20px}.simple-projects{padding:0 20px 60px}.simple-projects-grid{grid-template-columns:1fr;gap:24px}.simple-project-title{font-size:20px}.simple-project-summary{font-size:14px}}@media(hover:none)and (pointer:coarse){.viewport{cursor:default!important}.card{cursor:default}.nav-links a{min-height:36px;min-width:36px;display:inline-flex;align-items:center;justify-content:center}.project-modal-close{min-width:44px;min-height:44px}.card{min-height:120px}.nav-links a:hover{background:#003d7a14;transform:none}.card:hover{transform:none}.card.active{transform:translateY(-2px) scale(1.03)}}@media(max-width:768px)and (orientation:landscape){.minimap{width:120px;height:120px}.hero{width:80%;max-width:600px}.project-modal{margin:auto 0;height:75vh}h1{font-size:clamp(24px,6vw,32px)}.lede{font-size:clamp(18px,4vw,24px)}}
