.error-fallback{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:2rem;background:var(--black);color:var(--text-primary);text-align:center}.error-fallback__title{font-size:1rem;letter-spacing:.05em;color:var(--text-primary)}.error-fallback__text{font-size:.875rem;color:var(--text-tertiary)}.error-fallback__btn{margin-top:1rem;padding:.6rem 1.25rem;background:transparent;border:1px dotted rgba(255,255,255,.2);color:var(--text-primary);font-size:.8rem;cursor:pointer;transition:border-color .2s ease}.error-fallback__btn:hover,.error-fallback__btn:focus-visible{border-color:#ffffff73}.scroll-indicator{position:fixed;left:max(1rem,calc((100vw - var(--container-width)) / 2 - 3.5rem));top:50%;transform:translateY(-50%);z-index:10;display:flex;flex-direction:column;gap:.75rem;opacity:0;transition:opacity .6s var(--ease-out-expo)}.scroll-indicator--visible{opacity:1}.scroll-indicator__dot{font-family:var(--font-label);font-size:.625rem;font-weight:500;letter-spacing:.1em;font-variant-numeric:tabular-nums;color:var(--gray-600);transition:color .3s var(--ease-out-expo),transform .3s var(--ease-out-expo);cursor:default;-webkit-user-select:none;user-select:none}.scroll-indicator__dot--active{color:var(--gray-300);transform:translate(2px)}@media(max-width:1100px){.scroll-indicator{display:none}}@media(prefers-reduced-motion:reduce){.scroll-indicator,.scroll-indicator__dot{transition:none}}.hero{margin-bottom:4.5rem;text-align:left}.hero-top{display:flex;justify-content:space-between;align-items:flex-start}@keyframes ethereal-drift{0%,to{transform:scale(var(--ghost-scale, .2)) translate(0) rotate(0);opacity:.9}33%{transform:scale(var(--ghost-scale, .2)) translate(1px,-3px) rotate(1.5deg);opacity:.6}66%{transform:scale(var(--ghost-scale, .2)) translate(-1.5px,1px) rotate(-1deg);opacity:.8}}.hero-ghost{display:flex;align-items:flex-end;margin-top:8px;width:68px;height:56px;position:relative;overflow:visible}.hero-ghost.ghost-revealed{cursor:default}.ghost-pointer-wrap.ghost--clicked{transform:translate(var(--ghost-dx, 0px),var(--ghost-dy, 0px)) scale(1.05) translateY(-2px)}.ghost-pointer-wrap{transform:translate(var(--ghost-dx, 0px),var(--ghost-dy, 0px));cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .25s var(--ease-out-expo)}.pixel-ghost{--ghost-scale: .2;font-family:monospace;font-size:20px;transform:scale(var(--ghost-scale));transform-origin:top left;position:absolute;top:0;left:0;line-height:1;letter-spacing:0;color:var(--white);opacity:.9;-webkit-font-smoothing:none;font-smooth:never;text-rendering:pixelated;-webkit-text-size-adjust:none;text-size-adjust:none;animation:ethereal-drift 6s ease-in-out infinite;-webkit-user-select:none;user-select:none;text-shadow:0 0 8px rgba(255,255,255,.4);width:max-content;margin:0}@media(max-width:600px){.hero-ghost{margin-top:20px;margin-right:22px;width:48px;height:40px}.pixel-ghost{--ghost-scale: .2;font-size:14px;transform:scale(var(--ghost-scale));left:18px}}.ghost-thought{position:absolute;top:-55px;right:8px;opacity:0;transform:translateY(4px) scale(.96);animation:thoughtFadeIn .8s var(--ease-out-expo) 1.2s forwards}.thought-prompt-desktop{display:none}.thought-prompt-mobile{display:inline}@media(min-width:601px){.thought-prompt-desktop{display:inline}.thought-prompt-mobile{display:none}}.thought-prompt{color:var(--gray-400)}@keyframes messageReveal{0%{opacity:0;transform:translateY(3px) scale(.92);filter:blur(2px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}.thought-message{display:inline-block;animation:messageReveal .5s var(--ease-out-expo) forwards}.thought-dot{display:block;border-radius:50%;background:var(--gray-600);border:1px solid var(--border-medium);position:absolute}.thought-dot-large{width:5px;height:5px;bottom:-10px;right:-3px}.thought-dot-small{width:3px;height:3px;bottom:-20px;right:-6px}.thought-bubble{font-family:var(--font-label);font-size:.6875rem;line-height:1.35;color:var(--gray-400);background:#ffffff0f;border:1px solid var(--border-medium);border-radius:8px 8px 2px;padding:5px 9px;white-space:nowrap;letter-spacing:.01em}.thought-bubble em{font-style:normal;color:var(--gray-300)}@keyframes thoughtFadeIn{to{opacity:.75;transform:translateY(0) scale(1)}}@media(max-width:600px){.ghost-thought{right:-6px;top:-40px}.thought-dot-large{width:4px;height:4px;bottom:-8px;right:-2px}.thought-dot-small{width:2px;height:2px;bottom:-15px;right:-4px}.thought-bubble{font-size:.5625rem;padding:4px 7px;border-radius:6px 6px 2px}}.hero-title{font-size:clamp(2.75rem,8vw,4.25rem);font-weight:700;letter-spacing:-.04em;line-height:1;margin-bottom:1rem;color:var(--text-primary)}.title-line{display:inline-block;opacity:0;transform:translateY(40px);animation:fadeUp 1s var(--ease-out-expo) .3s forwards}.title-char{display:inline-block;transition:transform .15s var(--ease-out-expo);will-change:transform}.hero-subtitle{font-size:1.25rem;font-weight:400;color:var(--gray-300);margin-bottom:.5rem;opacity:0;transform:translateY(20px);animation:fadeUp .8s var(--ease-out-expo) .5s forwards}@keyframes fadeUp{to{opacity:1;transform:translateY(0)}}.section{margin-bottom:var(--section-gap)}:root{--spotify-bg: rgba(255, 255, 255, .015);--spotify-text: #f0f0ec;--spotify-text-secondary: rgba(240, 240, 236, .6);--spotify-text-muted: rgba(240, 240, 236, .4);--spotify-progress-bg: rgba(255, 255, 255, .05);--spotify-progress-fill: rgba(240, 240, 236, .9);--spotify-shadow: rgba(0, 0, 0, .2);--spotify-green: rgba(240, 240, 236, .9);--theme-transition: all .4s cubic-bezier(.25, .8, .25, 1)}.spotify-widget{margin:0 0 1.5rem;padding:.75rem 1rem;border:1px dotted rgba(255,255,255,.2);border-radius:16px;background-color:transparent;position:relative;overflow:hidden;display:none;opacity:0;transition:var(--theme-transition)}.spotify-widget:before{content:"";position:absolute;inset:0;opacity:0;transition:opacity .3s ease;pointer-events:none}.spotify-widget.show{opacity:1;transform:translateY(0);display:block}.spotify-widget__header{position:absolute;top:.625rem;right:.75rem;z-index:10}.spotify-widget__logo{display:inline-flex;align-items:center;justify-content:center;color:var(--spotify-green);text-decoration:none;font-size:18px;transition:all .2s ease}.spotify-widget__logo i{display:inline-flex;align-items:center;justify-content:center;width:1em;height:1em}.spotify-widget__logo.spinning i{animation:spin 2s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spotify-widget__status{display:inline-block;font-size:.75rem;color:var(--spotify-text-secondary);font-weight:500;margin-right:2rem}.spotify-widget__content{color:var(--spotify-text);transition:color .4s cubic-bezier(.25,.8,.25,1)}.spotify-widget__track{display:flex;align-items:center;gap:15px;margin-bottom:0}.spotify-widget__album-art{border-radius:8px;box-shadow:0 4px 12px var(--spotify-shadow);transition:all .3s cubic-bezier(.25,.8,.25,1);opacity:0;transform:scale(.9)}.spotify-widget__album-art.loaded{opacity:1;transform:scale(1)}.spotify-widget__album-art.not-playing{opacity:.6;filter:grayscale(30%)}.spotify-widget__track-info{flex:1;min-width:0;opacity:0;transform:translate(-10px);transition:all .3s cubic-bezier(.25,.8,.25,1)}.spotify-widget__track-info.loaded{opacity:1;transform:translate(0)}.spotify-widget__track-name{font-weight:600;margin-bottom:4px;color:var(--spotify-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color .4s cubic-bezier(.25,.8,.25,1)}.spotify-widget__artist{color:var(--spotify-text-secondary);margin-bottom:2px;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color .4s cubic-bezier(.25,.8,.25,1)}.spotify-widget__album{color:var(--spotify-text-muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color .4s cubic-bezier(.25,.8,.25,1)}.spotify-widget__progress{background-color:var(--spotify-progress-bg);height:4px;border-radius:2px;margin:10px 0;overflow:hidden;transition:background-color .4s cubic-bezier(.25,.8,.25,1)}.spotify-widget__progress-fill{height:100%;background:linear-gradient(90deg,#f0f0ec 0% 100%);transition:width .5s cubic-bezier(.25,.8,.25,1),background-color .4s cubic-bezier(.25,.8,.25,1);border-radius:2px;transform-origin:left;box-shadow:0 0 10px #1db95466}.spotify-widget__time{display:flex;justify-content:space-between;font-size:12px;color:var(--spotify-progress-fill);font-family:monospace;opacity:0;transform:translateY(5px);transition:all .3s cubic-bezier(.25,.8,.25,1)}.spotify-widget__time.loaded{opacity:1;transform:translateY(0)}.spotify-widget__auth-link{color:var(--spotify-green);text-decoration:none;font-weight:500}.spotify-widget__auth-link:hover{text-decoration:underline}@media(min-width:769px)and (max-width:1024px){.spotify-widget{padding:.5rem .625rem;margin-bottom:1.25rem}.spotify-widget__header{top:.5rem;right:.625rem}}@media(min-width:641px)and (max-width:768px){.spotify-widget{padding:.5rem .625rem;margin-bottom:1.25rem}.spotify-widget__header{top:.5rem;right:.625rem}.spotify-widget__logo{font-size:16px}.spotify-widget__status{font-size:13px}}@media(max-width:640px){.spotify-widget{padding:.5rem .625rem;margin-bottom:1rem;border-radius:12px}.spotify-widget__header{top:.5rem;right:.625rem}.spotify-widget__logo{font-size:16px}.spotify-widget__track{gap:12px;margin-bottom:0}.spotify-widget__album-art{width:52px;height:52px}.spotify-widget__track-name{font-size:15px}.spotify-widget__artist{font-size:13px}.spotify-widget__album{font-size:11px}}@media(max-width:400px){.spotify-widget{padding:.5rem .625rem;margin-bottom:.875rem}.spotify-widget__header{top:.5rem;right:.625rem}.spotify-widget__logo{font-size:14px}.spotify-widget__status{font-size:12px}.spotify-widget__album-art{width:48px;height:48px}.spotify-widget__track-name{font-size:14px}.spotify-widget__artist{font-size:12px}.spotify-widget__album{font-size:10px}}@media(prefers-reduced-motion:reduce){.spotify-widget,.spotify-widget__album-art,.spotify-widget__track-info,.spotify-widget__time,.spotify-widget__progress-fill{transition:none;animation:none}.spotify-widget__logo.spinning i{animation:none}}.ascii-eq-container{width:64px;height:64px;display:flex;align-items:center;justify-content:center;background:transparent;border-radius:8px;overflow:hidden}.ascii-eq-bars{display:flex;gap:3px;align-items:flex-end;height:60px}.ascii-eq-bar{width:6px;background:#fff;border-radius:2px}.spotify-widget__loading-text{color:#fff6;font-size:14px}.bento-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:.75rem}.tile-wrapper{position:relative;display:flex;align-items:stretch;opacity:0;transform:translateY(30px);transition:all .6s var(--ease-out-expo)}.tile-wrapper.visible{opacity:1;transform:translateY(0)}.tile-wrapper:nth-child(1){transition-delay:.05s}.tile-wrapper:nth-child(2){transition-delay:.1s}.tile-wrapper:nth-child(3){transition-delay:.15s}.tile-wrapper:nth-child(4){transition-delay:.2s}.tile-wrapper:nth-child(5){transition-delay:.25s}.tile-wrapper:nth-child(6){transition-delay:.3s}.tile-wrapper:nth-child(7){transition-delay:.35s}.tile-wrapper:nth-child(8){transition-delay:.4s}.tile-wrapper:nth-child(9){transition-delay:.45s}.tile-wrapper:nth-child(10){transition-delay:.5s}.tile{position:relative;display:flex;flex:1;align-items:center;gap:.625rem;padding:1.25rem 1.5rem;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:12px;text-decoration:none;color:var(--text-primary);overflow:hidden;transition:background-color .2s ease,border-color .2s ease}.tile-wrapper:has(.copy-btn) .tile{border-radius:12px 0 0 12px}.tile-wrapper:hover .tile{background:var(--bg-hover);border-color:var(--border-medium)}.tile i,.tile svg,.tile-icon-img{position:relative;z-index:1;font-size:1.25rem;width:1.5rem;text-align:center;flex-shrink:0;color:var(--gray-400);object-fit:contain;transition:color .2s ease,filter .2s ease,opacity .2s ease,transform .2s ease}.tile-icon-img{filter:grayscale(1) brightness(.85);opacity:.9}.tile-wrapper:hover i,.tile-wrapper:hover svg{color:var(--text-primary)}.tile-wrapper:hover .tile-icon-img{filter:none;opacity:1}@media(hover:hover)and (pointer:fine){.tile:after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.04) 45%,rgba(255,255,255,.04) 55%,transparent 60%);transform:translate(-150%);pointer-events:none;opacity:0;transition:opacity .1s ease}.tile-wrapper:hover .tile:after{opacity:1;transform:translate(150%);transition:transform .45s var(--ease-out-expo),opacity .1s ease}.tile-wrapper:hover .tile i,.tile-wrapper:hover .tile-icon-img{transform:translate(1px)}}@media(prefers-reduced-motion:reduce){.tile:after{display:none!important}.tile-wrapper:hover .tile i,.tile-wrapper:hover .tile-icon-img{transform:none!important}}.tile span{position:relative;z-index:1;font-size:.9375rem;font-weight:500;letter-spacing:-.01em}.copy-btn{display:flex;align-items:center;justify-content:center;width:48px;min-width:48px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-left:none;border-radius:0 12px 12px 0;color:var(--gray-500);cursor:pointer;transition:background-color .2s ease,border-color .2s ease,color .2s ease}.tile-wrapper:hover .copy-btn{background:var(--bg-hover);border-color:var(--border-medium)}.copy-btn:hover{color:var(--text-primary)}.copy-btn:active{transform:scale(.95)}.copy-icon-wrapper{display:flex;align-items:center;justify-content:center}.copy-btn i{font-size:.875rem;transition:transform .25s var(--ease-out-expo),opacity .15s ease}.copy-btn.copied i{animation:copyCheck .35s var(--ease-out-expo)}.copy-btn:hover:not(.copied) i{transform:scale(1.1)}@keyframes copyCheck{0%{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}@media(prefers-reduced-motion:reduce){.copy-btn.copied i{animation:none}}.tile--primary{grid-column:span 6}.tile--xl{grid-column:span 8}.tile--lg,.tile--md{grid-column:span 6}.tile--sm{grid-column:span 4}.tile--xs{grid-column:span 3}.tile--primary .tile,.tile--xl .tile{padding:1.5rem 1.75rem;min-height:72px}.tile--primary .tile i,.tile--xl .tile i{font-size:1.5rem;width:1.75rem}.tile--primary .tile span,.tile--xl .tile span{font-size:1rem;font-weight:600}.tile--sm .tile,.tile--xs .tile{padding:1rem 1.25rem}.tile--sm .tile i,.tile--xs .tile i{font-size:1rem}.tile--sm .tile span,.tile--xs .tile span{font-size:.8125rem}@media(max-width:768px){.bento-grid{gap:.5rem}.tile--primary,.tile--xl,.tile--lg,.tile--md{grid-column:span 12}.tile--sm{grid-column:span 6}.tile--xs{grid-column:span 4}}@media(max-width:480px){.tile,.tile--primary .tile,.tile--xl .tile,.tile--lg .tile,.tile--md .tile,.tile--sm .tile,.tile--xs .tile{padding:.875rem 1rem;min-height:50px;border-radius:12px;gap:.625rem}.tile--primary,.tile--xl,.tile--lg,.tile--md{grid-column:span 12}.tile--sm,.tile--xs{grid-column:span 6}.tile--sm .tile span,.tile--xs .tile span{font-size:.75rem}.copy-btn{width:44px;min-width:44px}}.accordion-wrapper{position:relative}.accordion-container{display:flex;flex-direction:column;gap:0}.accordion-item{background:none;border:none;border-bottom:1px solid var(--border-subtle)}.accordion-item:last-child{border-bottom:none}.accordion-header{position:relative;width:100%;display:flex;align-items:center;gap:1.25rem;padding:1.25rem 0;text-align:left;transition:all .3s ease}.accordion-toggle{background:none;border:none;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer}.accordion-toggle:after{content:"";position:absolute;inset:0}.accordion-toggle:focus-visible{outline:none}.accordion-toggle:focus-visible:after{outline:2px solid var(--gray-200);outline-offset:-2px;border-radius:8px}.accordion-item:hover .accordion-subtitle{color:var(--gray-300)}.accordion-item:hover .accordion-chevron-box{border-color:var(--border-medium)}.accordion-item:hover .accordion-icon{color:var(--gray-300)}.accordion-logo{width:46px;height:46px;background:#080808;border:1px solid rgba(255,255,255,.05);border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:1.125rem;color:var(--text-secondary);overflow:hidden}.accordion-logo img{width:22px;height:22px;object-fit:contain;filter:grayscale(1) brightness(.9) opacity(.8);transition:all .3s ease}.accordion-item:hover .accordion-logo img{filter:none;opacity:1}.accordion-info{flex:1;display:flex;flex-direction:column;gap:.125rem}.accordion-title-row{display:flex;align-items:center;gap:.625rem;flex-wrap:wrap}.accordion-title{font-size:.9375rem;font-weight:600;color:var(--white);letter-spacing:-.01em}.accordion-links{position:relative;z-index:1;display:flex;align-items:center;gap:.4rem}.accordion-link-icon{font-size:.6875rem;color:var(--text-muted);transition:all .2s ease;text-decoration:none;opacity:.6;display:flex;align-items:center}.accordion-link-img{width:.75rem;height:.75rem;object-fit:contain;filter:grayscale(1) brightness(.8);transition:all .2s ease}.accordion-link-icon:hover{color:var(--white);opacity:1}.accordion-link-icon:hover .accordion-link-img{filter:grayscale(0) brightness(1)}.accordion-subtitle{font-size:.8125rem;color:var(--gray-400);font-weight:400;transition:color .3s ease}.accordion-meta{text-align:right;display:flex;flex-direction:column;gap:.125rem;margin-right:.5rem}.accordion-date{font-size:.8125rem;color:var(--gray-300);font-weight:500;font-variant-numeric:tabular-nums}.accordion-location{font-size:.75rem;color:var(--gray-400)}.accordion-chevron-box{width:32px;height:32px;border-radius:50%;border:1px solid rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;transition:all .3s var(--ease-out-expo);background:#ffffff05}.accordion-icon{font-size:.625rem;color:var(--text-muted);transition:transform .4s var(--ease-out-expo)}.accordion-icon.rotated{transform:rotate(180deg);color:var(--white)}.accordion-content{overflow:hidden}.accordion-inner{padding:0 0 1.5rem 4.125rem;font-size:.875rem;line-height:1.6;color:var(--gray-300)}.accordion-bullet-point{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:.5rem}.accordion-bullet-point .bullet{width:6px;height:6px;background:var(--text-muted);border-radius:50%;margin-top:.5rem;flex-shrink:0}.accordion-bullet-point:hover .bullet{background:var(--text-primary)}@media(max-width:600px){.accordion-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"logo info chevron" "logo meta chevron";align-items:center;column-gap:1rem;row-gap:.25rem;padding:1.25rem 0}.accordion-logo{grid-area:logo}.accordion-info{grid-area:info;gap:.125rem}.accordion-title-row{gap:.5rem}.accordion-meta{grid-area:meta;flex-direction:row;align-items:baseline;gap:.4rem;text-align:left;margin-right:0}.accordion-location:before{content:"·";margin-right:.4rem;color:var(--gray-500)}.accordion-date,.accordion-location{font-size:.75rem;opacity:.8}.accordion-chevron-box{grid-area:chevron;width:30px;height:30px}.accordion-inner{padding-left:0}}.expand-button-container{display:flex;justify-content:center;margin-top:1.5rem}.expand-btn{background:transparent;color:var(--gray-100);border:1px dotted var(--gray-100);padding:.875rem 1.75rem;border-radius:12px;font-size:.9375rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:.625rem}.expand-btn:hover{opacity:.9}.expand-btn:active{transform:translateY(0)}.expand-btn i{font-size:.75rem}.accordion-line{opacity:0;transform:translateY(6px);transition:opacity .3s ease,transform .3s var(--ease-out-expo);transition-delay:calc(var(--line-i, 0) * 35ms)}.content-revealed .accordion-line{opacity:1;transform:translateY(0)}.accordion-item--expanded .accordion-logo{filter:brightness(1.15);transition:filter .3s ease}@media(prefers-reduced-motion:reduce){.accordion-line{transition:none;opacity:1;transform:none}}.heatmap-section{margin-bottom:var(--section-gap)}.heatmap-container{position:relative;padding:0 0 1rem;overflow:hidden;max-width:100%}.heatmap-actual{width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}.heatmap-actual::-webkit-scrollbar{display:none}.heatmap-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;flex-wrap:wrap;gap:.75rem}.heatmap-title{font-size:.8125rem;font-weight:500;color:var(--text-secondary);letter-spacing:.02em}.contribution-stats{font-size:.75rem;color:var(--gray-400);font-variant-numeric:tabular-nums}#github-heatmap{display:inline-block;min-height:120px}.heatmap-svg{display:block}.month-label{font-family:Inter,sans-serif;font-size:11px;fill:var(--gray-400);font-weight:400}.contribution-cell{cursor:pointer;transition:all .1s ease}.heatmap-svg--hovering .contribution-cell{opacity:.35;transition:opacity .15s ease}.contribution-cell:hover{stroke:#fff3}.heatmap-tooltip{position:fixed;background:var(--white);color:var(--black);border-radius:6px;padding:.5rem .75rem;font-size:.75rem;font-weight:500;pointer-events:none;opacity:0;transform:translate(-50%,-100%) translateY(-10px);transition:opacity .15s ease;z-index:9999;box-shadow:0 8px 24px #0006;white-space:nowrap}.heatmap-tooltip.visible{opacity:1}.heatmap-footer{display:flex;align-items:center;justify-content:space-between;margin-top:.75rem;font-size:.75rem;color:var(--gray-400)}.contribution-summary{font-size:.75rem;color:var(--text-secondary);font-variant-numeric:tabular-nums}.contribution-summary a{color:var(--text-primary);text-decoration:none;border-bottom:1px solid var(--border-subtle);transition:border-color .2s ease}.contribution-summary a:hover{border-bottom-color:var(--text-primary)}.heatmap-legend{display:flex;align-items:center;gap:.375rem;font-size:.6875rem}.heatmap-legend-label{color:var(--gray-400)}.heatmap-legend-colors{display:flex;gap:2px;margin:0 .25rem}.heatmap-legend-cell{width:10px;height:10px;border-radius:2px}.heatmap-error{text-align:center;color:var(--gray-400);font-size:.875rem;padding:2rem 0}@media(max-width:768px){.heatmap-footer{flex-direction:column;align-items:flex-start;gap:.75rem}.heatmap-legend{align-self:flex-end}}@media(max-width:480px){.heatmap-title{font-size:.75rem}}.custom-select{position:relative;width:100%}.custom-select-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.75rem;background-color:var(--gray-900);border:1px solid var(--border-medium);border-radius:12px;padding:1.125rem 1.25rem;color:var(--white);font-size:1rem;font-family:inherit;text-align:left;cursor:pointer;transition:border-color .2s ease,background-color .2s ease}.custom-select-trigger:hover{border-color:var(--border-strong);background-color:var(--gray-850)}.custom-select-trigger:focus-visible{outline:none;border-color:var(--white);background-color:var(--gray-850)}.custom-select.open .custom-select-trigger{border-color:var(--white);background-color:var(--gray-850)}.custom-select-trigger.placeholder .custom-select-value{color:var(--gray-400)}.custom-select-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.custom-select-arrow{flex-shrink:0;font-size:.75rem;color:var(--gray-400);transition:transform .3s var(--ease-out-expo),color .2s ease}.custom-select.open .custom-select-arrow{transform:rotate(180deg);color:var(--gray-200)}.custom-select-options{position:absolute;top:calc(100% + .5rem);left:0;right:0;z-index:20;margin:0;padding:.375rem;list-style:none;background-color:var(--gray-900);border:1px solid var(--border-strong);border-radius:12px;box-shadow:0 16px 40px #0009;max-height:15rem;overflow-y:auto;opacity:0;visibility:hidden;transform:translateY(-6px) scale(.98);transform-origin:top center;transition:opacity .22s var(--ease-out-expo),transform .22s var(--ease-out-expo),visibility .22s var(--ease-out-expo)}.custom-select.open .custom-select-options{opacity:1;visibility:visible;transform:translateY(0) scale(1)}.custom-select-option{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem .875rem;border-radius:8px;color:var(--gray-200);font-size:.9375rem;cursor:pointer;transition:background-color .15s ease,color .15s ease}.custom-select.open .custom-select-option{animation:custom-select-option-in .32s var(--ease-out-expo) backwards;animation-delay:calc(var(--i) * 28ms)}@keyframes custom-select-option-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.custom-select-option.active{background-color:var(--gray-800);color:var(--white)}.custom-select-option.selected{color:var(--white)}.custom-select-check{flex-shrink:0;font-size:.75rem;color:var(--white)}.custom-select-mirror{position:absolute;left:50%;bottom:.5rem;width:1px;height:1px;padding:0;border:0;opacity:0;pointer-events:none}@media(hover:hover){.custom-select-option:hover{background-color:var(--gray-800);color:var(--white)}}@media(prefers-reduced-motion:reduce){.custom-select-arrow,.custom-select-options{transition-duration:.01ms}.custom-select.open .custom-select-option{animation:none}}.contact-section{margin-bottom:var(--section-gap)}.contact-card{border:1px dotted rgba(255,255,255,.15);border-radius:16px;padding:2.25rem 2rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:background .3s ease,border-color .3s ease}.contact-card:hover{border-color:#ffffff40}.contact-text{font-size:clamp(1.25rem,4vw,1.625rem);font-weight:600;color:var(--gray-100);margin-bottom:1.75rem;letter-spacing:-.02em;line-height:1.25;text-wrap:balance}.book-btn{background:var(--gray-100);color:var(--black);border:none;padding:.875rem 1.75rem;border-radius:12px;font-size:.9375rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:.75rem;transition:background-color .2s ease}.book-btn:hover{background:var(--white)}.book-btn i{transition:transform .25s var(--ease-out-expo)}.book-btn:hover i{transform:translate(3px)}.book-btn:active{transform:scale(.98);transition:transform .1s ease}.modal-overlay{position:fixed;inset:0;z-index:9999;background:#000000d9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;padding:1.5rem;opacity:0;visibility:hidden;transition:all .4s var(--ease-out-expo)}.modal-overlay.active{opacity:1;visibility:visible}.modal-container{background:var(--gray-950);border:1px solid var(--border-medium);border-radius:24px;width:100%;max-width:600px;position:relative;padding:3.5rem 3rem;max-height:90vh;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none;transform:scale(.98);transition:transform .4s var(--ease-out-expo)}.modal-container::-webkit-scrollbar{display:none}.modal-overlay.active .modal-container{transform:scale(1)}.modal-close{position:absolute;top:1.5rem;right:1.5rem;background:#ffffff0d;border:1px solid var(--border-subtle);width:38px;height:38px;border-radius:50%;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;z-index:10}.modal-close:hover{background:#ffffff1a;color:var(--white)}.modal-title{font-size:2rem;font-weight:700;color:var(--white);margin-bottom:.5rem;letter-spacing:-.02em}.modal-subtitle{font-size:.9375rem;color:var(--gray-200);margin-bottom:2.5rem}.onboarding-form{display:flex;flex-direction:column;gap:1.75rem}.form-group{display:flex;flex-direction:column;gap:.75rem}.form-label{font-size:.875rem;font-weight:600;color:var(--gray-200);text-transform:uppercase;letter-spacing:.05em}.form-submit-btn{margin-top:1rem;background:var(--white);color:var(--black);border:none;padding:1.125rem;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:opacity .2s ease,transform .2s ease}.form-submit-btn:hover:not(:disabled){opacity:.9}.form-submit-btn:disabled{opacity:.3;cursor:not-allowed}.cal-iframe-container{width:100%;height:700px;background:var(--gray-950)}.cal-iframe-container iframe{width:100%;height:100%;border:none;display:block}.modal-container.cal-active{max-width:1000px;padding:0;overflow:hidden;background:var(--gray-950)}.modal-container.cal-active .modal-close{top:1rem;right:1rem;background:#ffffff1a;border-color:#fff3}@media(max-width:768px){.cal-iframe-container{height:600px}.modal-container.cal-active{max-width:100%;border-radius:16px}.modal-title{font-size:1.5rem}}.cal-iframe-container{position:relative}.cal-loading{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.25rem;background:var(--gray-950)}.cal-loading-icon{font-size:2rem;color:var(--gray-400);animation:cal-pulse 2s ease-in-out infinite}@keyframes cal-pulse{0%,to{opacity:.3;transform:scale(1)}50%{opacity:1;transform:scale(1.1)}}.cal-loading-text{color:var(--gray-400);font-size:.8125rem;letter-spacing:.05em}.loading-dots:after{content:"";animation:dots 1.4s steps(4,end) infinite}@keyframes dots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}to{content:""}}.cal-iframe-container iframe.iframe-loading{opacity:0}.cal-iframe-container iframe.iframe-loaded{opacity:1;transition:opacity .4s ease}.section-header{display:flex;align-items:center;gap:1rem;margin-bottom:2rem;opacity:0;transform:translateY(20px);transition:all .8s var(--ease-out-expo)}.section-header.visible{opacity:1;transform:translateY(0)}.section-number{font-family:var(--font-label);font-size:.75rem;font-weight:500;color:var(--gray-500);letter-spacing:.1em;font-variant-numeric:tabular-nums}.section-title{font-size:.875rem;font-weight:600;color:var(--gray-300);text-transform:uppercase;letter-spacing:.15em}.section-number,.section-title{opacity:0;transition:opacity .4s var(--ease-out-expo)}.section-header.visible .section-number{opacity:1}.section-header.visible .section-title{opacity:1;transition-delay:40ms}.section-line{flex:1;height:1px;background:linear-gradient(90deg,var(--border-medium) 0%,transparent 100%);transform:scaleX(.15);transform-origin:left;transition:transform .6s var(--ease-out-expo);transition-delay:.12s}.section-header.visible .section-line{transform:scaleX(1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{color-scheme:dark;--black: #000000;--gray-950: #0a0a0a;--gray-900: #111111;--gray-850: #161616;--gray-800: #1a1a1a;--gray-700: #262626;--gray-600: #404040;--gray-500: #525252;--gray-400: #7d7d7d;--gray-300: #a3a3a3;--gray-200: #d4d4d4;--gray-100: #e5e5e5;--gray-50: #f5f5f5;--white: #fafafa;--bg-primary: var(--black);--bg-secondary: rgba(10, 10, 10, .1);--bg-elevated: rgba(255, 255, 255, .04);--bg-hover: rgba(255, 255, 255, .08);--text-primary: var(--white);--text-secondary: var(--gray-400);--text-tertiary: var(--gray-500);--text-muted: var(--gray-500);--border-subtle: rgba(255, 255, 255, .06);--border-medium: rgba(255, 255, 255, .1);--border-strong: rgba(255, 255, 255, .15);--glow-subtle: rgba(255, 255, 255, .03);--glow-medium: rgba(255, 255, 255, .06);--glow-strong: rgba(255, 255, 255, .1);--container-width: 720px;--section-gap: 3rem;--content-padding: 2rem;--font-label: "Montserrat", "Inter", sans-serif;--font-serif: "Instrument Serif", Georgia, "Times New Roman", serif;--cyan: #00f2ff;--cyan-glow: rgba(0, 242, 255, .4);--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--ease-out-quart: cubic-bezier(.25, 1, .5, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1)}a{color:var(--text-primary);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:#ffffff47;transition:text-decoration-color .2s ease}a:hover{text-decoration-color:var(--text-primary)}.terminal-text{font-family:var(--font-label)}:focus-visible{outline:2px solid var(--gray-200);outline-offset:2px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}::selection{background:var(--white);color:var(--black)}html{scrollbar-width:none;-ms-overflow-style:none;background:var(--bg-primary);color:var(--text-primary);overflow-x:hidden}html::-webkit-scrollbar{display:none}html{font-size:16px;scroll-behavior:smooth}.app{overflow-x:hidden;width:100%;position:relative}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg-primary);color:var(--text-primary);min-height:100vh;line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.scroll-container{position:relative;z-index:10;min-height:auto;max-width:100vw;overflow-x:hidden}.content-wrapper{max-width:var(--container-width);margin:0 auto;padding:4rem var(--content-padding) 2rem}.content-wrapper>.section:last-of-type{margin-bottom:0}.ascii-bg-layer{position:fixed;inset:0;pointer-events:none;opacity:.045;overflow:hidden}.spotify-wrapper{margin-top:2rem}.vignette{position:fixed;inset:0;z-index:2;pointer-events:none;background:radial-gradient(ellipse 80% 80% at 50% 50%,transparent 0%,rgba(0,0,0,.5) 100%)}.footer{margin-top:1.5rem;padding:1rem 0 0rem;border-top:1px solid var(--border-subtle);text-align:center;position:relative;z-index:5}.footer-text{font-size:.8rem;color:var(--gray-400);letter-spacing:.02em}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0ms!important}html{scroll-behavior:auto}}@media(max-width:768px){.content-wrapper{padding:3rem 1.25rem 2rem}.ascii-bg-layer{opacity:.07}.footer{padding:1.5rem 1rem 0;font-size:.75rem;line-height:1.4}}
