*,:before,:after{box-sizing:border-box}html,body{background:#100e0c;height:100%;margin:0;overflow:hidden}#root{height:100%}.hub{--bg:#100e0c;--ink:#f5efe6;--dim:#e9e0d18c;--hair:#f5efe629;--accent:#ff8a3d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;font-family:Space Grotesk,system-ui,sans-serif;position:fixed;inset:0}.hub-canvas{touch-action:none;width:100%;height:100%;display:block;position:absolute;inset:0}.hub[data-mode=static] .hub-canvas{display:none}.hub-anchors{z-index:3;pointer-events:none;position:absolute;inset:0}.anchor{pointer-events:auto;text-align:center;opacity:0;visibility:hidden;will-change:transform;width:min(210px,60vw);transform:translate3d(var(--ax), var(--ay), 0) translate(-50%, 24px) scale(var(--as));padding-top:14px;text-decoration:none;transition:opacity .4s;position:absolute;top:0;left:0}.anchor[data-visible="1"]{opacity:1;visibility:visible}.anchor:after{content:"";border-radius:50%;width:calc(14vh + 36px);height:calc(14vh + 28px);position:absolute;top:calc(-44px - 7vh);left:50%;transform:translate(-50%)}.anchor:before{content:"";background:var(--dim);border-radius:50%;width:3px;height:3px;margin-left:-1.5px;position:absolute;top:0;left:50%}.hub[data-ready="1"] .anchor[data-visible="1"]{transition:opacity .7s}.hub[data-ready="1"] .anchor:first-child[data-visible="1"]{transition-delay:40ms}.hub[data-ready="1"] .anchor:nth-child(2)[data-visible="1"]{transition-delay:.12s}.hub[data-ready="1"] .anchor:nth-child(3)[data-visible="1"]{transition-delay:.2s}.hub[data-ready="1"] .anchor:nth-child(4)[data-visible="1"]{transition-delay:.28s}.hub[data-ready="1"] .anchor:nth-child(5)[data-visible="1"]{transition-delay:.36s}.a-label{letter-spacing:.01em;color:var(--ink);font:600 15px/1.25 Space Grotesk,system-ui,sans-serif;display:block}.a-blurb{color:var(--dim);margin-top:4px;font:400 10.5px/1.5 IBM Plex Mono,monospace;display:block}.anchor:focus-visible{outline:1px solid var(--accent);outline-offset:4px}.anchor:hover .a-label,.anchor:focus-visible .a-label{color:var(--accent)}.anchor:hover:before,.anchor:focus-visible:before{background:var(--accent)}.hub-header{z-index:4;margin:0;position:absolute;top:28px;left:32px}.wordmark{letter-spacing:-.02em;color:var(--ink);margin:0;font:600 27px/1 Space Grotesk,system-ui,sans-serif}.tagline{border-left:1px solid var(--hair);letter-spacing:.05em;color:var(--dim);margin:9px 0 0;padding-left:10px;font:400 10.5px/1.5 IBM Plex Mono,monospace}.hub-status{z-index:4;text-align:right;pointer-events:none;margin:0;position:absolute;bottom:28px;right:32px}.hub-status .hint{letter-spacing:.05em;color:var(--dim);margin:0 0 5px;font:400 10.5px/1.4 IBM Plex Mono,monospace}.hub-status .meta{letter-spacing:.12em;text-transform:uppercase;color:var(--dim);opacity:.62;margin:0;font:400 9px/1.4 IBM Plex Mono,monospace}.scope{z-index:6;border:1px solid var(--hair);background:color-mix(in srgb, var(--bg) 78%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:none;opacity:0;visibility:hidden;flex-direction:column;gap:16px;width:300px;padding:18px 18px 20px;transition:opacity .3s,transform .3s,visibility 0s linear .3s;display:flex;position:absolute;top:50%;right:32px;transform:translateY(-50%)translate(20px)}.scope[data-open="1"]{opacity:1;visibility:visible;transition:opacity .3s,transform .3s,visibility;transform:translateY(-50%)translate(0)}.scope[data-planet=portfolio]{--p-hi:#d9edff;--p-base:#4f8fd6;--p-shade:#2b5fa8;--p-deep:#123366;--p-spot:#60b0638c}.scope[data-planet=diary]{--p-hi:#f8ecc9;--p-base:#e3c788;--p-shade:#b98f52;--p-deep:#6e4f26;--p-spot:#966c3480}.scope[data-planet=notes]{--p-hi:#cfe6ff;--p-base:#5a9be0;--p-shade:#2f6bb8;--p-deep:#16386e;--p-spot:#26529e80}.scope[data-planet=ai]{--p-hi:#d9f7e8;--p-base:#57c28c;--p-shade:#2e8a63;--p-deep:#14503c;--p-spot:#60aaff8c}.scope[data-planet=cloud]{--p-hi:#f0cdae;--p-base:#c4714a;--p-shade:#8f4a2e;--p-deep:#54291a;--p-spot:#5e2f1e80}.scope-lens{background:#0b0908;border:1px solid #f5efe638;border-radius:50%;flex:none;width:186px;height:186px;margin:0 auto;position:relative;overflow:hidden;box-shadow:inset 0 0 0 6px #00000080,inset 0 0 42px 14px #000c}.lens-planet{position:absolute;inset:0}.planet-under{z-index:0;background:radial-gradient(circle,#7ee2bc80 0%,#50bea02e 42%,#0000 68%);animation:4.5s ease-in-out infinite scope-pulse;display:none;position:absolute;inset:0}.scope[data-planet=ai] .planet-under{display:block}.planet-body{z-index:2;background:radial-gradient(circle at 33% 30%, var(--p-hi) 0%, var(--p-base) 45%, var(--p-shade) 76%, var(--p-deep) 100%);border-radius:50%;width:58%;height:58%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:inset -10px -12px 26px #00000073,0 0 26px #00000073}.scope[data-planet=ai] .planet-body{box-shadow:inset -8px -10px 20px #1040308c,0 0 34px #60d2aa59}.planet-body:after{content:"";border-radius:inherit;background:radial-gradient(ellipse 62% 34% at 30% 62%, var(--p-spot) 0%, transparent 70%), radial-gradient(ellipse 44% 26% at 72% 38%, var(--p-spot) 0%, transparent 70%), radial-gradient(ellipse 30% 20% at 55% 78%, var(--p-spot) 0%, transparent 70%);opacity:.55;animation:42s linear infinite scope-drift;position:absolute;inset:0}.ring{border:2px solid #f8e8ba8c;border-radius:50%;width:122%;height:34%;display:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-16deg);box-shadow:0 0 8px #e3c7884d,inset 0 0 6px #e3c78838}.ring-back{z-index:1}.ring-front{z-index:3;clip-path:inset(50% 0 0)}.scope[data-planet=diary] .ring{display:block}.moon-orbit{z-index:4;animation:12s linear infinite scope-orbit;display:none;position:absolute;inset:0}.moon{background:#a8a096;border-radius:50%;width:9px;height:9px;margin-top:-4.5px;position:absolute;top:50%;left:9%;box-shadow:0 0 6px #0009}.scope[data-planet=portfolio] .moon-orbit.moon-a{animation-duration:18s;display:block}.scope[data-planet=diary] .moon-orbit{display:block}.scope[data-planet=diary] .moon-orbit.moon-a{animation-duration:9s}.scope[data-planet=diary] .moon-orbit.moon-a .moon{background:#d8d2c4;width:7px;height:7px;margin-top:-3.5px}.scope[data-planet=diary] .moon-orbit.moon-b{animation-duration:15s;animation-direction:reverse}.scope[data-planet=diary] .moon-orbit.moon-b .moon{background:#cfc4ae;width:5px;height:5px;margin-top:-2.5px;left:22%}.scope[data-planet=notes] .moon-orbit{display:block}.scope[data-planet=notes] .moon-orbit.moon-a{animation-duration:8s}.scope[data-planet=notes] .moon-orbit.moon-a .moon{background:#cdd8e6}.scope[data-planet=notes] .moon-orbit.moon-b{animation-duration:14s;animation-direction:reverse}.scope[data-planet=notes] .moon-orbit.moon-b .moon{background:#b9c6d8;width:7px;height:7px;margin-top:-3.5px;left:22%}.scope[data-planet=ai] .moon-orbit{display:block}.scope[data-planet=ai] .moon-orbit.moon-a{animation-duration:8s}.scope[data-planet=ai] .moon-orbit.moon-a .moon{background:#d8e8dc;width:7px;height:7px;margin-top:-3.5px}.scope[data-planet=ai] .moon-orbit.moon-b{animation-duration:12s;animation-direction:reverse}.scope[data-planet=ai] .moon-orbit.moon-b .moon{background:#c4d8e8;width:5px;height:5px;margin-top:-2.5px;left:22%}.scope[data-planet=cloud] .moon-orbit{display:block}.scope[data-planet=cloud] .moon-orbit.moon-a{animation-duration:6s}.scope[data-planet=cloud] .moon-orbit.moon-a .moon{background:#9c8f80;width:7px;height:7px;margin-top:-3.5px}.scope[data-planet=cloud] .moon-orbit.moon-b{animation-duration:9s;animation-direction:reverse}.scope[data-planet=cloud] .moon-orbit.moon-b .moon{background:#8d8072;width:5px;height:5px;margin-top:-2.5px;left:22%}.lens-reticle{position:absolute;inset:0}.lens-reticle:before{content:"";background:linear-gradient(#f5efe647,#f5efe647) 50% 4%/1px 12px no-repeat,linear-gradient(#f5efe647,#f5efe647) 50% 96%/1px 12px no-repeat,linear-gradient(#f5efe647,#f5efe647) 4%/12px 1px no-repeat,linear-gradient(#f5efe647,#f5efe647) 96%/12px 1px no-repeat;position:absolute;inset:0}.lens-reticle:after{content:"";border:1px solid #f5efe61a;border-radius:50%;position:absolute;inset:10%}.lens-vignette{mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='180'%20height='180'%3E%3Cfilter%20id='n'%3E%3CfeTurbulence%20type='fractalNoise'%20baseFrequency='0.9'%20numOctaves='2'/%3E%3CfeColorMatrix%20type='saturate'%20values='0'/%3E%3C/filter%3E%3Crect%20width='180'%20height='180'%20filter='url(%23n)'%20opacity='0.06'/%3E%3C/svg%3E");background-size:180px 180px;border-radius:50%;position:absolute;inset:0;box-shadow:inset 0 0 32px 12px #000000a6}.scope-copy{text-align:left}.scope-kicker{text-transform:uppercase;letter-spacing:.18em;color:var(--dim);align-items:center;gap:7px;margin:0 0 7px;font:400 9px/1 IBM Plex Mono,monospace;display:flex}.scope-dot{background:var(--dim);border-radius:50%;width:5px;height:5px}.scope[data-status=live] .scope-dot{background:var(--accent);box-shadow:0 0 6px #ff8a3dcc}.scope-label{letter-spacing:-.01em;color:var(--ink);margin:0;font:600 21px/1.15 Space Grotesk,system-ui,sans-serif}.scope-blurb{color:var(--dim);margin:6px 0 0;font:400 10.5px/1.5 IBM Plex Mono,monospace}.scope-detail{color:var(--ink);opacity:.82;margin:11px 0 0;font:400 12.5px/1.65 Space Grotesk,system-ui,sans-serif}.scope-cta{border:1px solid var(--hair);background:color-mix(in srgb, var(--bg) 60%, transparent);letter-spacing:.05em;color:var(--accent);pointer-events:auto;align-items:baseline;gap:6px;margin-top:14px;padding:8px 12px;font:500 10.5px/1 IBM Plex Mono,monospace;text-decoration:none;transition:border-color .25s,background-color .25s;display:inline-flex}.scope-cta:hover,.scope-cta:focus-visible{border-color:var(--accent);background:#ff8a3d14}.scope-cta:focus-visible{outline:1px solid var(--accent);outline-offset:2px}@keyframes scope-drift{to{transform:rotate(360deg)}}@keyframes scope-orbit{to{transform:rotate(360deg)}}@keyframes scope-pulse{50%{opacity:.65;transform:scale(1.06)}}.hub-lost{z-index:8;border:1px solid var(--hair);max-width:min(460px,84vw);color:var(--ink);text-align:center;background:#0000008c;padding:10px 16px;font:400 11px/1.6 IBM Plex Mono,monospace;position:absolute;top:96px;left:50%;transform:translate(-50%)}.hub[data-mode=lost] .hub-anchors{pointer-events:auto;flex-direction:column;gap:10px;display:flex;position:absolute;inset:auto 32px 96px}.hub[data-mode=lost] .anchor{opacity:1;visibility:visible;text-align:left;border:1px solid var(--hair);background:color-mix(in srgb, var(--bg) 82%, #000 6%);width:auto;padding:12px 16px;position:relative;transform:none}.hub[data-mode=lost] .anchor:before,.hub[data-mode=lost] .anchor:after{display:none}.hub-static{z-index:3;place-content:center;gap:18px;padding:96px 28px;display:grid;position:absolute;inset:0}.hub-static-note{max-width:42ch;color:var(--dim);margin:0;font:400 12px/1.7 IBM Plex Mono,monospace}.hub-static ul{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.hub-static a{border:1px solid var(--hair);padding:14px 18px;text-decoration:none;transition:border-color .25s;display:block}.hub-static a:hover{border-color:var(--accent)}@media (width<=600px){.hub-header{top:20px;left:18px}.wordmark{font-size:22px}.tagline{max-width:220px;font-size:9.5px}.hub-status{max-width:46vw;bottom:18px;right:18px}.hub-status .hint{font-size:9.5px}.hub-status .meta{display:none}.anchor{width:min(170px,56vw)}.anchor:after{width:calc(6.8vh + 32px);height:calc(6.8vh + 28px);top:calc(-44px - 3.4vh)}.a-label{font-size:13.5px}.a-blurb{font-size:9.5px}.scope{flex-direction:row;align-items:center;gap:16px;width:auto;padding:14px 14px 16px;inset:auto 18px 18px;transform:translateY(18px)}.scope[data-open="1"]{transform:translateY(0)}.scope-lens{width:118px;height:118px;margin:0}.scope-copy{pointer-events:auto;-webkit-overflow-scrolling:touch;max-height:44vh;overflow-y:auto}.scope-label{font-size:17px}.scope-detail{font-size:11.5px}.scope-cta{margin-top:10px;padding:7px 10px}}@media (prefers-reduced-motion:reduce){.hub,.anchor{transition-duration:.01ms}.scope{transition:opacity .2s,visibility 0s linear .2s}.scope[data-open="1"]{transition:opacity .2s,visibility}.planet-body:after,.moon-orbit,.planet-under{animation:none}}
