:root{--bg: #211b12;--circle: #c3b491;--ink: #ece2cb;--muted: #a99a7e;--accent: #cba366}*{box-sizing:border-box}html,body{margin:0;height:100%}body{background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Inter,Roboto,sans-serif;-webkit-font-smoothing:antialiased;display:flex;align-items:center;justify-content:center;min-height:100vh}.stage-wrap{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;touch-action:manipulation}.stage{position:relative;width:min(96vmin,1035px);aspect-ratio:1 / 1;container-type:inline-size;touch-action:manipulation;animation:stage-in .9s cubic-bezier(.22,1,.36,1) both}@keyframes stage-in{0%{opacity:0;transform:scale(.965)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion: reduce){.stage,.chip-float,.ico-wrap{animation:none!important}}.venn{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;overflow:visible}.lobe{fill:none;stroke:var(--circle);stroke-width:2.4;transition:stroke-width .25s ease,opacity .35s ease}.lobe.active{stroke-width:3.4}.lobe.faded{opacity:.16}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.node{position:absolute;transform:translate(-50%,-50%);transition:opacity .25s ease}.node.hidden{opacity:0}.ico{width:100%;height:100%;display:block}.icons{display:flex;gap:clamp(7px,1.85cqi,16px);color:var(--muted)}@keyframes idriftA{0%{transform:translate(0) rotate(0)}33%{transform:translate(3px,-5px) rotate(1deg)}66%{transform:translate(-3px,3px) rotate(-.8deg)}to{transform:translate(0) rotate(0)}}@keyframes idriftB{0%{transform:translate(0) rotate(0)}30%{transform:translate(-4px,-3px) rotate(-1deg)}60%{transform:translate(3px,5px) rotate(.9deg)}to{transform:translate(0) rotate(0)}}@keyframes idriftC{0%{transform:translate(0) rotate(0)}40%{transform:translate(4px,4px) rotate(.7deg)}70%{transform:translate(-2px,-4px) rotate(-1deg)}to{transform:translate(0) rotate(0)}}.icons .ico-wrap{width:clamp(18px,3.47cqi,30px);height:clamp(18px,3.47cqi,30px);animation:idriftA 8s ease-in-out infinite;will-change:transform}.icons .ico-wrap.iv1{animation:idriftB 10s ease-in-out infinite;animation-delay:-3s}.icons .ico-wrap.iv2{animation:idriftC 7s ease-in-out infinite;animation-delay:-1.5s}.icons .ico-wrap{transition:color .4s ease,filter .4s ease}.icons .ico-wrap svg{transition:transform .4s cubic-bezier(.22,1,.36,1)}.icons .ico-wrap.glow{animation-play-state:paused;color:#f2dfb4;filter:drop-shadow(0 0 5px rgba(203,163,102,.95)) drop-shadow(0 0 14px rgba(203,163,102,.7)) drop-shadow(0 0 30px rgba(203,163,102,.45))}.icons .ico-wrap.glow svg{transform:scale(1.28)}.overlay.has-glow .ico-wrap:not(.glow){opacity:.35;transition:opacity .4s ease}.title{font-size:clamp(9.5px,1.91cqi,16.5px);font-weight:600;text-transform:uppercase;letter-spacing:1.6px;color:#b6a888;white-space:nowrap;z-index:6}.title.faded{opacity:.16}.title.reading{opacity:0}.hub{display:flex;flex-direction:column;align-items:center;text-align:center;transition:opacity .25s ease;pointer-events:auto;cursor:pointer;text-decoration:none;z-index:6}.hub-name{font-weight:700;font-size:clamp(12px,2.55cqi,22px);line-height:1.08;color:var(--ink);letter-spacing:.2px;transition:color .35s ease,text-shadow .35s ease}.hub:hover .hub-name{color:#f5ead0;text-shadow:0 0 9px rgba(203,163,102,.25)}.hub-role{font-size:clamp(9.5px,1.79cqi,15.5px);color:var(--muted);letter-spacing:.5px;margin-top:2px}.hub.big .hub-name{font-size:clamp(16px,3.47cqi,30px)}.hub.big .hub-role{font-size:clamp(10.5px,1.97cqi,17px)}@keyframes chip-in{0%{opacity:0}to{opacity:1}}@keyframes driftA{0%{transform:translate(0) rotate(0)}33%{transform:translate(7px,-11px) rotate(.7deg)}66%{transform:translate(-6px,6px) rotate(-.6deg)}to{transform:translate(0) rotate(0)}}@keyframes driftB{0%{transform:translate(0) rotate(0)}30%{transform:translate(-8px,-7px) rotate(-.6deg)}60%{transform:translate(6px,10px) rotate(.6deg)}to{transform:translate(0) rotate(0)}}@keyframes driftC{0%{transform:translate(0) rotate(0)}40%{transform:translate(8px,8px) rotate(.5deg)}70%{transform:translate(-5px,-9px) rotate(-.7deg)}to{transform:translate(0) rotate(0)}}.overlay:has(.chip-float.expanded) .chip-anchor:not(:has(.expanded)){opacity:.12}.chip-float{width:clamp(175px,34cqi,294px);display:flex;flex-direction:column;align-items:center;text-align:center;gap:clamp(3px,.58cqi,5px);padding:clamp(7px,1.39cqi,12px) clamp(10px,2.08cqi,18px);border-radius:16px;pointer-events:auto;text-decoration:none;color:var(--ink);position:relative;animation:chip-in .4s ease forwards}.chip-float:before{content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;z-index:-1;pointer-events:none;background:radial-gradient(ellipse 70% 58% at center,#211b12f7,#211b12d1 48%,#211b1200 74%);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);-webkit-mask:radial-gradient(ellipse 72% 60% at center,#000 50%,transparent 76%);mask:radial-gradient(ellipse 72% 60% at center,#000 50%,transparent 76%)}.chip-float.expanded:before{background:radial-gradient(ellipse 76% 66% at center,#211b12,#211b12eb 56%,#211b1200 80%);-webkit-mask:radial-gradient(ellipse 78% 68% at center,#000 56%,transparent 82%);mask:radial-gradient(ellipse 78% 68% at center,#000 56%,transparent 82%)}.chip-float .chip-ico{width:clamp(15px,3.24cqi,28px);height:clamp(15px,3.24cqi,28px);color:var(--accent)}.chip-claim{font-size:clamp(11px,2.14cqi,18.5px);font-weight:600;line-height:1.32;letter-spacing:.1px}.chip-detail{display:block;max-height:0;opacity:0;overflow:hidden;transition:max-height .25s ease,opacity .25s ease}.chip-float.expanded .chip-detail{max-height:184px;opacity:1;margin-top:2px}@media (hover: hover){.chip-anchor:hover{z-index:5}.overlay:has(.chip-anchor:hover) .chip-anchor:not(:hover){opacity:.12}.chip-float:hover:before{background:radial-gradient(ellipse 76% 66% at center,#211b12,#211b12eb 56%,#211b1200 80%);-webkit-mask:radial-gradient(ellipse 78% 68% at center,#000 56%,transparent 82%);mask:radial-gradient(ellipse 78% 68% at center,#000 56%,transparent 82%)}.chip-float:hover .chip-detail{max-height:184px;opacity:1;margin-top:2px}}.chip-proj{display:block;font-size:clamp(9.5px,1.74cqi,15px);color:var(--muted)}.chip-blurb{display:block;font-size:clamp(9.5px,1.74cqi,15px);color:#cbbe9f;margin-top:4px;line-height:1.45}.chip-more{display:inline-block;margin-top:8px;font-size:clamp(9.5px,1.74cqi,15px);font-weight:600;color:var(--accent)}.menu-btn{position:fixed;top:20px;left:20px;z-index:40;width:44px;height:44px;padding:12px 10px;display:flex;flex-direction:column;justify-content:space-between;background:#211b12b8;border:1px solid rgba(195,180,145,.28);border-radius:10px;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:border-color .2s ease,background .2s ease}.menu-btn:hover{border-color:var(--accent)}.menu-btn span{display:block;height:2px;width:100%;background:var(--ink);border-radius:2px;transition:transform .25s ease,opacity .2s ease}.menu-btn.is-open span:nth-child(1){transform:translateY(9px) rotate(45deg)}.menu-btn.is-open span:nth-child(2){opacity:0}.menu-btn.is-open span:nth-child(3){transform:translateY(-9px) rotate(-45deg)}.menu-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;background:#0f0c088c;opacity:0;pointer-events:none;transition:opacity .25s ease}.menu-scrim.show{opacity:1;pointer-events:auto}.menu-panel{position:fixed;top:0;left:0;z-index:35;height:100%;width:min(392px,88vw);padding:78px 24px 30px;background:#1a150e;border-right:1px solid rgba(195,180,145,.18);box-shadow:18px 0 40px #0006;overflow-y:auto;transform:translate(-100%);transition:transform .3s cubic-bezier(.22,1,.36,1);display:flex;flex-direction:column}.menu-panel.show{transform:translate(0)}.menu-name{font-size:24px;font-weight:700;color:var(--ink);letter-spacing:.2px}.menu-cv{margin-top:5px;font-size:16px;font-weight:600;color:var(--accent);text-decoration:none}.menu-cv:hover{text-decoration:underline;text-underline-offset:3px}.menu-label{margin:26px 0 10px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:1.8px;color:var(--muted)}.menu-list{display:flex;flex-direction:column}.menu-item{display:flex;align-items:center;gap:14px;padding:12px 10px;border-radius:9px;text-decoration:none;color:var(--ink);transition:background .15s ease}.menu-item:hover{background:#c3b49117}.menu-item-arrow{flex:0 0 auto;margin-left:auto;padding-left:6px;font-size:22px;line-height:1;color:var(--muted);opacity:.55;transition:transform .15s ease,color .15s ease,opacity .15s ease}.menu-item:hover .menu-item-arrow{color:var(--accent);opacity:1;transform:translate(3px)}.menu-item-ico{flex:0 0 auto;width:28px;height:28px;display:grid;place-items:center;color:var(--accent)}.menu-item-ico svg{width:26px;height:26px}.menu-item-text{display:flex;flex-direction:column;min-width:0}.menu-item-claim{font-size:16px;font-weight:600;line-height:1.3;color:var(--ink)}.menu-item-proj{font-size:13px;color:var(--muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
