@import "https://fonts.googleapis.com/css2?family=Figtree:ital,wght@0,300..900;1,300..900&display=swap";@import "https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400..900;1,400..900&display=swap";.about-notes[data-astro-cid-uuem3p32]{background-color:var(--surface-panel);border:5px solid var(--surface-border);height:100%;box-shadow:var(--shadow-panel);border-radius:8px;flex-direction:column;padding:14px 20px 16px;display:flex}.notes-content[data-astro-cid-uuem3p32]{flex-direction:column;gap:10px;margin-top:10px;display:flex}.notes-content[data-astro-cid-uuem3p32] p[data-astro-cid-uuem3p32]{color:var(--text-body);margin:0;font-size:13px;line-height:1.55}.contributions-graph[data-astro-cid-ijsxx3wz]{background:var(--github-chart-background);border-radius:6px;min-width:850px;padding:8px 10px}.grid-months[data-astro-cid-ijsxx3wz]{gap:3px;height:16px;margin-bottom:3px;padding-left:30px;display:flex}.grid-month[data-astro-cid-ijsxx3wz]{width:12px;color:var(--github-chart-label);white-space:nowrap;font-size:9px;line-height:16px;overflow:visible}.grid-body[data-astro-cid-ijsxx3wz]{grid-auto-flow:row;gap:3px;display:grid}.grid-day-label[data-astro-cid-ijsxx3wz]{width:30px;color:var(--github-chart-label);text-align:left;white-space:nowrap;font-size:9px;line-height:12px;overflow:visible}.grid-cell[data-astro-cid-ijsxx3wz]{background:var(--github-chart-inactive);border-radius:3px;width:12px;height:12px}.grid-cell[data-astro-cid-ijsxx3wz].q1{background:color-mix(in srgb, var(--github-chart-min-activity) 80%, var(--github-chart-max-activity) 20%)}.grid-cell[data-astro-cid-ijsxx3wz].q2{background:color-mix(in srgb, var(--github-chart-min-activity) 55%, var(--github-chart-max-activity) 45%)}.grid-cell[data-astro-cid-ijsxx3wz].q3{background:color-mix(in srgb, var(--github-chart-min-activity) 30%, var(--github-chart-max-activity) 70%)}.grid-cell[data-astro-cid-ijsxx3wz].q4{background:var(--github-chart-max-activity)}.chart-error[data-astro-cid-ijsxx3wz]{color:var(--text-danger);opacity:.85;margin:6px 0 0;font-size:10px;line-height:1.4}.map-container{flex-direction:column;height:100%;min-height:0;display:flex}.map-leaflet{background:var(--surface-muted);border-radius:8px;flex:auto;width:100%;min-height:220px;overflow:hidden}.map-leaflet .leaflet-tile{filter:var(--map-tile-filter)}.map-leaflet .leaflet-container{background:var(--surface-muted);font-family:inherit}.map-leaflet .leaflet-bar{border:1px solid var(--map-control-divider);box-shadow:var(--map-marker-shadow);border-radius:6px;overflow:hidden}.map-leaflet .leaflet-bar a{background:var(--map-control-bg);color:var(--text-muted);border-bottom:1px solid var(--map-control-divider);width:28px;height:28px;line-height:28px}.map-leaflet .leaflet-bar a:hover,.map-leaflet .leaflet-bar a:focus{background:var(--map-control-bg-hover);color:var(--text-heading)}.map-leaflet .leaflet-bar a.leaflet-disabled{background:var(--map-control-bg);color:var(--text-faint)}.map-leaflet .leaflet-control-attribution{background:var(--map-attribution-bg);color:var(--text-faint);backdrop-filter:blur(4px);font-size:9px}.map-leaflet .leaflet-control-attribution a{color:var(--text-subtle)}.map-pin{background:var(--map-marker-bg);border:3px solid var(--map-marker-muted-bg);width:26px;height:26px;box-shadow:var(--map-marker-shadow);border-radius:50% 50% 50% 0;position:relative;transform:rotate(-45deg)}.map-pin:after{content:"";background:var(--text-danger);border-radius:50%;width:9px;height:9px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;top:0;left:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:0 0}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{transform-origin:0 0;width:1600px;height:1600px}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{width:auto;padding:0;max-width:none!important;max-height:none!important}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:#33b5e566}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{box-sizing:border-box;z-index:800;width:0;height:0}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{display:inline-block;position:absolute}.leaflet-control{z-index:800;pointer-events:auto;position:relative}.leaflet-top,.leaflet-bottom{z-index:1000;pointer-events:none;position:absolute}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:auto}.leaflet-container{outline-offset:1px;background:#ddd}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{background:#ffffff80;border:2px dotted #38f}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:.75rem;line-height:1.5}.leaflet-bar{border-radius:4px;box-shadow:0 1px 5px #000000a6}.leaflet-bar a{text-align:center;color:#000;background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;text-decoration:none;display:block}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom:none;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.leaflet-bar a.leaflet-disabled{cursor:default;color:#bbb;background-color:#f4f4f4}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-right-radius:2px;border-bottom-left-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{text-indent:1px;font:700 18px Lucida Console,Monaco,monospace}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{background:#fff;border-radius:5px;box-shadow:0 1px 5px #0006}.leaflet-control-layers-toggle{background-image:url(./media/layers-55W3Q4RM.png);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(./media/layers-2x-TBM42ERR.png);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{color:#333;background:#fff;padding:6px 10px 6px 6px}.leaflet-control-layers-scrollbar{padding-right:5px;overflow:hidden scroll}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{font-size:1.08333em;display:block}.leaflet-control-layers-separator{border-top:1px solid #ddd;height:0;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(./media/marker-icon-2V3QKKVC.png)}.leaflet-container .leaflet-control-attribution{background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{color:#333;padding:0 5px;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{width:1em;height:.6669em;vertical-align:baseline!important;display:inline!important}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{white-space:nowrap;box-sizing:border-box;text-shadow:1px 1px #fff;background:#fffc;border:2px solid #777;border-top:none;border-image:;padding:2px 5px 1px;line-height:1.1}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{background-clip:padding-box;border:2px solid #0003}.leaflet-popup{text-align:center;margin-bottom:20px;position:absolute}.leaflet-popup-content-wrapper{text-align:left;border-radius:12px;padding:1px}.leaflet-popup-content{min-height:1px;margin:13px 24px 13px 20px;font-size:1.08333em;line-height:1.3}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{pointer-events:none;width:40px;height:20px;margin-top:-1px;margin-left:-20px;position:absolute;left:50%;overflow:hidden}.leaflet-popup-tip{pointer-events:auto;width:17px;height:17px;margin:-10px auto 0;padding:1px;transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{color:#333;background:#fff;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{text-align:center;color:#757575;background:0 0;border:none;border-image:;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;text-decoration:none;position:absolute;top:0;right:0}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{color:#222;white-space:nowrap;user-select:none;pointer-events:none;background-color:#fff;border:1px solid #fff;border-radius:3px;padding:6px;position:absolute;box-shadow:0 1px 3px #0006}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{pointer-events:none;content:"";background:0 0;border:6px solid #0000;position:absolute}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{margin-left:-6px;left:50%}.leaflet-tooltip-top:before{border-top-color:#fff;margin-bottom:-12px;bottom:0}.leaflet-tooltip-bottom:before{border-bottom-color:#fff;margin-top:-12px;margin-left:-6px;top:0}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{margin-top:-6px;top:50%}.leaflet-tooltip-left:before{border-left-color:#fff;margin-right:-12px;right:0}.leaflet-tooltip-right:before{border-right-color:#fff;margin-left:-12px;left:0}@media print{.leaflet-control{print-color-adjust:exact}}.leaflet-cluster-anim .leaflet-marker-icon,.leaflet-cluster-anim .leaflet-marker-shadow{transition:transform .3s ease-out,opacity .3s ease-in}.leaflet-cluster-spider-leg{transition:stroke-dashoffset .3s ease-out,stroke-opacity .3s ease-in}.marker-cluster-small{background-color:#b5e28c99}.marker-cluster-small div{background-color:#6ecc3999}.marker-cluster-medium{background-color:#f1d35799}.marker-cluster-medium div{background-color:#f0c20c99}.marker-cluster-large{background-color:#fd9c7399}.marker-cluster-large div{background-color:#f1801799}.leaflet-oldie .marker-cluster-small{background-color:#b5e28c}.leaflet-oldie .marker-cluster-small div{background-color:#6ecc39}.leaflet-oldie .marker-cluster-medium{background-color:#f1d357}.leaflet-oldie .marker-cluster-medium div{background-color:#f0c20c}.leaflet-oldie .marker-cluster-large{background-color:#fd9c73}.leaflet-oldie .marker-cluster-large div{background-color:#f18017}.marker-cluster{background-clip:padding-box;border-radius:20px}.marker-cluster div{text-align:center;border-radius:15px;width:30px;height:30px;margin-top:5px;margin-left:5px;font:12px Helvetica Neue,Arial,Helvetica,sans-serif}.marker-cluster span{line-height:30px}html[data-theme=dark]{--surface-page:#171718;--surface-panel:#171718;--surface-card:#171718;--surface-muted:#202021;--surface-border:#202021;--surface-border-subtle:#202021;--surface-border-soft:#202021;--surface-border-hover:#2a2a2d;--scrollbar-thumb:#ffffff2e;--scrollbar-thumb-hover:#ffffff57;--github-chart-background:#171718;--projects-card-background:#171718;--github-chart-inactive:#202021;--github-chart-min-activity:#0e4429;--github-chart-max-activity:#39d353;--github-chart-label:#d4d4d8;--console-logo:#c6bd86;--shadow-card:0 4px 6px -1px #00000042;--shadow-card-hover:0 10px 15px -3px #00000057;--shadow-media:0 4px 12px #0000004d;--shadow-panel:0px 3px 12px #00000080;--icon-section-filter:brightness(0) saturate(100%) invert(68%) sepia(4%) saturate(260%) hue-rotate(202deg) brightness(94%) contrast(90%);--icon-nav-filter:brightness(0) saturate(100%) invert(83%) sepia(4%) saturate(78%) hue-rotate(202deg) brightness(96%) contrast(92%);--icon-inverse-filter:brightness(0) invert(1);--icon-mono-filter:brightness(0) saturate(100%) invert(83%) sepia(4%) saturate(78%) hue-rotate(202deg) brightness(96%) contrast(92%);--text-body:#b0aeac;--text-primary:#d4d4d8;--text-heading:#d4d4d8;--text-strong:#c4c4c7;--text-secondary:#a1a1aa;--text-muted:#9a9996;--text-subtle:#838382;--text-faint:#656767;--text-section:#838382;--text-placeholder:#838382;--text-nav:#d4d4d8;--text-contact:#b0aeac;--text-google:#d4d4d8;--text-shoutout:#d4d4d8;--text-shoutout-muted:#838382;--text-inverse:#fff;--text-black:#d4d4d8;--text-danger:#f87171;--text-danger-strong:#ff6b6b;--text-success:#4ade80;--text-success-bright:#4ade80;--text-info:#60a5fa;--text-accent-blue:#60a5fad9;--text-overlay:#ffffffdb;--text-overlay-muted:#ffffffad;--text-overlay-faint:#ffffff59;--text-glass-muted:#b0aeaccc;--text-glass-subtle:#b0aeacb3;--text-glass-faint:#b0aeac99;--text-on-media:#ffffffe6;--text-on-media-muted:#ffffffbf;--text-on-media-subtle:#ffffffb3;--text-on-media-disabled:#fff9;--text-live-url-arrow:#fffc;--map-header-bg:#171718e0;--map-control-bg:#202021e6;--map-control-bg-hover:#2a2a2df2;--map-control-divider:#ffffff14;--map-tile-filter:none;--map-attribution-bg:#171718d1;--map-marker-bg:#202021;--map-marker-muted-bg:#2a2a2d;--map-marker-shadow:0 2px 8px #0000008c;--map-popup-bg:#202021;--map-popup-shadow:0 3px 16px #000000b3;--map-cluster-bg:#202021e6;--map-cluster-border:#ffffff1f;--powerbar-backdrop:#17171885;--powerbar-panel-bg:color-mix(in srgb, var(--surface-card) 90%, transparent);--powerbar-input-bg:color-mix(in srgb, var(--surface-muted) 74%, transparent);--powerbar-result-active-bg:color-mix(in srgb, var(--surface-muted) 76%, transparent);--powerbar-result-active-border:var(--surface-border-hover);--powerbar-kbd-bg:var(--surface-muted);--powerbar-kbd-border:var(--surface-border-hover)}html[data-theme=mocha]{--surface-page:#181825;--surface-panel:#181825;--surface-card:#242438;--surface-muted:#313244;--surface-border:#313244;--surface-border-subtle:#2a2b3d;--surface-border-soft:#2a2b3d;--surface-border-hover:#45475a;--scrollbar-thumb:#cdd6f433;--scrollbar-thumb-hover:#cdd6f45c;--github-chart-background:#181825;--projects-card-background:#181825;--github-chart-inactive:#313244;--github-chart-min-activity:#94e2d5;--github-chart-max-activity:#a6e3a1;--github-chart-label:#cdd6f4;--console-logo:#f9e2af;--shadow-card:0 4px 6px -1px #11111b57;--shadow-card-hover:0 10px 18px -4px #11111b75;--shadow-media:0 4px 12px #11111b61;--shadow-panel:0px 3px 14px #11111b8f;--icon-section-filter:brightness(0) saturate(100%) invert(84%) sepia(9%) saturate(628%) hue-rotate(193deg) brightness(96%) contrast(92%);--icon-nav-filter:brightness(0) saturate(100%) invert(85%) sepia(14%) saturate(758%) hue-rotate(193deg) brightness(97%) contrast(92%);--icon-inverse-filter:brightness(0) invert(1);--icon-mono-filter:brightness(0) saturate(100%) invert(85%) sepia(14%) saturate(758%) hue-rotate(193deg) brightness(97%) contrast(92%);--text-body:#bac2de;--text-primary:#cdd6f4;--text-heading:#cdd6f4;--text-strong:#cdd6f4;--text-secondary:#a6adc8;--text-muted:#9399b2;--text-subtle:#7f849c;--text-faint:#6c7086;--text-section:#9399b2;--text-placeholder:#7f849c;--text-nav:#cdd6f4;--text-contact:#bac2de;--text-google:#cdd6f4;--text-shoutout:#cdd6f4;--text-shoutout-muted:#9399b2;--text-inverse:#fff;--text-black:#cdd6f4;--text-danger:#f38ba8;--text-danger-strong:#eba0ac;--text-success:#a6e3a1;--text-success-bright:#a6e3a1;--text-info:#89b4fa;--text-accent-blue:#89b4fae0;--text-overlay:#cdd6f4e6;--text-overlay-muted:#cdd6f4b3;--text-overlay-faint:#cdd6f461;--text-glass-muted:#bac2ded1;--text-glass-subtle:#bac2deb8;--text-glass-faint:#bac2de9e;--text-on-media:#ffffffeb;--text-on-media-muted:#ffffffc7;--text-on-media-subtle:#ffffffb8;--text-on-media-disabled:#fff9;--text-live-url-arrow:#ffffffd1;--map-header-bg:#1e1e2ee0;--map-control-bg:#313244e6;--map-control-bg-hover:#45475af2;--map-control-divider:#cdd6f41a;--map-tile-filter:sepia(.22) hue-rotate(175deg) saturate(.82) brightness(.9) contrast(.96);--map-attribution-bg:#1e1e2ed1;--map-marker-bg:#313244;--map-marker-muted-bg:#45475a;--map-marker-shadow:0 2px 8px #11111b99;--map-popup-bg:#313244;--map-popup-shadow:0 3px 16px #11111bb8;--map-cluster-bg:#313244e6;--map-cluster-border:#cdd6f429;--powerbar-backdrop:#1e1e2e8a;--powerbar-panel-bg:color-mix(in srgb, var(--surface-card) 90%, transparent);--powerbar-input-bg:color-mix(in srgb, var(--surface-muted) 74%, transparent);--powerbar-result-active-bg:color-mix(in srgb, var(--surface-muted) 76%, transparent);--powerbar-result-active-border:var(--surface-border-hover);--powerbar-kbd-bg:var(--surface-muted);--powerbar-kbd-border:var(--surface-border-hover)}html[data-theme=sakura]{--surface-page:#fff7fa;--surface-panel:#fff1f5;--surface-card:#fff;--surface-muted:#ffe4ec;--surface-border:#fff1f5;--surface-border-subtle:#fbcfe0;--surface-border-soft:#ffe4ec;--surface-border-hover:#f9a8c6;--scrollbar-thumb:#be185d2e;--scrollbar-thumb-hover:#be185d52;--github-chart-background:#fff1f5;--projects-card-background:#fff;--github-chart-inactive:#ffe4ec;--github-chart-min-activity:#f9a8c6;--github-chart-max-activity:#be185d;--github-chart-label:#4a2332;--console-logo:#b4536c;--shadow-card:0 4px 6px -1px #be185d14;--shadow-card-hover:0 10px 15px -3px #be185d24;--shadow-media:0 4px 12px #be185d1a;--shadow-panel:0px 3px 10px #be185d29;--icon-section-filter:brightness(0) saturate(100%) invert(43%) sepia(25%) saturate(848%) hue-rotate(294deg) brightness(92%) contrast(88%);--icon-nav-filter:brightness(0) saturate(100%) invert(25%) sepia(18%) saturate(1248%) hue-rotate(295deg) brightness(90%) contrast(88%);--icon-inverse-filter:brightness(0) invert(1);--icon-mono-filter:brightness(0) saturate(100%) invert(24%) sepia(18%) saturate(1248%) hue-rotate(295deg) brightness(90%) contrast(88%);--text-body:#5f3b49;--text-primary:#4a2332;--text-heading:#4a2332;--text-strong:#6b2d45;--text-secondary:#7c4658;--text-muted:#9f6478;--text-subtle:#bf8ba0;--text-faint:#e8b8c8;--text-section:#9f6478;--text-placeholder:#a66b7e;--text-nav:#4a2332;--text-contact:#5f3b49;--text-google:#4a2332;--text-shoutout:#4a2332;--text-shoutout-muted:#9f6478;--text-inverse:#fff;--text-black:#4a2332;--text-danger:#dc2626;--text-danger-strong:#b91c1c;--text-success:#15803d;--text-success-bright:#16a34a;--text-info:#be185d;--text-accent-blue:#be185dcc;--text-overlay:#4a2332d6;--text-overlay-muted:#4a2332a3;--text-overlay-faint:#4a233257;--text-glass-muted:#5f3b49cc;--text-glass-subtle:#5f3b49b3;--text-glass-faint:#5f3b4999;--text-on-media:#ffffffeb;--text-on-media-muted:#ffffffc7;--text-on-media-subtle:#ffffffb8;--text-on-media-disabled:#fff9;--text-live-url-arrow:#ffffffd1;--map-header-bg:#fff1f5e0;--map-control-bg:#fff1f5e6;--map-control-bg-hover:#ffe4ecf2;--map-control-divider:#be185d1a;--map-tile-filter:sepia(.18) hue-rotate(295deg) saturate(.82) brightness(1.02) contrast(.96);--map-attribution-bg:#fff1f5d1;--map-marker-bg:#fff;--map-marker-muted-bg:#ffe4ec;--map-marker-shadow:0 2px 8px #be185d3d;--map-popup-bg:#fff;--map-popup-shadow:0 3px 14px #be185d47;--map-cluster-bg:#fff1f5e6;--map-cluster-border:#be185d29;--powerbar-backdrop:#fff7fa85;--powerbar-panel-bg:color-mix(in srgb, var(--surface-card) 90%, transparent);--powerbar-input-bg:color-mix(in srgb, var(--surface-muted) 70%, transparent);--powerbar-result-active-bg:color-mix(in srgb, var(--surface-muted) 76%, transparent);--powerbar-result-active-border:var(--surface-border-hover);--powerbar-kbd-bg:var(--surface-muted);--powerbar-kbd-border:var(--surface-border-subtle)}html[data-theme=evergreen]{--surface-page:#0c1411;--surface-panel:#0c1411;--surface-card:#14211b;--surface-muted:#1d3027;--surface-border:#1d3027;--surface-border-subtle:#192a22;--surface-border-soft:#192a22;--surface-border-hover:#2f4a3d;--scrollbar-thumb:#d8f3e333;--scrollbar-thumb-hover:#d8f3e35c;--github-chart-background:#0c1411;--projects-card-background:#0c1411;--github-chart-inactive:#1d3027;--github-chart-min-activity:#4da66d;--github-chart-max-activity:#b7f6b5;--github-chart-label:#d8f3e3;--console-logo:#d0d88c;--shadow-card:0 4px 6px -1px #040c0857;--shadow-card-hover:0 10px 18px -4px #040c0875;--shadow-media:0 4px 12px #040c0861;--shadow-panel:0px 3px 14px #040c088f;--icon-section-filter:brightness(0) saturate(100%) invert(88%) sepia(13%) saturate(391%) hue-rotate(88deg) brightness(94%) contrast(92%);--icon-nav-filter:brightness(0) saturate(100%) invert(89%) sepia(16%) saturate(429%) hue-rotate(88deg) brightness(96%) contrast(92%);--icon-inverse-filter:brightness(0) invert(1);--icon-mono-filter:brightness(0) saturate(100%) invert(89%) sepia(16%) saturate(429%) hue-rotate(88deg) brightness(96%) contrast(92%);--text-body:#bdd3c6;--text-primary:#d8f3e3;--text-heading:#d8f3e3;--text-strong:#d8f3e3;--text-secondary:#9fb8aa;--text-muted:#81998d;--text-subtle:#697f74;--text-faint:#50645b;--text-section:#81998d;--text-placeholder:#697f74;--text-nav:#d8f3e3;--text-contact:#bdd3c6;--text-google:#d8f3e3;--text-shoutout:#d8f3e3;--text-shoutout-muted:#81998d;--text-inverse:#fff;--text-black:#d8f3e3;--text-danger:#f08c8c;--text-danger-strong:#faa;--text-success:#8fd6a3;--text-success-bright:#8fd6a3;--text-info:#7cc7c1;--text-accent-blue:#7cc7c1e0;--text-overlay:#d8f3e3e6;--text-overlay-muted:#d8f3e3b3;--text-overlay-faint:#d8f3e361;--text-glass-muted:#bdd3c6d1;--text-glass-subtle:#bdd3c6b8;--text-glass-faint:#bdd3c69e;--text-on-media:#ffffffeb;--text-on-media-muted:#ffffffc7;--text-on-media-subtle:#ffffffb8;--text-on-media-disabled:#fff9;--text-live-url-arrow:#ffffffd1;--map-header-bg:#101814e0;--map-control-bg:#1d3027e6;--map-control-bg-hover:#2f4a3df2;--map-control-divider:#d8f3e31a;--map-tile-filter:sepia(.3) hue-rotate(75deg) saturate(.72) brightness(.86) contrast(.98);--map-attribution-bg:#101814d1;--map-marker-bg:#1d3027;--map-marker-muted-bg:#2f4a3d;--map-marker-shadow:0 2px 8px #040c0899;--map-popup-bg:#1d3027;--map-popup-shadow:0 3px 16px #040c08b8;--map-cluster-bg:#1d3027e6;--map-cluster-border:#d8f3e329;--powerbar-backdrop:#1018148a;--powerbar-panel-bg:color-mix(in srgb, var(--surface-card) 90%, transparent);--powerbar-input-bg:color-mix(in srgb, var(--surface-muted) 74%, transparent);--powerbar-result-active-bg:color-mix(in srgb, var(--surface-muted) 76%, transparent);--powerbar-result-active-border:var(--surface-border-hover);--powerbar-kbd-bg:var(--surface-muted);--powerbar-kbd-border:var(--surface-border-hover)}html[data-theme=ink]{--surface-page:#050507;--surface-panel:#050507;--surface-card:#101014;--surface-muted:#18181b;--surface-border:#18181b;--surface-border-subtle:#131316;--surface-border-soft:#131316;--surface-border-hover:#27272a;--scrollbar-thumb:#f4f4f533;--scrollbar-thumb-hover:#f4f4f55c;--github-chart-background:#050507;--projects-card-background:#050507;--github-chart-inactive:#18181b;--github-chart-min-activity:#60a5fa;--github-chart-max-activity:#e0f2fe;--github-chart-label:#f4f4f5;--console-logo:#e4e4e7;--shadow-card:0 4px 6px -1px #0000006b;--shadow-card-hover:0 10px 18px -4px #00000094;--shadow-media:0 4px 12px #00000075;--shadow-panel:0px 3px 14px #000000ad;--icon-section-filter:brightness(0) saturate(100%) invert(95%) sepia(3%) saturate(252%) hue-rotate(202deg) brightness(97%) contrast(94%);--icon-nav-filter:brightness(0) saturate(100%) invert(96%) sepia(2%) saturate(188%) hue-rotate(202deg) brightness(98%) contrast(94%);--icon-inverse-filter:brightness(0) invert(1);--icon-mono-filter:brightness(0) saturate(100%) invert(96%) sepia(2%) saturate(188%) hue-rotate(202deg) brightness(98%) contrast(94%);--text-body:#d4d4d8;--text-primary:#f4f4f5;--text-heading:#f4f4f5;--text-strong:#f4f4f5;--text-secondary:#c4c4c7;--text-muted:#a1a1aa;--text-subtle:#71717a;--text-faint:#52525b;--text-section:#a1a1aa;--text-placeholder:#71717a;--text-nav:#f4f4f5;--text-contact:#d4d4d8;--text-google:#f4f4f5;--text-shoutout:#f4f4f5;--text-shoutout-muted:#a1a1aa;--text-inverse:#fff;--text-black:#f4f4f5;--text-danger:#fb7185;--text-danger-strong:#fda4af;--text-success:#86efac;--text-success-bright:#86efac;--text-info:#93c5fd;--text-accent-blue:#93c5fde6;--text-overlay:#f4f4f5eb;--text-overlay-muted:#f4f4f5b8;--text-overlay-faint:#f4f4f561;--text-glass-muted:#d4d4d8d1;--text-glass-subtle:#d4d4d8b8;--text-glass-faint:#d4d4d89e;--text-on-media:#ffffffeb;--text-on-media-muted:#ffffffc7;--text-on-media-subtle:#ffffffb8;--text-on-media-disabled:#fff9;--text-live-url-arrow:#ffffffd1;--map-header-bg:#09090be0;--map-control-bg:#18181be6;--map-control-bg-hover:#27272af2;--map-control-divider:#f4f4f51a;--map-tile-filter:grayscale(.9) brightness(.78) contrast(1.08);--map-attribution-bg:#09090bd1;--map-marker-bg:#18181b;--map-marker-muted-bg:#27272a;--map-marker-shadow:0 2px 8px #000000ad;--map-popup-bg:#18181b;--map-popup-shadow:0 3px 16px #000000c7;--map-cluster-bg:#18181be6;--map-cluster-border:#f4f4f529;--powerbar-backdrop:#09090b8f;--powerbar-panel-bg:color-mix(in srgb, var(--surface-card) 90%, transparent);--powerbar-input-bg:color-mix(in srgb, var(--surface-muted) 74%, transparent);--powerbar-result-active-bg:color-mix(in srgb, var(--surface-muted) 76%, transparent);--powerbar-result-active-border:var(--surface-border-hover);--powerbar-kbd-bg:var(--surface-muted);--powerbar-kbd-border:var(--surface-border-hover)}html[data-theme=neo-city-6]{--map-control-bg-hover:#1d2e5df2;--text-danger:#e8d087;--powerbar-result-active-border:var(--surface-border-hover);--text-black:#d8dce9;--github-chart-label:#d8dce9;--text-secondary:#97a0ba;--map-attribution-bg:#0a0f1fd1;--text-shoutout-muted:#606a85;--text-overlay-faint:#d8dce959;--text-placeholder:#606a85;--github-chart-inactive:#152142;--map-marker-bg:#152142;--text-glass-faint:#b4bccf99;--text-shoutout:#d8dce9;--text-on-media-muted:#ffffffbf;--powerbar-panel-bg:color-mix(in srgb, var(--surface-card) 90%, transparent);--text-success-bright:#df86cd;--text-glass-subtle:#b4bccfb3;--map-tile-filter:sepia(.26) hue-rotate(224deg) saturate(.78) brightness(.88) contrast(.98);--powerbar-result-active-bg:color-mix(in srgb, var(--surface-muted) 76%, transparent);--text-inverse:#fff;--shadow-panel:0px 3px 12px #06080e80;--surface-border-subtle:#152142;--surface-muted:#152142;--projects-card-background:#0a0f1f;--github-chart-min-activity:#e085a2;--icon-section-filter:brightness(0) saturate(100%) invert(84%) sepia(9%) saturate(628%) hue-rotate(193deg) brightness(96%) contrast(92%);--text-heading:#d8dce9;--shadow-card-hover:0 10px 15px -3px #06080e57;--text-on-media-disabled:#fff9;--map-cluster-bg:#152142e6;--text-nav:#d8dce9;--text-live-url-arrow:#fffc;--text-danger-strong:#f1dea7;--powerbar-kbd-bg:var(--surface-muted);--shadow-card:0 4px 6px -1px #06080e42;--text-google:#d8dce9;--powerbar-kbd-border:var(--surface-border-hover);--map-control-divider:#d8dce914;--text-on-media-subtle:#ffffffb3;--icon-mono-filter:brightness(0) saturate(100%) invert(85%) sepia(14%) saturate(758%) hue-rotate(193deg) brightness(97%) contrast(92%);--text-info:#e085a2;--text-strong:#d8dce9;--map-header-bg:#0a0f1fe0;--scrollbar-thumb-hover:#d8dce957;--text-section:#606a85;--map-control-bg:#152142e6;--text-contact:#b4bccf;--text-body:#b4bccf;--scrollbar-thumb:#d8dce92e;--text-overlay-muted:#d8dce9ad;--map-cluster-border:#d8dce91f;--icon-inverse-filter:brightness(0) invert(1);--text-accent-blue:#e085a2d9;--text-subtle:#606a85;--powerbar-backdrop:#0a0f1f85;--map-marker-muted-bg:#1d2e5d;--map-popup-bg:#152142;--text-glass-muted:#b4bccfcc;--text-overlay:#d8dce9db;--map-popup-shadow:0 3px 16px #06080eb3;--surface-border-hover:#1d2e5d;--github-chart-background:#0a0f1f;--surface-panel:#0a0f1f;--github-chart-max-activity:#df86cd;--surface-border-soft:#152142;--icon-nav-filter:brightness(0) saturate(100%) invert(85%) sepia(14%) saturate(758%) hue-rotate(193deg) brightness(97%) contrast(92%);--map-marker-shadow:0 2px 8px #06080e8c;--text-success:#df86cd;--powerbar-input-bg:color-mix(in srgb, var(--surface-muted) 74%, transparent);--console-logo:#e8b69c;--surface-border:#152142;--text-on-media:#ffffffe6;--shadow-media:0 4px 12px #06080e4d;--surface-page:#0a0f1f;--text-faint:#4b5163;--text-primary:#d8dce9;--surface-card:#0a0f1f;--text-muted:#7883a1}html[data-theme=dark]{--scrollbar-thumb-active:#ffffff52;--scrollbar-thumb:#ffffff1a;--scrollbar-thumb-hover:#ffffff38;--icon-nav-active:var(--text-danger);--confetti-red:#fb7185;--confetti-orange:#fb923c;--confetti-yellow:#facc15;--confetti-green:#4ade80;--confetti-blue:#60a5fa;--confetti-purple:#a78bfa;--powerbar-panel-bg:color-mix(in srgb, var(--surface-card) 88%, transparent);--powerbar-input-bg:color-mix(in srgb, var(--surface-muted) 84%, transparent);--powerbar-matrix-green:#4ade80;--powerbar-matrix-scrim:color-mix(in srgb, var(--surface-page) 10%, transparent);--weather-bar-fill:color-mix(in srgb, var(--text-muted) 72%, var(--surface-muted));--weather-bar-active-fill:color-mix(in srgb, var(--text-primary) 72%, var(--surface-muted));--weather-bar-floor:color-mix(in srgb, var(--surface-page) 86%, transparent);--weather-bar-shadow:color-mix(in srgb, var(--text-muted) 20%, transparent);--weather-rain-overlay-bg:linear-gradient(to bottom, color-mix(in srgb, var(--text-info) 34%, transparent), color-mix(in srgb, var(--surface-card) 18%, transparent));--weather-rain-overlay-border:color-mix(in srgb, var(--text-info) 34%, var(--surface-border-hover));--weather-rain-drop:color-mix(in srgb, var(--text-info) 46%, transparent);--powerbar-icon-glyph:#fff;--powerbar-icon-light:#fff;--powerbar-icon-highlight:#ffffff94;--powerbar-icon-rim-light:#fffc;--powerbar-icon-rim-mid:#fff3;--powerbar-icon-top-shade:#071024;--powerbar-icon-emboss-light:#ffffff75;--powerbar-icon-emboss-shade:#00000085;--powerbar-icon-edge-shade:#0000006b;--powerbar-icon-drop-shadow:#00000080;--powerbar-icon-glyph-shadow:#00000080;--powerbar-icon-glyph-emboss:#ffffff9e}html.theme-switching *,html.theme-switching :before,html.theme-switching :after{transition:none!important}html:hover,html:focus-within,body:hover,body:focus-within,:hover,:focus,:focus-within,:active{scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}html::-webkit-scrollbar{width:var(--scrollbar-size);height:var(--scrollbar-size)}body::-webkit-scrollbar{width:var(--scrollbar-size);height:var(--scrollbar-size)}::-webkit-scrollbar{width:var(--scrollbar-size);height:var(--scrollbar-size)}html::-webkit-scrollbar-track{background:var(--scrollbar-track)}body::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-track{background:var(--scrollbar-track)}html::-webkit-scrollbar-thumb{border-radius:var(--scrollbar-radius);background:padding-box padding-box;border:2px solid #0000;transition:background-color .18s}body::-webkit-scrollbar-thumb{border-radius:var(--scrollbar-radius);background:padding-box padding-box;border:2px solid #0000;transition:background-color .18s}::-webkit-scrollbar-thumb{border-radius:var(--scrollbar-radius);background:padding-box padding-box;border:2px solid #0000;transition:background-color .18s}html:hover::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb)}html:focus-within::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb)}body:hover::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb)}body:focus-within::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb)}:hover::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb)}:focus::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb)}:focus-within::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb)}:active::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb)}html::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}body::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}html::-webkit-scrollbar-thumb:active{background:var(--scrollbar-thumb-active)}body::-webkit-scrollbar-thumb:active{background:var(--scrollbar-thumb-active)}::-webkit-scrollbar-thumb:active{background:var(--scrollbar-thumb-active)}html[data-color-scheme=dark] body{background-color:var(--surface-page);color:var(--text-body)}.linux-console-link{color:inherit;font-weight:inherit;cursor:pointer;text-decoration:none}.linux-console-link:hover{color:var(--text-accent-blue)}.powerbar-chat-message-content>:first-child{margin-top:0}.powerbar-matrix-overlay{--powerbar-matrix-color:var(--powerbar-matrix-green);pointer-events:none;background:linear-gradient(to bottom,var(--powerbar-matrix-scrim),transparent 22%),radial-gradient(circle at top,color-mix(in srgb,var(--powerbar-matrix-color) 9%,transparent),transparent 52%);opacity:0;animation:3s ease-out forwards powerbarMatrixOverlay;position:fixed;inset:0;overflow:hidden}.powerbar-matrix-column{color:var(--powerbar-matrix-color);white-space:pre;text-shadow:0 0 6px color-mix(in srgb,var(--powerbar-matrix-color) 24%,transparent);font-family:IBM Plex Mono,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-weight:500;line-height:1;animation-name:powerbarMatrixFall;animation-timing-function:linear;animation-fill-mode:both;display:block;position:absolute;top:-48vh}.powerbar-icon-tile{width:46px;height:46px;color:var(--powerbar-icon-glyph);background:linear-gradient(to bottom,color-mix(in srgb,var(--icon-gradient-start,var(--surface-muted)) 18%,var(--powerbar-icon-top-shade)) 0%,color-mix(in srgb,var(--icon-gradient-start,var(--surface-muted)) 52%,var(--powerbar-icon-top-shade)) 28%,color-mix(in srgb,var(--icon-gradient-start,var(--surface-muted)) 50%,var(--icon-gradient-end,var(--surface-border-hover))) 50%,color-mix(in srgb,var(--icon-gradient-end,var(--surface-border-hover)) 72%,var(--icon-gradient-start,var(--surface-muted))) 72%,var(--icon-gradient-end,var(--surface-border-hover)) 100%) padding-box,linear-gradient(to bottom,color-mix(in srgb,var(--icon-gradient-end,var(--surface-border-hover)) 78%,var(--powerbar-icon-light)),color-mix(in srgb,var(--icon-gradient-end,var(--surface-border-hover)) 62%,var(--icon-gradient-start,var(--surface-muted))),color-mix(in srgb,var(--icon-gradient-start,var(--surface-muted)) 18%,var(--powerbar-icon-top-shade))) border-box;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--powerbar-icon-rim-light) 42%,transparent);border:1px solid #0000;border-radius:14px;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.powerbar-icon-tile:before{content:"";z-index:3;background:radial-gradient(circle,var(--powerbar-icon-highlight) 0 16%,color-mix(in srgb,var(--powerbar-icon-highlight) 44%,transparent) 36%,transparent 72%);opacity:.34;pointer-events:none;border-radius:999px;width:86%;height:62%;position:absolute;top:-44%;left:50%;transform:translate(-50%)}.powerbar-lucide,.powerbar-icon-image{z-index:4;width:30px;height:30px;filter:var(--icon-inverse-filter) drop-shadow(0 3px 3px var(--powerbar-icon-glyph-shadow));flex-shrink:0;display:block;position:relative}.powerbar-lucide{stroke:currentColor;stroke-width:3px}.powerbar-icon-image{object-fit:contain}.powerbar-icon-initial{z-index:4;color:var(--powerbar-icon-glyph);filter:drop-shadow(0 3px 3px var(--powerbar-icon-glyph-shadow));font-size:22px;font-weight:800;line-height:1;position:relative}.powerbar-footer-icon:hover,.powerbar-footer-icon:focus-visible{background-color:var(--text-heading);outline:2px solid var(--surface-border-hover);outline-offset:3px}.powerbar-chat-message-content>:last-child{margin-bottom:0}@keyframes powerbarMatrixOverlay{0%{opacity:0}6%{opacity:1}88%{opacity:1}to{opacity:0}}@keyframes powerbarMatrixFall{0%{transform:translateY(-22vh)}to{transform:translateY(148vh)}}.powerbar-chat-message-content :where(p,ul,ol,blockquote,pre){margin:8px 0}.powerbar-chat-message-content :where(ul,ol){padding-left:18px}.powerbar-chat-message-content strong{color:var(--text-primary);font-weight:760}.powerbar-chat-message-content blockquote{border-left:2px solid var(--surface-border-hover);color:var(--text-secondary);padding:1px 0 1px 9px}.powerbar-chat-message-content :where(code,pre){background:var(--surface-muted);border:1px solid var(--surface-border-subtle);color:var(--text-primary);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace}app-powerbar .powerbar-panel.is-weather-view{width:min(680px,100vw - 40px);height:auto;max-height:min(540px,calc(100vh - var(--powerbar-panel-top) - 24px))}.powerbar-chat-message-content code{border-radius:5px;padding:1px 4px;font-size:.92em}.powerbar-chat-message-content pre{white-space:pre;border-radius:8px;padding:9px;overflow-x:auto}.powerbar-chat-message-content pre code{background:0 0;border:0;padding:0;display:block}.powerbar-chat-gif-media{border-radius:12px;width:100%;max-width:100%;height:auto;margin:10px 0;display:block}.powerbar-chat-message-link{color:var(--text-accent-blue);text-underline-offset:3px;font-weight:700;text-decoration-line:underline;text-decoration-color:currentColor;text-decoration-thickness:1px}.powerbar-chat-message-link:hover,.powerbar-chat-message-link:focus-visible{color:var(--text-info)}.powerbar-chat-quoted-mention{background:color-mix(in srgb, currentcolor 18%, transparent);box-decoration-break:clone;box-shadow:color-mix(in srgb, currentcolor 24%, transparent) 0px 0px 0px 1px;color:inherit;border-radius:5px;padding:1px 4px;font-weight:750}html[data-color-scheme=dark] .navigation,html[data-color-scheme=dark] .about-me,html[data-color-scheme=dark] .blog,html[data-color-scheme=dark] .stuff-using,html[data-color-scheme=dark] .github,html[data-color-scheme=dark] .message-board,html[data-color-scheme=dark] .map-container,html[data-color-scheme=dark] .shoutouts-container,html[data-color-scheme=dark] .link-card,html[data-color-scheme=dark] app-gallery,html[data-color-scheme=dark] .lastfm{background-color:var(--surface-panel);border-color:var(--surface-border);box-shadow:var(--shadow-panel);color:var(--text-body)}html[data-color-scheme=dark] .small-blog-card,html[data-color-scheme=dark] .message-item,html[data-color-scheme=dark] .shoutout-card{background:var(--surface-card);border-color:var(--surface-border);color:var(--text-body)}html[data-color-scheme=dark] .nav-link,html[data-color-scheme=dark] .intro-heading,html[data-color-scheme=dark] .project-name,html[data-color-scheme=dark] .blog-title,html[data-color-scheme=dark] .small-title,html[data-color-scheme=dark] .post-title,html[data-color-scheme=dark] .highlight-link{color:var(--text-primary)}html[data-color-scheme=dark] .intro-description,html[data-color-scheme=dark] .description,html[data-color-scheme=dark] .small-desc,html[data-color-scheme=dark] .location-text,html[data-color-scheme=dark] .fact-item,html[data-color-scheme=dark] .category-title,html[data-color-scheme=dark] .section-title,html[data-color-scheme=dark] .global-view-more,html[data-color-scheme=dark] .global-read-more,html[data-color-scheme=dark] .see-more-link{color:var(--text-secondary)}html[data-color-scheme=dark] .tech-badge{background-color:var(--surface-muted);border-color:var(--surface-border-hover);color:var(--text-body)}html[data-color-scheme=dark] .map-container .section-header{background-color:var(--map-header-bg)}html[data-color-scheme=dark] .username-input-inline::placeholder,html[data-color-scheme=dark] .message-input::placeholder{color:var(--text-placeholder)}.page-navigation{--nav-top-breakout:var(--site-nav-top-breakout);width:var(--homepage-nav-width);height:calc(var(--site-nav-height) - var(--site-nav-top-breakout));max-width:100%;margin-left:auto;margin-right:auto}.page-navigation.is-scroll-following{top:var(--site-nav-top-breakout);z-index:950;position:sticky}::view-transition-group(site-navigation){z-index:1001;animation-duration:.28s;animation-timing-function:cubic-bezier(.2,.8,.2,1)}::view-transition-old(site-navigation),::view-transition-new(site-navigation){height:100%;animation-duration:.28s;animation-timing-function:cubic-bezier(.2,.8,.2,1);overflow:visible}html.shared-title-transitioning .post-header h1,html.shared-title-transitioning .project-header h1{visibility:hidden}@media (prefers-reduced-motion:reduce){::view-transition-group(site-navigation),::view-transition-old(site-navigation),::view-transition-new(site-navigation){animation-duration:1ms}}@media (width<=640px){app-powerbar .powerbar-panel.is-weather-view{width:calc(100vw - 16px);height:auto;max-height:min(620px,calc(100dvh - var(--powerbar-panel-top) - 8px))}}.site-frame .page-navigation{--nav-top-breakout:calc(var(--site-nav-top-breakout) - 4px);z-index:902;position:relative}.site-frame .page-navigation.is-scroll-following{z-index:950;position:sticky}@media (width<=1024px){.page-navigation{width:100%;max-width:100%;height:64px;margin-bottom:28px}.page-navigation.is-scroll-following{top:12px}.site-frame .page-navigation{--nav-top-breakout:var(--site-nav-top-breakout)}}.section-header{align-items:center;gap:8px;padding-bottom:10px;display:flex}.section-title{color:var(--text-section);margin:0;font-size:13px;font-weight:500;line-height:1}.section-icon{width:14px;height:14px;filter:var(--icon-section-filter);flex-shrink:0;display:block;position:relative;top:-2px}svg.lucide,.nav-icon,.theme-icon,.send-icon,.repos-toggle-icon,.carousel-btn svg,.section-icon-github,.location-icon,.stat-icon,.contact-icon,.contact-icon-github,.contact-icon-dajia,.item-logo,.rss-icon{flex-shrink:0;display:block}.chapter-content a,.post-content a{color:var(--text-primary);border-bottom:1px dotted var(--text-primary);font-family:Playfair Display,serif;font-style:italic;text-decoration:none;transition:border-bottom .2s}.chapter-content a:hover,.post-content a:hover{border-bottom:1px solid var(--text-primary)}.chapter-content,.post-content,.chapter-content *,.post-content *{user-select:text}.chapter-content ul:has(>li>input[type=checkbox]),.post-content ul:has(>li>input[type=checkbox]){padding-left:0;list-style:none}.chapter-content li:has(>input[type=checkbox]),.post-content li:has(>input[type=checkbox]){list-style:none}.chapter-content li:has(>input[type=checkbox])::marker,.post-content li:has(>input[type=checkbox])::marker{content:""}.chapter-content li>input[type=checkbox],.post-content li>input[type=checkbox]{margin-right:8px}.read-more-preview{z-index:3;background-color:color-mix(in srgb,var(--surface-card) 88%,transparent);backdrop-filter:blur(4px);border:1px solid var(--surface-border-subtle);box-shadow:var(--shadow-card);white-space:nowrap;text-overflow:ellipsis;border-radius:30px;align-items:center;gap:7px;max-width:300px;padding:6px 12px 6px 16px;text-decoration:none;transition:background-color .1s,border-color .1s,box-shadow .1s;display:inline-flex;position:absolute;bottom:20px;left:20px;overflow:hidden}.read-more-preview:hover{background-color:color-mix(in srgb,var(--surface-card) 96%,transparent);border-color:var(--surface-border-hover);box-shadow:var(--shadow-card-hover)}.read-more-preview .url-text{color:var(--text-muted);margin:0;font-family:Figtree,sans-serif;font-size:13px;font-weight:500;line-height:1}.read-more-arrow{width:16px;height:16px;color:var(--text-muted);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.read-more-arrow svg{width:100%;height:100%}.detail-footer{justify-content:space-between;align-items:center;gap:16px;margin-top:auto;padding-top:16px;display:flex}.detail-see-more{flex-shrink:0;margin-bottom:-2px;margin-right:-2px;position:static}.scroll-top-button{right:max(20px,calc((100vw - var(--homepage-nav-width)) / 2 + 206px));bottom:var(--scroll-top-bottom,28px);z-index:1000;border:1px solid var(--surface-border-subtle);background-color:color-mix(in srgb,var(--surface-card) 88%,transparent);width:44px;height:44px;color:var(--text-muted);box-shadow:var(--shadow-card);backdrop-filter:blur(4px);cursor:pointer;opacity:0;pointer-events:none;border-radius:30px;justify-content:center;align-items:center;transition:opacity .16s,transform .16s,color .16s,border-color .16s,box-shadow .16s;display:flex;position:fixed;transform:translateY(8px)}.scroll-top-button.visible{opacity:1;pointer-events:auto;transform:translateY(0)}.scroll-top-button:hover{color:var(--text-heading);border-color:var(--surface-border-hover);box-shadow:var(--shadow-card-hover)}.scroll-top-button:focus-visible{outline:2px solid var(--surface-border-hover);outline-offset:3px}.scroll-top-icon{stroke:currentColor;fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.ai-mention-highlight{background:color-mix(in srgb,var(--text-warning,var(--text-heading)) 36%,transparent);box-shadow:0 0 0 2px color-mix(in srgb,var(--text-warning,var(--text-heading)) 18%,transparent);color:var(--text-primary);border-radius:3px;padding:0 2px}@media (width<=900px){.detail-footer{flex-direction:column-reverse;align-items:flex-end;gap:12px}.scroll-top-button{bottom:18px}}:root{--homepage-nav-width:min(calc(53.6585vw - 41.528px), calc(100vw - 40px));--site-nav-height:61px;--site-nav-top-breakout:20px;--surface-page:#f9fafb;--surface-panel:#f9fafb;--surface-card:#fff;--surface-muted:#f3f4f6;--surface-border:#fff;--surface-border-subtle:#e5e7eb;--surface-border-soft:#f0f0f0;--surface-border-hover:#d1d5db;--scrollbar-size:8px;--scrollbar-radius:999px;--scrollbar-track:transparent;--scrollbar-thumb-active:#00000047;--scrollbar-thumb:#00000014;--scrollbar-thumb-hover:#0000002e;--github-chart-background:#f9fafb;--projects-card-background:#fff;--github-chart-inactive:#ebedf0;--github-chart-min-activity:#9be9a8;--github-chart-max-activity:#216e39;--github-chart-label:#24292f;--console-logo:#6f6749;--shadow-card:0 4px 6px -1px #0000000d;--shadow-card-hover:0 10px 15px -3px #0000001a;--shadow-media:0 4px 12px #00000014;--shadow-panel:0px 3px 8px #48484833;--icon-section-filter:invert(53%) sepia(0%) saturate(0%) hue-rotate(173deg) brightness(91%) contrast(88%);--icon-nav-filter:brightness(0) saturate(100%) invert(27%) sepia(0%) saturate(0%) hue-rotate(200deg) brightness(95%) contrast(90%);--icon-nav-active:var(--text-danger);--icon-inverse-filter:brightness(0) invert(1);--icon-mono-filter:brightness(0);--text-body:#434346;--text-primary:#111827;--text-heading:#1f2937;--text-strong:#374151;--text-secondary:#4b5563;--text-muted:#6b7280;--text-subtle:#9ca3af;--text-faint:#d1d5db;--text-section:#868686;--text-placeholder:#838382;--text-nav:#454545;--text-contact:#474747;--text-google:#202124;--text-shoutout:#333;--text-shoutout-muted:#888;--text-inverse:#fff;--text-black:#000;--text-danger:#ef4444;--text-danger-strong:#d22424;--text-success:#15803d;--text-success-bright:#22c55e;--text-info:#3b82f6;--text-accent-blue:#007affcc;--text-overlay:#000c;--text-overlay-muted:#0009;--text-overlay-faint:#0000004d;--text-glass-muted:#868686cc;--text-glass-subtle:#868686b3;--text-glass-faint:#86868699;--text-on-media:#ffffffe6;--text-on-media-muted:#ffffffbf;--text-on-media-subtle:#ffffffb3;--text-on-media-disabled:#fff9;--text-live-url-arrow:#fffc;--map-header-bg:#ffffffd9;--map-control-bg:#ffffffd9;--map-control-bg-hover:#fffffff2;--map-control-divider:#0000000d;--map-tile-filter:none;--map-attribution-bg:#ffffffb3;--map-marker-bg:#fff;--map-marker-muted-bg:#eee;--map-marker-shadow:0 2px 6px #0000004d;--map-popup-bg:#fff;--map-popup-shadow:0 3px 14px #0006;--map-cluster-bg:#ffffffd9;--map-cluster-border:#ffffff80;--powerbar-backdrop:#f9fafb80;--powerbar-panel-bg:color-mix(in srgb, var(--surface-card) 88%, transparent);--powerbar-input-bg:color-mix(in srgb, var(--surface-muted) 84%, transparent);--powerbar-result-active-bg:color-mix(in srgb, var(--surface-muted) 78%, transparent);--powerbar-result-active-border:var(--surface-border-hover);--powerbar-kbd-bg:var(--surface-muted);--powerbar-kbd-border:var(--surface-border-subtle);--powerbar-matrix-green:#22c55e;--powerbar-matrix-scrim:color-mix(in srgb, var(--surface-page) 16%, transparent);--weather-bar-fill:color-mix(in srgb, var(--text-muted) 76%, var(--surface-muted));--weather-bar-active-fill:color-mix(in srgb, var(--text-primary) 70%, var(--surface-muted));--weather-bar-floor:color-mix(in srgb, var(--surface-page) 88%, transparent);--weather-bar-shadow:color-mix(in srgb, var(--text-muted) 24%, transparent);--weather-rain-overlay-bg:linear-gradient(to bottom, color-mix(in srgb, var(--text-info) 34%, transparent), color-mix(in srgb, var(--surface-card) 20%, transparent));--weather-rain-overlay-border:color-mix(in srgb, var(--text-info) 42%, var(--surface-border-subtle));--weather-rain-drop:color-mix(in srgb, var(--text-info) 42%, transparent);--powerbar-icon-glyph:#fff;--powerbar-icon-light:#fff;--powerbar-icon-highlight:#ffffffad;--powerbar-icon-rim-light:#ffffffeb;--powerbar-icon-rim-mid:#ffffff47;--powerbar-icon-top-shade:#0a1430;--powerbar-icon-emboss-light:#ffffff94;--powerbar-icon-emboss-shade:#0206176b;--powerbar-icon-edge-shade:#02061757;--powerbar-icon-drop-shadow:#02061761;--powerbar-icon-glyph-shadow:#0206176b;--powerbar-icon-glyph-emboss:#ffffffb3;--confetti-red:#ef4444;--confetti-orange:#f97316;--confetti-yellow:#eab308;--confetti-green:#22c55e;--confetti-blue:#3b82f6;--confetti-purple:#8b5cf6}*{box-sizing:border-box}body{background-color:var(--surface-page);color:var(--text-body);user-select:text;margin:0;font-family:Figtree,sans-serif}html{scrollbar-gutter:stable}html,body,*{scrollbar-width:thin;scrollbar-color:transparent var(--scrollbar-track)}body:hover,body:focus-within,:hover,:focus,:focus-within,:active{scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}body::-webkit-scrollbar{width:var(--scrollbar-size);height:var(--scrollbar-size)}::-webkit-scrollbar{width:var(--scrollbar-size);height:var(--scrollbar-size)}body::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-track{background:var(--scrollbar-track)}body::-webkit-scrollbar-thumb{border-radius:var(--scrollbar-radius);background:padding-box padding-box;border:2px solid #0000;transition:background-color .18s}::-webkit-scrollbar-thumb{border-radius:var(--scrollbar-radius);background:padding-box padding-box;border:2px solid #0000;transition:background-color .18s}body:hover::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb)}body:focus-within::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb)}:hover::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb)}:focus::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb)}:focus-within::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb)}:active::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb)}body::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}body::-webkit-scrollbar-thumb:active{background:var(--scrollbar-thumb-active)}::-webkit-scrollbar-thumb:active{background:var(--scrollbar-thumb-active)}.app-shell[_ngcontent-ng-c1138580453]{--site-frame-color:var(--surface-border);--site-frame-bg-color:var(--surface-page);--site-frame-shadow:inset 0px 2px 6px color-mix(in srgb, var(--text-primary) 12%, transparent)}.site-frame[_ngcontent-ng-c1138580453]:before{content:"";z-index:900;pointer-events:none;border:16px solid var(--site-frame-bg-color);border-radius:8px;position:fixed;inset:0}.site-frame[_ngcontent-ng-c1138580453]:after{content:"";z-index:901;pointer-events:none;border:5px solid var(--site-frame-color);box-shadow:var(--site-frame-shadow);border-radius:8px;position:fixed;inset:4px}@media (width<=1024px){.site-frame[_ngcontent-ng-c1138580453]:before,.site-frame[_ngcontent-ng-c1138580453]:after{content:none}}.mobile-powerbar-button[_ngcontent-ng-c1138580453]{display:none}@media (width<=900px){.mobile-powerbar-button[_ngcontent-ng-c1138580453]{z-index:1000;border:1px solid var(--surface-border-subtle);background-color:color-mix(in srgb,var(--surface-card) 88%,transparent);width:44px;height:44px;color:var(--text-muted);box-shadow:var(--shadow-card);backdrop-filter:blur(4px);cursor:pointer;border-radius:30px;justify-content:center;align-items:center;transition:color .16s,border-color .16s,box-shadow .16s,background-color .16s;display:flex;position:fixed;bottom:18px;right:18px}.mobile-powerbar-button[_ngcontent-ng-c1138580453]:hover{color:var(--text-heading);border-color:var(--surface-border-hover);box-shadow:var(--shadow-card-hover)}.mobile-powerbar-button[_ngcontent-ng-c1138580453]:focus-visible{outline:2px solid var(--surface-border-hover);outline-offset:3px}.mobile-powerbar-icon[_ngcontent-ng-c1138580453]{width:20px;height:20px;filter:var(--icon-nav-filter);display:block}}.main-content[_ngcontent-ng-c2150733359]{gap:20px;width:100%;max-width:100vw;height:100dvh;padding:20px;display:flex;position:relative;overflow:hidden}.bento-grid[_ngcontent-ng-c2150733359]{align-items:stretch;gap:20px;width:100%;height:100%;display:flex;overflow:visible}.column[_ngcontent-ng-c2150733359]{flex-direction:column;gap:20px;min-width:0;height:100%;display:flex;overflow:visible}.column-0[_ngcontent-ng-c2150733359]{flex:1.1}.column-1[_ngcontent-ng-c2150733359]{flex:1;grid-area:2/1/4/2}.home-grid[_ngcontent-ng-c2150733359]{flex:3;grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) minmax(0,.8fr);gap:20px;min-width:0;height:100%;display:grid;overflow:visible}.columns-top[_ngcontent-ng-c2150733359]{grid-area:2/2/3/3;width:100%;min-height:0;display:flex;overflow:visible}.column-2[_ngcontent-ng-c2150733359]{flex:1.2}.column-3[_ngcontent-ng-c2150733359]{flex:.8;grid-area:1/3/3/4}.column[_ngcontent-ng-c2150733359]>[_ngcontent-ng-c2150733359]{z-index:1;position:relative}.app-gallery-music-row[_ngcontent-ng-c2150733359]{flex-shrink:0;width:100%;height:22vh}.column-2[_ngcontent-ng-c2150733359]>.app-map[_ngcontent-ng-c2150733359]{flex:none;min-height:0;margin-top:-5px}.app-link-row[_ngcontent-ng-c2150733359]{flex-shrink:0;grid-area:3/2/4/4;width:100%;overflow:visible}.app-about-me[_ngcontent-ng-c2150733359]{flex:40 0;min-height:0}.app-blog[_ngcontent-ng-c2150733359]{flex:24;min-height:0}.app-stuff-using[_ngcontent-ng-c2150733359]{flex:36 0}.app-ascii-art{flex:30 0;min-height:0}.app-shoutouts[_ngcontent-ng-c2150733359]{flex:15 0}.app-github[_ngcontent-ng-c2150733359]{flex:15.2 0}@media (width>=1440px){.column-2[_ngcontent-ng-c2150733359]>.app-map[_ngcontent-ng-c2150733359]{flex:none}.app-github[_ngcontent-ng-c2150733359]{flex:11.2}}.app-projects[_ngcontent-ng-c2150733359]{flex:1;min-height:0}.app-discord-component[_ngcontent-ng-c2150733359]{flex:none}.app-navigation[_ngcontent-ng-c2150733359]{--nav-top-breakout:calc(var(--site-nav-top-breakout) - 4px);--nav-height:var(--site-nav-height);z-index:902;grid-area:1/1/2/3;min-width:0;position:relative}.app-message-board[_ngcontent-ng-c2150733359]{flex:80;min-height:0}@media (width>=1025px){[_nghost-ng-c2150733359]{height:100dvh;display:block;overflow:hidden}.main-content[_ngcontent-ng-c2150733359]{z-index:902;transform-origin:0 0;width:111.111%;max-width:none;height:111.111dvh;transform:scale(.9)}}@media (width<=1600px),(height<=900px){.main-content[_ngcontent-ng-c2150733359]{max-width:none;height:auto;min-height:100dvh;padding:12px;display:block;overflow:visible}.bento-grid[_ngcontent-ng-c2150733359]{grid-template-columns:minmax(300px,.82fr) minmax(0,2fr);align-items:start;gap:16px;height:auto;display:grid}.column[_ngcontent-ng-c2150733359]{gap:16px}.column-0[_ngcontent-ng-c2150733359]{height:auto}.column-0[_ngcontent-ng-c2150733359]>.app-about-me[_ngcontent-ng-c2150733359]{min-height:280px}.column-0[_ngcontent-ng-c2150733359]>.app-blog[_ngcontent-ng-c2150733359]{min-height:190px}.column-0[_ngcontent-ng-c2150733359]>.app-stuff-using[_ngcontent-ng-c2150733359]{min-height:500px}.column-0>.app-ascii-art{min-height:260px}.home-grid[_ngcontent-ng-c2150733359]{grid-template-rows:auto auto auto auto;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:16px;height:auto;display:grid}.app-navigation[_ngcontent-ng-c2150733359]{grid-area:1/1/auto/-1;position:sticky;top:12px}.column-1[_ngcontent-ng-c2150733359]{grid-area:2/1;height:clamp(760px,100dvh - 104px,980px)}.columns-top[_ngcontent-ng-c2150733359]{grid-area:2/2;height:clamp(760px,100dvh - 104px,980px)}.app-gallery-music-row[_ngcontent-ng-c2150733359]{height:clamp(220px,28dvh,300px)}.column-2[_ngcontent-ng-c2150733359]>.app-map[_ngcontent-ng-c2150733359]{min-height:280px}.app-github[_ngcontent-ng-c2150733359]{flex:0 0 210px}.column-3[_ngcontent-ng-c2150733359]{flex-direction:row;grid-area:3/1/auto/-1;height:clamp(380px,48dvh,480px)}.column-3[_ngcontent-ng-c2150733359]>.app-shoutouts[_ngcontent-ng-c2150733359]{flex:0 38%;min-width:280px}.column-3[_ngcontent-ng-c2150733359]>.app-message-board[_ngcontent-ng-c2150733359]{flex:62%;min-width:0}.app-link-row[_ngcontent-ng-c2150733359]{grid-area:4/1/auto/-1}}@media (width>=1025px) and (width<=1180px){.bento-grid[_ngcontent-ng-c2150733359]{grid-template-columns:minmax(0,1fr)}.column-0[_ngcontent-ng-c2150733359]{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.column-0[_ngcontent-ng-c2150733359]>.app-about-me[_ngcontent-ng-c2150733359],.column-0[_ngcontent-ng-c2150733359]>.app-blog[_ngcontent-ng-c2150733359]{min-height:280px}.column-0[_ngcontent-ng-c2150733359]>.app-stuff-using[_ngcontent-ng-c2150733359]{grid-column:1/-1;min-height:420px}.column-0>.app-ascii-art{min-height:240px}}@media (width<=1024px){.main-content[_ngcontent-ng-c2150733359]{height:auto;min-height:100dvh;padding:calc(84px + env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));flex-direction:column;display:block;overflow-y:auto}.app-navigation[_ngcontent-ng-c2150733359]{z-index:1100;width:auto;position:fixed;top:0;left:0;right:0}.bento-grid[_ngcontent-ng-c2150733359]{flex-direction:column;align-items:stretch;gap:20px;height:auto;display:flex}.column[_ngcontent-ng-c2150733359],.home-grid[_ngcontent-ng-c2150733359],.columns-top[_ngcontent-ng-c2150733359]{flex-direction:column;gap:20px;width:100%;height:auto;display:flex}.home-grid[_ngcontent-ng-c2150733359]{border:none;border-image:}.columns-top[_ngcontent-ng-c2150733359]{gap:20px}.app-about-me[_ngcontent-ng-c2150733359],.app-projects[_ngcontent-ng-c2150733359],.app-blog[_ngcontent-ng-c2150733359],.app-link-row[_ngcontent-ng-c2150733359],.app-stuff-using[_ngcontent-ng-c2150733359],.app-github[_ngcontent-ng-c2150733359],.app-message-board[_ngcontent-ng-c2150733359],.app-shoutouts[_ngcontent-ng-c2150733359],.app-ascii-art{flex:none;width:100%;height:auto;min-height:0}.app-about-me[_ngcontent-ng-c2150733359]{order:1}.app-ascii-art{aspect-ratio:4/5;order:3;max-height:480px}.app-projects[_ngcontent-ng-c2150733359]{order:2}.app-discord-component[_ngcontent-ng-c2150733359]{order:3}.app-link-row[_ngcontent-ng-c2150733359]{order:4;margin-top:20px;margin-bottom:20px}.app-blog[_ngcontent-ng-c2150733359]{order:5}.app-github[_ngcontent-ng-c2150733359]{order:6}.app-shoutouts[_ngcontent-ng-c2150733359]{order:7}.app-message-board[_ngcontent-ng-c2150733359]{order:8;height:min(520px,70vh);max-height:min(520px,70vh)}.column-0[_ngcontent-ng-c2150733359],.column-1[_ngcontent-ng-c2150733359],.column-2[_ngcontent-ng-c2150733359],.column-3[_ngcontent-ng-c2150733359],.home-grid[_ngcontent-ng-c2150733359],.columns-top[_ngcontent-ng-c2150733359]{flex:none;display:contents}.app-gallery-music-row[_ngcontent-ng-c2150733359]{display:none!important}.app-stuff-using[_ngcontent-ng-c2150733359]{order:2}.app-map[_ngcontent-ng-c2150733359]{order:7;width:100%;height:320px}.app-about-notes{order:5}.x-card{order:3}.lastfm{order:9}}.about-me[_ngcontent-ng-c1237143707]{background-color:var(--surface-panel);border:5px solid var(--surface-border);height:100%;min-height:0;box-shadow:var(--shadow-panel);border-radius:8px;flex-direction:column;flex-shrink:0;justify-content:flex-start;align-items:flex-start;padding:20px;display:flex;position:relative;overflow:hidden}.ascii-art[_ngcontent-ng-c1237143707]{z-index:1;pointer-events:none;width:65%;height:auto;position:absolute;bottom:0;right:0}.intro-section[_ngcontent-ng-c1237143707]{flex-direction:column;justify-content:flex-start;align-items:flex-start;width:100%;display:flex}.content-wrapper[_ngcontent-ng-c1237143707]{flex-direction:row;align-items:flex-start;gap:20px;width:100%;margin-top:-15px;display:flex}.text-content[_ngcontent-ng-c1237143707]{flex-direction:column;flex:1;justify-content:flex-start;align-items:flex-start;display:flex}.intro-heading[_ngcontent-ng-c1237143707]{color:var(--text-heading);margin:0 0 4px;font-size:28px;font-weight:600}.intro-description[_ngcontent-ng-c1237143707]{color:var(--text-muted);margin:0;font-size:16px;line-height:1.5}.location-container[_ngcontent-ng-c1237143707]{align-items:center;gap:6px;margin-top:10px;display:flex}.location-icon[_ngcontent-ng-c1237143707]{opacity:.6;width:18px;height:18px;filter:var(--icon-mono-filter)}.location-text[_ngcontent-ng-c1237143707]{color:var(--text-muted);font-size:14px;font-weight:500}.highlight-text[_ngcontent-ng-c1237143707],.highlight-link[_ngcontent-ng-c1237143707]{font-family:Playfair Display,serif;font-style:italic;font-weight:500}.highlight-text[_ngcontent-ng-c1237143707]{color:var(--text-danger-strong);font-size:44px}.highlight-link[_ngcontent-ng-c1237143707]{color:var(--text-heading);text-decoration:none}.highlight-link[_ngcontent-ng-c1237143707]:hover{text-decoration:underline}.facts-section[_ngcontent-ng-c1237143707]{width:100%;margin-top:20px}.facts-list[_ngcontent-ng-c1237143707]{margin-top:4px;margin-bottom:0;padding-left:15px}.fact-item[_ngcontent-ng-c1237143707]{margin-bottom:5px}@media (width<=1024px){.about-me[_ngcontent-ng-c1237143707]{height:auto;min-height:auto}.ascii-art[_ngcontent-ng-c1237143707]{opacity:.3;width:150px}.highlight-text[_ngcontent-ng-c1237143707]{font-size:32px}}[_nghost-ng-c2720805437]{flex-direction:column;flex:1;min-height:0;display:flex}.blog[_ngcontent-ng-c2720805437]{background-color:var(--surface-panel);border:5px solid var(--surface-border);height:auto;box-shadow:var(--shadow-panel);border-radius:8px;flex-direction:column;flex:1 0;padding:20px;display:flex;position:relative;overflow:hidden}.section-header[_ngcontent-ng-c2720805437]{z-index:1;position:relative}.content-container[_ngcontent-ng-c2720805437]{scrollbar-width:none;flex-direction:column;flex:1;gap:6px;margin-top:4px;padding-bottom:12px;display:flex;overflow-y:auto}.content-container[_ngcontent-ng-c2720805437]::-webkit-scrollbar{display:none}.carousel-controls[_ngcontent-ng-c2720805437]{opacity:0;z-index:3;justify-content:center;transition:opacity .3s;display:flex;position:absolute;bottom:20px;right:20px}.blog[_ngcontent-ng-c2720805437]:hover .carousel-controls[_ngcontent-ng-c2720805437]{opacity:1}.carousel-pill[_ngcontent-ng-c2720805437]{background-color:var(--surface-card);box-sizing:border-box;border:1px solid var(--surface-border-soft);border-radius:20px;justify-content:center;align-items:center;gap:6px;min-height:29px;padding:6px 12px;display:flex}.carousel-btn[_ngcontent-ng-c2720805437]{cursor:pointer;opacity:0;width:18px;height:18px;color:var(--text-secondary);background:0 0;border:none;border-image:;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:opacity .3s,color .2s;display:flex}.blog[_ngcontent-ng-c2720805437]:hover .carousel-btn[_ngcontent-ng-c2720805437]{opacity:1}.carousel-btn[_ngcontent-ng-c2720805437]:hover{color:var(--text-primary)}.carousel-btn[_ngcontent-ng-c2720805437] svg[_ngcontent-ng-c2720805437]{width:10px;height:10px}.carousel-dots[_ngcontent-ng-c2720805437]{justify-content:center;gap:8px;display:flex}.dot[_ngcontent-ng-c2720805437]{background-color:var(--surface-muted);cursor:pointer;border-radius:50%;width:8px;height:8px;transition:background-color .2s}.dot.active[_ngcontent-ng-c2720805437]{background-color:var(--text-secondary)}.dot[_ngcontent-ng-c2720805437]:hover{background-color:var(--text-muted)}.main-blog[_ngcontent-ng-c2720805437]{color:inherit;background:0 0;border:0;border-radius:0;flex:1;min-height:0;padding:0;text-decoration:none;display:flex}.main-info[_ngcontent-ng-c2720805437]{z-index:1;flex-direction:column;flex:1;justify-content:flex-start;min-width:0;display:flex;position:relative}.main-blog.has-post-image[_ngcontent-ng-c2720805437] .main-info[_ngcontent-ng-c2720805437]{padding-right:min(100% - 180px,210px)}.main-blog.slide-next[_ngcontent-ng-c2720805437] .main-info[_ngcontent-ng-c2720805437],.main-blog.slide-next[_ngcontent-ng-c2720805437] .post-image[_ngcontent-ng-c2720805437]{animation:.42s cubic-bezier(.22,1,.36,1) _ngcontent-ng-c2720805437_blog-slide-from-right}.main-blog.slide-prev[_ngcontent-ng-c2720805437] .main-info[_ngcontent-ng-c2720805437],.main-blog.slide-prev[_ngcontent-ng-c2720805437] .post-image[_ngcontent-ng-c2720805437]{animation:.42s cubic-bezier(.22,1,.36,1) _ngcontent-ng-c2720805437_blog-slide-from-left}.main-header[_ngcontent-ng-c2720805437]{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.blog-title[_ngcontent-ng-c2720805437]{color:var(--text-heading);margin:0;font-family:Playfair Display,serif;font-size:22px;font-style:italic;font-weight:600}.blog-footer[_ngcontent-ng-c2720805437]{color:var(--text-subtle);align-items:flex-start;gap:5px;margin-top:4px;font-size:11px;font-weight:500;display:flex}.read-more-preview[_ngcontent-ng-c2720805437]{z-index:3;background-color:color-mix(in srgb,var(--surface-card) 88%,transparent);backdrop-filter:blur(4px);border:1px solid var(--surface-border-subtle);box-shadow:var(--shadow-card);white-space:nowrap;text-overflow:ellipsis;border-radius:30px;align-items:center;gap:7px;max-width:300px;padding:6px 12px 6px 16px;text-decoration:none;transition:background-color .1s,border-color .1s,box-shadow .1s;display:inline-flex;position:absolute;bottom:20px;left:20px;overflow:hidden}.read-more-preview[_ngcontent-ng-c2720805437]:hover{background-color:color-mix(in srgb,var(--surface-card) 96%,transparent);border-color:var(--surface-border-hover);box-shadow:var(--shadow-card-hover)}.read-more-preview[_ngcontent-ng-c2720805437] .url-text[_ngcontent-ng-c2720805437]{color:var(--text-muted);margin:0;font-family:Figtree,sans-serif;font-size:13px;font-weight:500;line-height:1}.read-more-arrow[_ngcontent-ng-c2720805437]{width:16px;height:16px;color:var(--text-muted);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.read-more-arrow[_ngcontent-ng-c2720805437] svg[_ngcontent-ng-c2720805437]{width:100%;height:100%}.post-image[_ngcontent-ng-c2720805437]{aspect-ratio:1;z-index:0;border-radius:0;position:absolute;top:-2px;bottom:-2px;right:-2px;overflow:hidden}.post-image[_ngcontent-ng-c2720805437] img[_ngcontent-ng-c2720805437]{object-fit:cover;width:100%;height:100%;display:block}@keyframes _ngcontent-ng-c2720805437_blog-slide-from-right{0%{opacity:0;transform:translate(28px)}to{opacity:1;transform:translate(0)}}@keyframes _ngcontent-ng-c2720805437_blog-slide-from-left{0%{opacity:0;transform:translate(-28px)}to{opacity:1;transform:translate(0)}}@media (width<=480px){.carousel-controls[_ngcontent-ng-c2720805437],.carousel-btn[_ngcontent-ng-c2720805437]{opacity:1}.main-blog[_ngcontent-ng-c2720805437]{flex-direction:column}.main-blog.has-post-image[_ngcontent-ng-c2720805437] .main-info[_ngcontent-ng-c2720805437]{padding-right:0}.post-image[_ngcontent-ng-c2720805437]{aspect-ratio:1;border-radius:8px;width:100%;margin-top:15px;position:static}.post-image[_ngcontent-ng-c2720805437] img[_ngcontent-ng-c2720805437]{border-radius:8px}}.stuff-using[_ngcontent-ng-c41154766]{background-color:var(--surface-panel);border:5px solid var(--surface-border);height:100%;min-height:0;box-shadow:var(--shadow-panel);scrollbar-width:none;border-radius:8px;flex-direction:column;flex-shrink:0;justify-content:flex-start;align-items:flex-start;padding:20px;display:flex;overflow:auto}.stuff-using[_ngcontent-ng-c41154766]::-webkit-scrollbar{display:none}.category[_ngcontent-ng-c41154766]{width:100%;margin-top:8px}.section-header.small[_ngcontent-ng-c41154766]{align-items:center;gap:8px;margin-bottom:6px;display:flex}.stuff-list[_ngcontent-ng-c41154766]{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;margin:0;padding:0;list-style:none;display:grid}.stuff-item[_ngcontent-ng-c41154766]{color:var(--text-primary);align-items:center;gap:12px;font-size:14px;display:flex}.stuff-item-link[_ngcontent-ng-c41154766],.stuff-item-link[_ngcontent-ng-c41154766]:visited{min-width:0;color:var(--text-primary);align-items:center;gap:10px;text-decoration:none;display:flex}.stuff-item-link[_ngcontent-ng-c41154766]:hover .item-label[_ngcontent-ng-c41154766],.stuff-item-link[_ngcontent-ng-c41154766]:focus-visible .item-label[_ngcontent-ng-c41154766]{color:var(--text-primary)}.stuff-item-link[_ngcontent-ng-c41154766]:focus-visible{outline:2px solid var(--surface-border-hover);outline-offset:3px;border-radius:6px}.linux-stuff-link[_ngcontent-ng-c41154766] .item-label[_ngcontent-ng-c41154766]{text-decoration:none}.item-logo[_ngcontent-ng-c41154766]{object-fit:contain;width:24px;height:24px;filter:var(--icon-mono-filter);display:inline-block}.item-logo-simple[_ngcontent-ng-c41154766]{fill:#000;filter:var(--icon-mono-filter)}@media (width<=420px){.stuff-list[_ngcontent-ng-c41154766]{grid-template-columns:1fr}}.category[_ngcontent-ng-c41154766]+.category[_ngcontent-ng-c41154766]{margin-top:20px}@media (width<=1024px){.stuff-using[_ngcontent-ng-c41154766]{height:auto;min-height:250px;max-height:400px;padding:15px}}[_nghost-ng-c791777690]{--nav-ease:cubic-bezier(.22, 1, .36, 1);--nav-height:var(--site-nav-height,61px);height:var(--nav-height);margin-top:calc(-1 * var(--nav-top-breakout,0px));view-transition-name:site-navigation;contain:layout;margin-inline:-13px;padding-inline:13px;display:block}.navigation[_ngcontent-ng-c791777690]{background-color:var(--surface-panel);border:5px solid var(--surface-border);height:100%;box-shadow:none;border-top:0;border-radius:0 0 8px 8px;flex-shrink:0;justify-content:center;align-items:center;padding:0 20px;display:flex;position:relative;overflow:visible}html[data-color-scheme=dark][_nghost-ng-c791777690] .navigation[_ngcontent-ng-c791777690],html[data-color-scheme=dark] [_nghost-ng-c791777690] .navigation[_ngcontent-ng-c791777690]{box-shadow:none}.navigation[_ngcontent-ng-c791777690]:before,.navigation[_ngcontent-ng-c791777690]:after{content:"";top:calc(var(--nav-top-breakout,0px) - 16px);background:radial-gradient(circle at 0 100%,transparent 8px,var(--surface-border) 8px 13px,var(--surface-panel) 13px);pointer-events:none;width:13px;height:13px;position:absolute}.navigation[_ngcontent-ng-c791777690]:before{left:-13px}.navigation[_ngcontent-ng-c791777690]:after{right:-13px;transform:scaleX(-1)}.nav-links[_ngcontent-ng-c791777690]{top:calc(var(--nav-top-breakout,0px) - 3px);grid-template-columns:repeat(5,minmax(0,1fr)) auto;align-content:center;place-items:center stretch;column-gap:14px;width:auto;min-width:0;height:auto;display:grid;position:absolute;bottom:8px;left:20px;right:0}.nav-column[_ngcontent-ng-c791777690]{min-width:0;display:contents}.nav-actions[_ngcontent-ng-c791777690]{border-left:1px solid var(--surface-border-subtle);justify-content:center;align-self:stretch;align-items:center;gap:10px;width:180px;min-width:0;margin-left:10px;display:flex}.nav-link[_ngcontent-ng-c791777690]{height:100%;min-height:0;color:var(--text-nav);white-space:nowrap;justify-content:center;align-self:center;align-items:center;gap:14px;font-size:16px;line-height:1;text-decoration:none;transition:opacity .2s;display:flex}.nav-link[_ngcontent-ng-c791777690]:hover{opacity:.7}.nav-icon[_ngcontent-ng-c791777690]{width:24px;height:24px;color:var(--text-nav);background-color:currentColor;flex:0 0 24px;transition:transform .8s cubic-bezier(.34,1.56,.64,1);display:block;mask-position:50%;mask-size:contain;mask-repeat:no-repeat}.nav-icon-home[_ngcontent-ng-c791777690]{mask-image:url(/icons/person.png)}.nav-icon-projects[_ngcontent-ng-c791777690]{mask-image:url(/icons/projects1.svg)}.nav-icon-blog[_ngcontent-ng-c791777690]{mask-image:url(/icons/blog.svg)}.nav-icon-gallery[_ngcontent-ng-c791777690]{mask-image:url(/icons/gallery.svg)}.nav-icon-lastfm[_ngcontent-ng-c791777690]{mask-image:url(/icons/vinyl.png)}.nav-link.is-active[_ngcontent-ng-c791777690] .nav-icon[_ngcontent-ng-c791777690],.nav-link.is-active[_ngcontent-ng-c791777690] .nav-text[_ngcontent-ng-c791777690]{color:var(--icon-nav-active)}.nav-link[_ngcontent-ng-c791777690]:hover .nav-icon[_ngcontent-ng-c791777690]{animation:.8s cubic-bezier(.34,1.56,.64,1) _ngcontent-ng-c791777690_iconRotate}.nav-text[_ngcontent-ng-c791777690]{font-weight:500}.theme-toggle[_ngcontent-ng-c791777690],.powerbar-toggle[_ngcontent-ng-c791777690]{width:40px;height:100%;min-height:0;color:var(--text-nav);cursor:pointer;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;line-height:inherit;font-optical-sizing:inherit;font-size-adjust:inherit;font-kerning:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-language-override:inherit;white-space:nowrap;background:0 0;border:none;border-image:;justify-content:center;align-self:center;align-items:center;gap:10px;padding:0;font-family:inherit;font-size:16px;transition:opacity .2s;display:flex}.theme-toggle[_ngcontent-ng-c791777690]:hover,.powerbar-toggle[_ngcontent-ng-c791777690]:hover{opacity:.7}.theme-toggle[_ngcontent-ng-c791777690]:focus-visible,.powerbar-toggle[_ngcontent-ng-c791777690]:focus-visible{outline:2px solid var(--text-nav);outline-offset:3px}.theme-icon[_ngcontent-ng-c791777690],.powerbar-icon[_ngcontent-ng-c791777690]{width:24px;height:24px;filter:var(--icon-nav-filter);flex:0 0 24px;transition:transform .8s cubic-bezier(.34,1.56,.64,1);display:block}.theme-toggle[_ngcontent-ng-c791777690]:hover .theme-icon[_ngcontent-ng-c791777690],.powerbar-toggle[_ngcontent-ng-c791777690]:hover .powerbar-icon[_ngcontent-ng-c791777690]{animation:.8s cubic-bezier(.34,1.56,.64,1) _ngcontent-ng-c791777690_iconRotate}@keyframes _ngcontent-ng-c791777690_iconRotate{0%{transform:rotate(0)}40%{transform:rotate(-25deg)}to{transform:rotate(0)}}@media (prefers-reduced-motion:reduce){.nav-link[_ngcontent-ng-c791777690]:hover .nav-icon[_ngcontent-ng-c791777690],.theme-toggle[_ngcontent-ng-c791777690]:hover .theme-icon[_ngcontent-ng-c791777690],.powerbar-toggle[_ngcontent-ng-c791777690]:hover .powerbar-icon[_ngcontent-ng-c791777690]{animation:auto none}}@media (width<=1200px){.nav-links[_ngcontent-ng-c791777690]{column-gap:16px}}@media (width<=1024px){.app-navigation[_nghost-ng-c791777690]{--nav-height:64px;height:calc(var(--nav-height) + env(safe-area-inset-top));padding-top:env(safe-area-inset-top);contain:layout style;margin:0;padding-inline:0}.navigation[_ngcontent-ng-c791777690]{background-color:var(--surface-card);border:1px solid var(--surface-border-subtle);height:100%;box-shadow:none;border-top-width:0;border-radius:0;padding:6px;overflow:hidden}.navigation[_ngcontent-ng-c791777690]:before,.navigation[_ngcontent-ng-c791777690]:after{content:none}.nav-links[_ngcontent-ng-c791777690]{grid-template-rows:1fr;grid-template-columns:repeat(5,minmax(0,1fr)) minmax(84px,.9fr);place-items:stretch stretch;gap:6px;width:100%;height:100%;display:grid;position:static}.nav-actions[_ngcontent-ng-c791777690]{align-self:stretch;gap:6px;width:auto;margin-left:6px;padding-left:8px}.nav-link[_ngcontent-ng-c791777690],.theme-toggle[_ngcontent-ng-c791777690],.powerbar-toggle[_ngcontent-ng-c791777690]{height:100%;color:var(--text-secondary);border-radius:6px;flex-direction:column;gap:4px;min-width:0;padding:7px 4px 6px;font-size:11px;line-height:1}.theme-toggle[_ngcontent-ng-c791777690],.powerbar-toggle[_ngcontent-ng-c791777690]{flex:1;width:auto;min-width:0}.nav-link[_ngcontent-ng-c791777690]:hover,.theme-toggle[_ngcontent-ng-c791777690]:hover,.powerbar-toggle[_ngcontent-ng-c791777690]:hover,.nav-link.is-active[_ngcontent-ng-c791777690]{background-color:var(--surface-muted);color:var(--text-primary);opacity:1}.nav-icon[_ngcontent-ng-c791777690],.theme-icon[_ngcontent-ng-c791777690],.powerbar-icon[_ngcontent-ng-c791777690]{flex-basis:20px;width:20px;height:20px}.nav-text[_ngcontent-ng-c791777690]{text-align:center;text-overflow:ellipsis;white-space:nowrap;width:100%;overflow:hidden}}@media (width<=380px){.nav-link[_ngcontent-ng-c791777690],.theme-toggle[_ngcontent-ng-c791777690],.powerbar-toggle[_ngcontent-ng-c791777690]{font-size:10px}.nav-icon[_ngcontent-ng-c791777690],.theme-icon[_ngcontent-ng-c791777690],.powerbar-icon[_ngcontent-ng-c791777690]{flex-basis:18px;width:18px;height:18px}}@media (width<=370px){.nav-text[_ngcontent-ng-c791777690]{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}}[_nghost-ng-c3515322307]{flex-direction:column;flex:1;min-height:0;display:flex}.projects[_ngcontent-ng-c3515322307]{background-color:var(--surface-panel);border:5px solid var(--surface-border);height:auto;box-shadow:var(--shadow-panel);border-radius:8px;flex-direction:column;flex:1 0;margin-bottom:5px;padding:20px 20px 0;display:flex;overflow:hidden}.view-more-container[_ngcontent-ng-c3515322307]{justify-content:flex-end;width:100%;margin-top:10px;margin-bottom:15px;display:flex}.global-view-more[_ngcontent-ng-c3515322307]{color:var(--text-muted);font-size:12px;font-weight:600;text-decoration:none;transition:color .2s}.global-view-more[_ngcontent-ng-c3515322307]:hover{color:var(--text-primary)}.content-container[_ngcontent-ng-c3515322307]{scrollbar-width:none;flex-direction:column;flex:1;gap:10px;margin-top:10px;display:flex;overflow-y:auto}.content-container[_ngcontent-ng-c3515322307]::-webkit-scrollbar{display:none}.main-project[_ngcontent-ng-c3515322307]{color:inherit;flex-direction:row;gap:20px;min-height:160px;margin-bottom:10px;padding:8px 0 14px;text-decoration:none;display:flex}.separator[_ngcontent-ng-c3515322307]{background-color:var(--surface-border-subtle);width:100%;height:1px;margin-bottom:15px}.main-info[_ngcontent-ng-c3515322307]{flex-direction:column;flex:1;justify-content:space-between;display:flex}.main-header[_ngcontent-ng-c3515322307]{flex-direction:column;align-items:flex-start;margin-bottom:10px;display:flex}.project-name[_ngcontent-ng-c3515322307]{color:var(--text-heading);margin:0;font-family:Playfair Display,serif;font-size:24px;font-style:italic;font-weight:600}.timeline[_ngcontent-ng-c3515322307]{color:var(--text-subtle);margin-top:4px;font-size:12px;font-weight:500;display:block}.description[_ngcontent-ng-c3515322307]{color:var(--text-secondary);-webkit-line-clamp:4;-webkit-box-orient:vertical;margin:0 0 12px;font-size:13px;line-height:1.5;display:-webkit-box;overflow:hidden}.main-image-wrapper[_ngcontent-ng-c3515322307]{background:0 0;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:140px;height:140px;margin-left:10px;display:flex;overflow:hidden}.project-image[_ngcontent-ng-c3515322307]{object-fit:contain;width:100%;height:100%}.tech-stack[_ngcontent-ng-c3515322307]{flex-wrap:wrap;gap:8px;display:flex}.main-project[_ngcontent-ng-c3515322307] .tech-stack[_ngcontent-ng-c3515322307]{max-height:44px;overflow:hidden}.tech-badge[_ngcontent-ng-c3515322307]{background-color:var(--surface-panel);border:1px solid var(--surface-border-subtle);color:var(--text-muted);white-space:nowrap;border-radius:20px;align-items:center;gap:6px;padding:2px 10px;font-size:10px;font-weight:600;line-height:1;display:inline-flex}.tech-badge-icon[_ngcontent-ng-c3515322307]{width:12px;height:12px;color:var(--tech-icon-color,currentColor);fill:currentColor;flex:none;display:block}.tech-badge-image[_ngcontent-ng-c3515322307]{object-fit:contain}html[data-color-scheme=dark][_ngcontent-ng-c3515322307] .tech-badge-icon[_ngcontent-ng-c3515322307]:not(.tech-badge-image){color:color-mix(in srgb,var(--tech-icon-color,currentColor) 68%,var(--text-primary));filter:drop-shadow(0 0 .35px #ffffff47)}html[data-color-scheme=dark][_ngcontent-ng-c3515322307] .tech-badge-image[_ngcontent-ng-c3515322307]{filter:brightness(1.15)}.small-project-card[_ngcontent-ng-c3515322307]{color:inherit;border-bottom:1px solid var(--surface-border-subtle);background:0 0;flex-direction:column;padding:30px 0;text-decoration:none;transition:border-color .2s;display:flex}.small-project-card[_ngcontent-ng-c3515322307]:last-child{border-bottom:none}.small-project-card[_ngcontent-ng-c3515322307]:hover{border-color:var(--surface-border-hover)}.small-header[_ngcontent-ng-c3515322307]{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.small-name[_ngcontent-ng-c3515322307]{color:var(--text-strong);margin:0;font-size:16px;font-weight:600}.small-timeline[_ngcontent-ng-c3515322307]{color:var(--text-subtle);font-size:11px}.small-desc[_ngcontent-ng-c3515322307]{color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0 0 10px;font-size:12px;line-height:1.4;display:-webkit-box;overflow:hidden}@media (width<=768px){.projects[_ngcontent-ng-c3515322307]{height:auto;min-height:500px;padding:15px}.main-project[_ngcontent-ng-c3515322307]{flex-direction:column;align-items:flex-start}.main-header[_ngcontent-ng-c3515322307]{flex-direction:column;align-items:flex-start;gap:4px}.main-image-wrapper[_ngcontent-ng-c3515322307]{width:100%;height:auto;max-height:200px;margin-top:15px;margin-left:0}.main-project[_ngcontent-ng-c3515322307] .tech-stack[_ngcontent-ng-c3515322307]{max-height:none}}[_nghost-ng-c1358294111]{display:block}.discord-card[_ngcontent-ng-c1358294111]{background-color:var(--surface-panel);border:5px solid var(--surface-border);color:var(--text-body);box-shadow:var(--shadow-panel);border-radius:8px;padding:10px 16px 14px;display:block}.section-icon[_ngcontent-ng-c1358294111]{width:14px;height:14px;filter:var(--icon-section-filter)}.profile-main[_ngcontent-ng-c1358294111]{align-items:center;gap:12px;min-width:0;display:flex}.avatar-wrap[_ngcontent-ng-c1358294111]{flex:0 0 56px;width:56px;height:56px;position:relative}.avatar[_ngcontent-ng-c1358294111]{object-fit:cover;background:var(--surface-muted);border:1px solid var(--surface-border-subtle);border-radius:50%;width:100%;height:100%}.status-dot[_ngcontent-ng-c1358294111]{border:2px solid var(--surface-card);background:var(--text-subtle);border-radius:50%;width:14px;height:14px;position:absolute;bottom:0;right:0}.status-dot.online[_ngcontent-ng-c1358294111]{background:#23a55a}.status-dot.idle[_ngcontent-ng-c1358294111]{background:#f0b232}.status-dot.dnd[_ngcontent-ng-c1358294111]{background:#f23f43}.profile-copy[_ngcontent-ng-c1358294111]{flex-direction:column;flex:1;justify-content:center;min-width:0;display:flex}.identity-row[_ngcontent-ng-c1358294111]{align-items:center;gap:8px;min-width:0;display:flex}.display-name[_ngcontent-ng-c1358294111]{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:15px;font-weight:700;line-height:1.25;overflow:hidden}.activity-copy[_ngcontent-ng-c1358294111]{flex-direction:column;justify-content:center;min-width:0;margin-top:0;display:flex}.activity-title[_ngcontent-ng-c1358294111]{color:var(--text-body);text-overflow:ellipsis;white-space:nowrap;font-family:inherit;font-size:13px;line-height:1.35;overflow:hidden}.activity-detail[_ngcontent-ng-c1358294111]{color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:2px;font-size:11px;font-weight:500;line-height:1.3;display:-webkit-box;overflow:hidden}.activity-image-wrap[_ngcontent-ng-c1358294111]{flex:0 0 60px;width:60px;height:60px;position:relative}.activity-image[_ngcontent-ng-c1358294111]{object-fit:cover;border:1px solid var(--surface-border-subtle);border-radius:8px;width:100%;height:100%}.activity-small-image[_ngcontent-ng-c1358294111]{object-fit:cover;background:var(--surface-card);border:2px solid var(--surface-panel);width:22px;height:22px;box-shadow:var(--shadow-card);border-radius:50%;position:absolute;bottom:-4px;right:-4px}@media (width<=480px){.profile-main[_ngcontent-ng-c1358294111]{align-items:center;gap:10px}.avatar-wrap[_ngcontent-ng-c1358294111]{flex-basis:52px;width:52px;height:52px}.activity-image-wrap[_ngcontent-ng-c1358294111]{flex-basis:54px;width:54px;height:54px}.display-name[_ngcontent-ng-c1358294111]{font-size:14px}.activity-title[_ngcontent-ng-c1358294111]{font-size:12px}.activity-detail[_ngcontent-ng-c1358294111]{font-size:11px}}[_nghost-ng-c1185617476]{width:100%;height:100%;display:block}.row-container[_ngcontent-ng-c1185617476]{grid-template-columns:1fr 1fr;gap:20px;width:100%;height:100%;padding-bottom:5px;display:grid}.app-gallery[_ngcontent-ng-c1185617476]{background-color:var(--surface-panel);border:5px solid var(--surface-border);min-width:0;height:100%;box-shadow:var(--shadow-panel);border-radius:8px;overflow:hidden}.app-lastfm[_ngcontent-ng-c1185617476]{background-color:var(--surface-panel);border:5px solid var(--surface-border);min-width:0;height:100%;box-shadow:var(--shadow-panel);border-radius:8px;transition:z-index .3s step-end;position:relative}.app-lastfm[_ngcontent-ng-c1185617476]:hover{z-index:100;transition:z-index .3s step-start}[_nghost-ng-c1575046755]{flex-direction:column;min-height:0;display:flex}.map-container[_ngcontent-ng-c1575046755]{background-color:var(--surface-panel);border:5px solid var(--surface-border);height:auto;box-shadow:var(--shadow-panel);border-radius:8px;flex-direction:column;flex:1;padding:0;display:flex;position:relative;overflow:hidden}.section-header[_ngcontent-ng-c1575046755]{z-index:500;background-color:var(--map-header-bg);backdrop-filter:blur(4px);box-shadow:var(--shadow-card);border-radius:30px;padding:6px 16px;position:absolute;top:15px;left:15px}.map-wrapper[_ngcontent-ng-c1575046755]{flex:1;width:100%;height:100%;margin-top:0;position:relative}#map[_ngcontent-ng-c1575046755]{z-index:1;width:100%;height:100%}[_nghost-ng-c1575046755] .leaflet-tile{filter:var(--map-tile-filter);opacity:1}[_nghost-ng-c1575046755] .image-wrapper img,[_nghost-ng-c1575046755] .card-wrapper img,[_nghost-ng-c1575046755] .popup-image-container img{filter:none}[_nghost-ng-c1575046755] .custom-leaflet-icon{background:0 0;border:none;border-image:}[_nghost-ng-c1575046755] .custom-map-marker{background-color:var(--map-marker-bg);box-shadow:var(--map-marker-shadow);border-radius:3px;flex-direction:column;padding:1.5px;transition:z-index .2s,transform .2s;display:flex;position:absolute;top:0;left:0;transform:translate(-50%,-50%);width:auto!important;height:auto!important}[_nghost-ng-c1575046755] .custom-map-marker:hover{transform:translate(-50%,-50%)scale(1.5);z-index:1000!important}[_nghost-ng-c1575046755] .image-wrapper{background:var(--map-marker-muted-bg);border-radius:1px;line-height:0;display:block;overflow:hidden}[_nghost-ng-c1575046755] .image-wrapper img{object-fit:cover;max-width:60px;display:block;width:auto!important;height:35px!important}[_nghost-ng-c1575046755] .card-hand{width:auto;height:auto;position:relative}[_nghost-ng-c1575046755] .card-wrapper{background-color:var(--map-marker-bg);box-shadow:var(--map-marker-shadow);transform-origin:bottom;border-radius:3px;padding:1.5px;transition:transform .3s cubic-bezier(.175,.885,.32,1.275);position:absolute;top:0;left:0;transform:translate(-50%,-50%)}[_nghost-ng-c1575046755] .cluster-marker .card-wrapper{transform:translate(-50%,-50%) rotate(calc(var(--i) * 2deg - 3deg))}[_nghost-ng-c1575046755] .cluster-marker:hover .card-wrapper{transform:translate(calc(-50% + (var(--i) * 12px - 18px)),-65%) rotate(calc(var(--i) * 10deg - 15deg));z-index:100!important}[_nghost-ng-c1575046755] .card-wrapper img{object-fit:cover;border-radius:1px;max-width:60px;display:block;width:auto!important;height:35px!important}[_nghost-ng-c1575046755] .custom-map-marker.cluster-marker{width:40px;height:40px}[_nghost-ng-c1575046755] .cluster-badge{background-color:var(--map-cluster-bg);backdrop-filter:blur(4px);color:var(--text-body);min-width:14px;height:14px;box-shadow:var(--shadow-card);z-index:20;border:1px solid var(--map-cluster-border);border-radius:8px;justify-content:center;align-items:center;padding:0 4px;font-family:Figtree,sans-serif;font-size:8px;font-weight:700;display:flex;position:absolute;bottom:-22px;left:-18px;transform:translate(0)}[_nghost-ng-c1575046755] .leaflet-bottom.leaflet-right .leaflet-control{margin-bottom:26px;margin-right:15px}[_nghost-ng-c1575046755] .leaflet-bottom.leaflet-left .leaflet-control{margin-bottom:15px;margin-left:15px}[_nghost-ng-c1575046755] .leaflet-bar{box-shadow:var(--shadow-media)!important;border:none!important;border-image:!important;border-radius:20px!important}[_nghost-ng-c1575046755] .leaflet-bar a{backdrop-filter:blur(4px);transition:all .2s;background-color:var(--map-control-bg)!important;color:var(--text-body)!important;border-bottom:1px solid var(--map-control-divider)!important;width:34px!important;height:34px!important;font-size:16px!important;font-weight:500!important;line-height:34px!important}[_nghost-ng-c1575046755] .leaflet-bar a:hover{background-color:var(--map-control-bg-hover)!important;color:var(--text-primary)!important}[_nghost-ng-c1575046755] .leaflet-bar a:first-child{border-top-left-radius:20px!important;border-top-right-radius:20px!important}[_nghost-ng-c1575046755] .leaflet-bar a:last-child{border-bottom:none!important;border-bottom-right-radius:20px!important;border-bottom-left-radius:20px!important}[_nghost-ng-c1575046755] .leaflet-popup-content-wrapper{box-shadow:none;background:0 0;padding:0;overflow:hidden}[_nghost-ng-c1575046755] .leaflet-popup-tip{background:var(--map-popup-bg)}[_nghost-ng-c1575046755] .leaflet-popup-content{margin:0;width:auto!important}[_nghost-ng-c1575046755] .leaflet-control-attribution{backdrop-filter:none;opacity:0;pointer-events:none;box-shadow:none;border-radius:0;transition:opacity .3s;color:var(--text-subtle)!important;background:0 0!important;font-size:9px!important}[_nghost-ng-c1575046755]:hover .leaflet-control-attribution{opacity:1;pointer-events:auto}[_nghost-ng-c1575046755] .leaflet-control-attribution a{text-decoration:none;color:var(--text-muted)!important}[_nghost-ng-c1575046755] .leaflet-control-attribution a:hover{text-decoration:underline}[_nghost-ng-c1575046755] .popup-image-container{background-color:var(--map-popup-bg);box-shadow:var(--map-popup-shadow);border-radius:8px;padding:4px;line-height:0;display:inline-block;position:relative}[_nghost-ng-c1575046755] .popup-image-container img{object-fit:contain;border-radius:6px;width:auto;max-width:350px;height:auto;max-height:300px;display:block}[_nghost-ng-c1575046755] .popup-exif-overlay{backdrop-filter:blur(4px);color:var(--text-inverse);z-index:10;pointer-events:none;background-color:#0009;border-radius:6px;flex-direction:column;gap:2px;max-width:80%;padding:8px 12px;font-family:Figtree,sans-serif;font-size:11px;line-height:1.4;display:flex;position:absolute;top:10px;left:10px}[_nghost-ng-c1575046755] .exif-date{font-size:12px;font-weight:700;line-height:1.2}[_nghost-ng-c1575046755] .exif-camera{opacity:.9;line-height:1.2}[_nghost-ng-c1575046755] .exif-settings{opacity:.8;font-family:monospace;line-height:1.2}.github[_ngcontent-ng-c1395484746]{background-color:var(--surface-panel);border:5px solid var(--surface-border);height:100%;min-height:0;box-shadow:var(--shadow-panel);max-width:100%;color:var(--text-body);border-radius:8px;flex-direction:column;justify-content:flex-start;align-items:flex-start;padding:12px 20px 8px;display:flex}.section-icon-github[_ngcontent-ng-c1395484746]{width:19px;height:19px;filter:var(--icon-section-filter)}.github-contributions[_ngcontent-ng-c1395484746]{flex:1;width:100%;max-width:100%;position:relative;overflow:auto hidden}.github-contributions[_ngcontent-ng-c1395484746] .app-github-contributions-chart[_ngcontent-ng-c1395484746]{width:100%;display:block}.github-contributions[_ngcontent-ng-c1395484746] .contributions-graph[_ngcontent-ng-c1395484746]{border:none;border-image:;width:100%;min-width:850px;height:100%;min-height:130px;overflow:hidden}@media (width<=1024px){.github[_ngcontent-ng-c1395484746]{height:auto;min-height:180px;max-height:none}}.shoutouts-container[_ngcontent-ng-c2182951836]{box-sizing:border-box;border:5px solid var(--surface-border);width:100%;height:100%;min-height:0;box-shadow:var(--shadow-panel);background:var(--surface-panel);border-radius:8px;flex-direction:column;flex-shrink:0;padding:20px 20px 10px;display:flex;position:relative;overflow:hidden}.marquee-wrapper[_ngcontent-ng-c2182951836]{flex-direction:column;gap:10px;display:flex;overflow:hidden;mask-image:linear-gradient(90deg,#0000,#000 10% 90%,#0000)}.marquee-row[_ngcontent-ng-c2182951836]{width:fit-content;display:flex}.marquee-content[_ngcontent-ng-c2182951836]{gap:12px;padding:0 5px;display:flex}.marquee-left[_ngcontent-ng-c2182951836] .marquee-content[_ngcontent-ng-c2182951836]{animation:40s linear infinite _ngcontent-ng-c2182951836_scroll-left}.marquee-right[_ngcontent-ng-c2182951836] .marquee-content[_ngcontent-ng-c2182951836]{animation:45s linear infinite _ngcontent-ng-c2182951836_scroll-right}.marquee-wrapper[_ngcontent-ng-c2182951836]:hover .marquee-content[_ngcontent-ng-c2182951836]{animation-play-state:paused}@keyframes _ngcontent-ng-c2182951836_scroll-left{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes _ngcontent-ng-c2182951836_scroll-right{0%{transform:translate(-50%)}to{transform:translate(0)}}.shoutout-item[_ngcontent-ng-c2182951836]{flex-shrink:0}.shoutout-card[_ngcontent-ng-c2182951836]{color:inherit;background:var(--surface-card);border:1px solid var(--surface-border-soft);border-radius:10px;align-items:center;gap:10px;min-width:80px;padding:6px 12px;text-decoration:none;transition:all .2s;display:flex}.shoutout-card[_ngcontent-ng-c2182951836]:hover{background:var(--surface-muted);border-color:var(--surface-border-hover)}.project-icon[_ngcontent-ng-c2182951836]{flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;display:flex}.project-icon[_ngcontent-ng-c2182951836] img[_ngcontent-ng-c2182951836]{object-fit:contain;filter:grayscale();width:100%;height:100%}.info[_ngcontent-ng-c2182951836]{flex-direction:column;line-height:1.1;display:flex}.project-name[_ngcontent-ng-c2182951836]{color:var(--text-shoutout);font-size:12px;font-weight:600}.friend-name[_ngcontent-ng-c2182951836]{color:var(--text-shoutout-muted);text-transform:uppercase;letter-spacing:.2px;font-size:9px}@media (width<=1024px){.shoutouts-container[_ngcontent-ng-c2182951836]{height:auto;min-height:120px;max-height:160px;padding:15px}}[_nghost-ng-c3258774702]{--message-glass-bg:color-mix(in srgb, var(--surface-card) 78%, transparent);--message-glass-bg-focus:color-mix(in srgb, var(--surface-muted) 84%, transparent);--message-glass-border:color-mix(in srgb, var(--surface-border-hover) 54%, transparent);--message-glass-border-focus:color-mix(in srgb, var(--text-accent-blue) 46%, transparent);--message-username-border:color-mix(in srgb, var(--text-success) 36%, transparent);--message-glass-shadow:var(--shadow-media);--message-glass-shadow-focus:var(--shadow-card-hover);--message-send-bg:color-mix(in srgb, var(--text-accent-blue) 78%, var(--surface-muted));--message-send-bg-hover:color-mix(in srgb, var(--text-accent-blue) 88%, var(--surface-muted));--message-send-bg-active:color-mix(in srgb, var(--text-accent-blue) 66%, var(--surface-muted));--message-send-bg-disabled:color-mix(in srgb, var(--text-accent-blue) 48%, var(--surface-muted));--message-send-border:color-mix(in srgb, var(--surface-border-hover) 42%, transparent);--message-send-shadow:var(--shadow-card);--message-send-shadow-hover:var(--shadow-card-hover);--message-send-shadow-active:var(--shadow-media);--message-send-shadow-disabled:none;flex-direction:column;flex:1;min-height:0;display:flex}.message-board[_ngcontent-ng-c3258774702]{background-color:var(--surface-panel);border:5px solid var(--surface-border);height:100%;box-shadow:var(--shadow-panel);border-radius:8px;flex-direction:column;flex:1 0;padding:20px;display:flex;position:relative;overflow:hidden}.message-board[_ngcontent-ng-c3258774702] .section-header[_ngcontent-ng-c3258774702]{justify-content:space-between;align-items:center;padding-bottom:10px;display:flex}.header-left[_ngcontent-ng-c3258774702]{align-items:center;gap:8px;display:flex}.character-count[_ngcontent-ng-c3258774702]{color:var(--text-glass-faint);font-size:11px;font-weight:500}.messages-display[_ngcontent-ng-c3258774702]{flex:1;min-height:0;margin:10px 0;padding-right:5px;overflow-y:auto}.message-item[_ngcontent-ng-c3258774702]{backdrop-filter:blur(10px);box-sizing:border-box;background:#fff9;border:1px solid #ffffff4d;border-radius:12px;width:100%;margin-bottom:8px;padding:12px;overflow:hidden;box-shadow:0 2px 8px #0000000d}.message-header[_ngcontent-ng-c3258774702]{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.message-author[_ngcontent-ng-c3258774702]{color:var(--text-accent-blue);font-size:12px;font-weight:500}.message-timestamp[_ngcontent-ng-c3258774702]{color:var(--text-glass-muted);font-size:11px}.message-content[_ngcontent-ng-c3258774702]{color:var(--text-overlay);word-break:break-word;overflow-wrap:break-word;white-space:pre-wrap;max-width:100%;font-size:13px;line-height:1.4}.no-messages[_ngcontent-ng-c3258774702]{text-align:center;color:var(--text-glass-subtle);margin-top:40px;font-size:13px;font-style:italic}.input-section[_ngcontent-ng-c3258774702]{flex-direction:column;gap:8px;margin-top:auto;display:flex}.message-bubble.username-mode[_ngcontent-ng-c3258774702]{border-color:var(--message-username-border)}.username-input-inline[_ngcontent-ng-c3258774702]{height:40px;color:var(--text-overlay);caret-color:var(--text-primary);background:0 0;border:none;border-image:;outline:none;flex:1;padding:0;font-family:inherit;font-size:14px}.username-input-inline[_ngcontent-ng-c3258774702]::placeholder{color:var(--text-glass-subtle);font-style:italic}.message-bubble[_ngcontent-ng-c3258774702]{background:var(--message-glass-bg);backdrop-filter:blur(20px);border:1px solid var(--message-glass-border);width:100%;box-shadow:var(--message-glass-shadow);box-sizing:border-box;border-radius:12px;align-items:center;gap:12px;padding:12px 16px;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex}.message-bubble[_ngcontent-ng-c3258774702]:focus-within{background:var(--message-glass-bg-focus);border-color:var(--message-glass-border-focus);box-shadow:var(--message-glass-shadow-focus)}.message-input[_ngcontent-ng-c3258774702]{resize:none;height:40px;color:var(--text-overlay);caret-color:var(--text-primary);background:0 0;border:none;border-image:;outline:none;flex:1;padding:0;font-family:inherit;font-size:14px}.message-input[_ngcontent-ng-c3258774702]::placeholder{color:var(--text-glass-subtle)}.send-button[_ngcontent-ng-c3258774702]{cursor:pointer;border:none;border-image:;border-radius:20px;outline:none;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden}.liquid-glass[_ngcontent-ng-c3258774702]{backdrop-filter:blur(10px);background:var(--message-send-bg);border:1px solid var(--message-send-border);color:var(--text-inverse);box-shadow:var(--message-send-shadow)}.liquid-glass[_ngcontent-ng-c3258774702]:not(:disabled):hover{background:var(--message-send-bg-hover);box-shadow:var(--message-send-shadow-hover)}.liquid-glass[_ngcontent-ng-c3258774702]:not(:disabled):active{background:var(--message-send-bg-active);box-shadow:var(--message-send-shadow-active);transform:scale(.98)}.liquid-glass[_ngcontent-ng-c3258774702]:disabled{opacity:.72;cursor:not-allowed;background:var(--message-send-bg-disabled);color:var(--text-on-media-disabled);box-shadow:var(--message-send-shadow-disabled)}.cooldown-timer[_ngcontent-ng-c3258774702]{color:var(--text-inverse);z-index:1;font-size:13px;font-weight:600}.send-icon[_ngcontent-ng-c3258774702]{width:18px;height:18px;filter:var(--icon-inverse-filter);transition:transform .6s cubic-bezier(.4,0,.2,1)}.anonymous-icon[_ngcontent-ng-c3258774702]{opacity:.9}.liquid-glass[_ngcontent-ng-c3258774702]:not(:disabled):hover .send-icon[_ngcontent-ng-c3258774702]:not(.anonymous-icon){transform:rotate(180deg)}.liquid-glass[_ngcontent-ng-c3258774702]:before{content:"";background:#ffffff4d;border-radius:50%;width:0;height:0;transition:width .3s,height .3s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.liquid-glass[_ngcontent-ng-c3258774702]:active:before{width:60px;height:60px}@media (width<=1024px){[_nghost-ng-c3258774702]{height:min(520px,70vh);max-height:min(520px,70vh)}.message-board[_ngcontent-ng-c3258774702]{height:100%;max-height:inherit;min-height:min(360px,70vh)}.messages-display[_ngcontent-ng-c3258774702]{min-height:120px}}.link-row-container[_ngcontent-ng-c3745898757]{flex-direction:column;gap:15px;width:100%;display:flex}.link-row[_ngcontent-ng-c3745898757]{--link-card-height:78px;--link-card-hover-height:119px;flex-flow:row;justify-content:flex-start;align-items:stretch;gap:12px;width:100%;margin-bottom:0;padding:0;display:flex;overflow:visible}.link-card[_ngcontent-ng-c3745898757]{background-color:var(--surface-panel);border:5px solid var(--surface-border);color:inherit;box-shadow:var(--shadow-panel);min-width:0;height:var(--link-card-height);box-sizing:border-box;border-radius:8px;margin-top:0;margin-bottom:0;text-decoration:none;transition:all .3s cubic-bezier(.4,0,.2,1);display:block;position:relative;overflow:hidden}.link-card[_ngcontent-ng-c3745898757]:first-child{flex:.5 128px}.link-card[_ngcontent-ng-c3745898757]:nth-child(2){flex:.8 90px}.link-card[_ngcontent-ng-c3745898757]:nth-child(3){flex:.5 162px}.link-card[_ngcontent-ng-c3745898757]:nth-child(4){flex:.8 90px}.link-card[_ngcontent-ng-c3745898757]:nth-child(5){flex:.5 129px}.link-card[_ngcontent-ng-c3745898757]:nth-child(6){flex:.5 110px}.link-card[_ngcontent-ng-c3745898757]:hover{box-shadow:var(--shadow-card-hover);height:var(--link-card-hover-height);margin-top:calc(var(--link-card-height) - var(--link-card-hover-height));z-index:10;overflow:visible}.icon-container[_ngcontent-ng-c3745898757]{background:linear-gradient(to bottom,var(--gradient-start),var(--gradient-end)) padding-box,linear-gradient(to bottom,var(--gradient-end),var(--gradient-start)) border-box;z-index:2;border:2px solid #0000;border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;transition:top .3s cubic-bezier(.4,0,.2,1),transform .3s cubic-bezier(.4,0,.2,1);display:flex;position:absolute;top:50%;left:8px;transform:translateY(-50%)}.link-card[_ngcontent-ng-c3745898757]:hover .icon-container[_ngcontent-ng-c3745898757]{top:16px;transform:none}.icon-container[_ngcontent-ng-c3745898757] img[_ngcontent-ng-c3745898757]{object-fit:contain;width:24px;height:24px;filter:var(--icon-inverse-filter)}.description[_ngcontent-ng-c3745898757]{opacity:0;visibility:hidden;color:var(--text-muted);white-space:normal;z-index:1;font-size:11px;font-weight:500;line-height:1.2;transition:opacity .15s ease-out,visibility .3s;position:absolute;top:16px;left:56px;right:8px;transform:none}.link-card[_ngcontent-ng-c3745898757]:hover .description[_ngcontent-ng-c3745898757]{opacity:1;visibility:visible;transform:none}.content-wrapper[_ngcontent-ng-c3745898757]{z-index:2;flex-direction:column;height:auto;transition:left .3s cubic-bezier(.4,0,.2,1),top .3s cubic-bezier(.4,0,.2,1),transform .3s cubic-bezier(.4,0,.2,1);display:flex;position:absolute;top:50%;left:56px;right:8px;transform:translateY(-50%)}.link-card[_ngcontent-ng-c3745898757]:hover .content-wrapper[_ngcontent-ng-c3745898757]{top:auto;bottom:12px;left:8px;transform:none}.text-block[_ngcontent-ng-c3745898757]{flex-direction:column;min-width:0;display:flex}.link-name[_ngcontent-ng-c3745898757]{color:var(--text-subtle);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:600}.link-username[_ngcontent-ng-c3745898757]{color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500;overflow:hidden}@media (width<=768px){.link-row[_ngcontent-ng-c3745898757]{flex-wrap:wrap;grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.link-card[_ngcontent-ng-c3745898757],.link-card[_ngcontent-ng-c3745898757]:first-child,.link-card[_ngcontent-ng-c3745898757]:nth-child(2),.link-card[_ngcontent-ng-c3745898757]:nth-child(3),.link-card[_ngcontent-ng-c3745898757]:nth-child(4),.link-card[_ngcontent-ng-c3745898757]:nth-child(5),.link-card[_ngcontent-ng-c3745898757]:nth-child(6){flex:unset;width:100%;min-width:0}}[_nghost-ng-c1328299539]{width:100%;height:100%;min-height:0;display:block;overflow:hidden}.gallery[_ngcontent-ng-c1328299539]{flex-direction:column;width:100%;height:100%;padding:15px 10px 10px 15px;display:flex;position:relative;overflow:hidden}.gallery[_ngcontent-ng-c1328299539] .section-header[_ngcontent-ng-c1328299539]{z-index:20;position:relative}.stack-container[_ngcontent-ng-c1328299539]{z-index:1;justify-content:center;align-items:center;margin:0;padding:0;display:flex;position:absolute;inset:0}.stack-card[_ngcontent-ng-c1328299539]{background:var(--surface-card);width:130px;height:130px;box-shadow:var(--shadow-media);transform-origin:bottom;z-index:calc(10 - var(--i));transform:translate(-50%,-50%) translateY(calc(var(--i) * 4px)) scale(calc(1 - var(--i) * .05));border-radius:8px;padding:4px;transition:all .5s cubic-bezier(.2,.8,.2,1);position:absolute;top:50%;left:50%}.stack-card[_ngcontent-ng-c1328299539]:first-child{transform:translate(-50%,-50%)rotate(-2deg)}.stack-card[_ngcontent-ng-c1328299539]:nth-child(2){transform:translate(-50%,-50%)rotate(3deg)translateY(4px)scale(.95)}.stack-card[_ngcontent-ng-c1328299539]:nth-child(3){transform:translate(-50%,-50%)rotate(-4deg)translateY(8px)scale(.9)}.stack-card[_ngcontent-ng-c1328299539] img[_ngcontent-ng-c1328299539]{object-fit:cover;pointer-events:none;border-radius:4px;width:100%;height:100%;display:block}.stack-container[_ngcontent-ng-c1328299539]:hover .stack-card[_ngcontent-ng-c1328299539]:first-child{z-index:20;transform:translate(-50%,-50%)translate(0)rotate(0)scale(1.05)}.stack-container[_ngcontent-ng-c1328299539]:hover .stack-card[_ngcontent-ng-c1328299539]:nth-child(2){z-index:15;transform:translate(-50%,-50%)translate(30px)rotate(10deg)scale(.95)}.stack-container[_ngcontent-ng-c1328299539]:hover .stack-card[_ngcontent-ng-c1328299539]:nth-child(3){z-index:15;transform:translate(-50%,-50%)translate(-30px)rotate(-10deg)scale(.95)}.see-more-container[_ngcontent-ng-c1328299539]{z-index:30;justify-content:flex-start;width:100%;margin:0;display:flex;position:static}.see-more-container[_ngcontent-ng-c1328299539] .read-more-preview[_ngcontent-ng-c1328299539]{z-index:30;position:absolute;bottom:10px;left:10px}[_nghost-ng-c2803322931]{width:100%;height:100%;min-height:0;display:block}.lastfm[_ngcontent-ng-c2803322931]{cursor:pointer;background-color:var(--surface-panel);border:5px solid var(--surface-border);width:100%;height:100%;box-shadow:var(--shadow-panel);color:var(--text-body);border-radius:8px;flex-direction:column;justify-content:flex-start;align-items:flex-start;padding:15px;display:flex;position:relative}[_nghost-ng-c2803322931]:hover{z-index:50}.loading[_ngcontent-ng-c2803322931],.error[_ngcontent-ng-c2803322931]{color:var(--text-muted);margin-top:5px;font-size:12px}.error[_ngcontent-ng-c2803322931]{color:var(--text-danger)}.content-wrapper[_ngcontent-ng-c2803322931]{flex:1;justify-content:center;align-items:center;width:100%;min-height:0;display:flex;position:relative}.blur-background[_ngcontent-ng-c2803322931]{z-index:0;pointer-events:none;width:150px;height:150px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.blur-image[_ngcontent-ng-c2803322931]{object-fit:cover;filter:blur(20px);opacity:.6;width:100%;height:100%}html[data-color-scheme=dark][_nghost-ng-c2803322931] .blur-image[_ngcontent-ng-c2803322931],html[data-color-scheme=dark] [_nghost-ng-c2803322931] .blur-image[_ngcontent-ng-c2803322931]{opacity:.28}.recent-tracks-stack[_ngcontent-ng-c2803322931]{pointer-events:auto;width:110px;height:110px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.recent-track-item[_ngcontent-ng-c2803322931]{opacity:0;z-index:20;border-radius:12px;width:110px;height:110px;transition:all .7s cubic-bezier(.34,1.56,.64,1);position:absolute;top:0;left:0;overflow:hidden;transform:scale(.8)translate(0)rotate(0);box-shadow:0 4px 15px #0003}html[data-color-scheme=dark][_nghost-ng-c2803322931] .recent-track-item[_ngcontent-ng-c2803322931],html[data-color-scheme=dark] [_nghost-ng-c2803322931] .recent-track-item[_ngcontent-ng-c2803322931]{box-shadow:0 4px 12px #0000002e}.recent-track-item[_ngcontent-ng-c2803322931]:hover{z-index:35!important}.recent-album-art[_ngcontent-ng-c2803322931]{object-fit:cover;width:100%;height:100%;display:block}.track-overlay[_ngcontent-ng-c2803322931]{width:100%;color:var(--text-inverse);opacity:0;pointer-events:none;text-align:left;text-shadow:0 1px 4px #000c,0 2px 10px #00000080;flex-direction:column;gap:0;padding:8px;transition:opacity .3s;display:flex;position:absolute;bottom:0;left:0}.recent-track-item[_ngcontent-ng-c2803322931]:hover .track-overlay[_ngcontent-ng-c2803322931]{opacity:1}.overlay-artist[_ngcontent-ng-c2803322931]{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:10px;font-weight:700;line-height:1.2;overflow:hidden}.overlay-track[_ngcontent-ng-c2803322931]{text-overflow:ellipsis;white-space:nowrap;color:var(--text-on-media);margin:0;font-size:9px;font-weight:400;overflow:hidden}.overlay-playcount[_ngcontent-ng-c2803322931]{color:var(--text-on-media-subtle);font-size:.9em;font-style:italic}.lastfm[_ngcontent-ng-c2803322931]:hover .recent-track-item[_ngcontent-ng-c2803322931]{opacity:1}.lastfm[_ngcontent-ng-c2803322931]:hover .art-0[_ngcontent-ng-c2803322931]{z-index:21;transform:translate(-66px,52px)rotate(-12deg)}.lastfm[_ngcontent-ng-c2803322931]:hover .art-0[_ngcontent-ng-c2803322931]:hover{transform:translate(-66px,52px)rotate(-12deg)scale(1.08);box-shadow:0 15px 35px #0006;z-index:35!important}.lastfm[_ngcontent-ng-c2803322931]:hover .art-1[_ngcontent-ng-c2803322931]{z-index:21;transform:translate(66px,52px)rotate(12deg)}.lastfm[_ngcontent-ng-c2803322931]:hover .art-1[_ngcontent-ng-c2803322931]:hover{transform:translate(66px,52px)rotate(12deg)scale(1.08);box-shadow:0 15px 35px #0006;z-index:35!important}.lastfm[_ngcontent-ng-c2803322931]:hover .art-2[_ngcontent-ng-c2803322931]{z-index:25;transform:translateY(80px)rotate(-5deg)}.lastfm[_ngcontent-ng-c2803322931]:hover .art-2[_ngcontent-ng-c2803322931]:hover{transform:translateY(80px)rotate(-5deg)scale(1.08);box-shadow:0 15px 35px #0006;z-index:35!important}.lastfm[_ngcontent-ng-c2803322931]:hover .art-3[_ngcontent-ng-c2803322931]{z-index:21;transform:translate(-66px,-80px)rotate(8deg)}.lastfm[_ngcontent-ng-c2803322931]:hover .art-3[_ngcontent-ng-c2803322931]:hover{transform:translate(-66px,-80px)rotate(8deg)scale(1.08);box-shadow:0 15px 35px #0006;z-index:35!important}.lastfm[_ngcontent-ng-c2803322931]:hover .art-4[_ngcontent-ng-c2803322931]{z-index:21;transform:translate(66px,-80px)rotate(-8deg)}.lastfm[_ngcontent-ng-c2803322931]:hover .art-4[_ngcontent-ng-c2803322931]:hover{transform:translate(66px,-80px)rotate(-8deg)scale(1.08);box-shadow:0 15px 35px #0006;z-index:35!important}.lastfm[_ngcontent-ng-c2803322931]:hover .art-4[_ngcontent-ng-c2803322931]:hover .track-overlay[_ngcontent-ng-c2803322931]{text-align:right;top:0;bottom:auto}.lastfm[_ngcontent-ng-c2803322931]:hover .art-5[_ngcontent-ng-c2803322931]{z-index:25;transform:translateY(-100px)rotate(3deg)}.lastfm[_ngcontent-ng-c2803322931]:hover .art-5[_ngcontent-ng-c2803322931]:hover{transform:translateY(-100px)rotate(3deg)scale(1.08);box-shadow:0 15px 35px #0006;z-index:35!important}.lastfm[_ngcontent-ng-c2803322931]:hover .art-6[_ngcontent-ng-c2803322931]{z-index:21;transform:translate(-108px)rotate(10deg)}.lastfm[_ngcontent-ng-c2803322931]:hover .art-6[_ngcontent-ng-c2803322931]:hover{transform:translate(-108px)rotate(10deg)scale(1.08);box-shadow:0 15px 35px #0006;z-index:35!important}.lastfm[_ngcontent-ng-c2803322931]:hover .art-6[_ngcontent-ng-c2803322931]:hover .track-overlay[_ngcontent-ng-c2803322931]{text-align:right;top:0;bottom:auto}.lastfm[_ngcontent-ng-c2803322931]:hover .art-7[_ngcontent-ng-c2803322931]{z-index:21;transform:translate(108px)rotate(-10deg)}.lastfm[_ngcontent-ng-c2803322931]:hover .art-7[_ngcontent-ng-c2803322931]:hover{transform:translate(108px)rotate(-10deg)scale(1.08);box-shadow:0 15px 35px #0006;z-index:35!important}.lastfm[_ngcontent-ng-c2803322931]:hover .art-5[_ngcontent-ng-c2803322931]:hover .track-overlay[_ngcontent-ng-c2803322931]{text-align:right;top:0;bottom:auto}.current-track[_ngcontent-ng-c2803322931]{z-index:30;text-align:center;flex-direction:column;align-items:center;gap:10px;display:flex;position:relative}.album-art-container[_ngcontent-ng-c2803322931]{flex-shrink:0;position:relative}.album-art[_ngcontent-ng-c2803322931]{object-fit:cover;background-color:#eee;border-radius:12px;width:110px;height:110px;transition:transform .45s cubic-bezier(.22,1,.36,1);box-shadow:0 4px 12px #00000026}html[data-color-scheme=dark][_nghost-ng-c2803322931] .album-art[_ngcontent-ng-c2803322931],html[data-color-scheme=dark] [_nghost-ng-c2803322931] .album-art[_ngcontent-ng-c2803322931]{box-shadow:0 3px 8px #00000038}.lastfm[_ngcontent-ng-c2803322931]:hover .album-art[_ngcontent-ng-c2803322931]{transform:none}.track-info[_ngcontent-ng-c2803322931]{opacity:1;flex-direction:column;gap:2px;max-width:180px;transition:opacity .3s;display:flex}.lastfm[_ngcontent-ng-c2803322931]:hover .track-info[_ngcontent-ng-c2803322931]{opacity:0}.track-name[_ngcontent-ng-c2803322931]{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:14px;font-weight:700;overflow:hidden}.artist-name[_ngcontent-ng-c2803322931]{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:12px;font-weight:500;overflow:hidden}.playcount[_ngcontent-ng-c2803322931]{color:var(--text-subtle);font-size:.9em;font-style:italic;font-weight:400}.main-overlay[_ngcontent-ng-c2803322931]{z-index:40}.lastfm[_ngcontent-ng-c2803322931]:hover .main-overlay[_ngcontent-ng-c2803322931]{opacity:1}.contributions-scroll[_ngcontent-ng-c1276827833]{scrollbar-width:thin;scrollbar-color:transparent transparent;width:100%;transition:scrollbar-color .18s;overflow:auto hidden}.contributions-scroll[_ngcontent-ng-c1276827833]:hover,.contributions-scroll[_ngcontent-ng-c1276827833]:focus-within,.contributions-scroll.is-scrolling[_ngcontent-ng-c1276827833]{scrollbar-color:var(--scrollbar-thumb) transparent}.contributions-scroll[_ngcontent-ng-c1276827833]::-webkit-scrollbar{width:6px;height:6px}.contributions-scroll[_ngcontent-ng-c1276827833]::-webkit-scrollbar-track{background:0 0}.contributions-scroll[_ngcontent-ng-c1276827833]::-webkit-scrollbar-thumb{background:0 0;border-radius:999px;transition:background-color .18s}.contributions-scroll[_ngcontent-ng-c1276827833]:hover::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb)}.contributions-scroll[_ngcontent-ng-c1276827833]:focus-within::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb)}.contributions-scroll.is-scrolling[_ngcontent-ng-c1276827833]::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb)}.contributions-scroll[_ngcontent-ng-c1276827833]::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}.contributions-graph[_ngcontent-ng-c1276827833]{background:var(--github-chart-background);border:none;border-image:;width:100%;min-width:850px;height:130px;display:block}.contributions-placeholder[_ngcontent-ng-c1276827833]{border-radius:4px}html[data-color-scheme=light] .app-map .leaflet-tile{filter:saturate(.18)brightness(1.03)contrast(.92)}.ascii-art-card{background-color:var(--surface-panel);border:5px solid var(--surface-border);height:100%;min-height:0;box-shadow:var(--shadow-panel);border-radius:8px;padding:12px;display:flex;overflow:hidden}.ascii-art-canvas-wrap{flex:auto;min-height:0;position:relative;overflow:hidden}.ascii-art-canvas{pointer-events:none;width:100%;height:100%;display:block;position:absolute;inset:0}.board-state{text-align:center;color:var(--text-glass-subtle);margin-top:40px;font-size:13px;font-style:italic}.send-button.sending{opacity:.6;pointer-events:none}.send-button.sending .send-icon{animation:.9s ease-in-out infinite board-send-pulse}@keyframes board-send-pulse{0%,to{transform:scale(1)}50%{transform:scale(.8)}}@media (width<=480px){.lastfm[_ngcontent-ng-c2803322931]{aspect-ratio:1;flex:none;height:auto}}@media (width>=481px) and (width<=1024px){.lastfm[_ngcontent-ng-c2803322931]{flex:none;height:360px}}@media (width<=360px){.lastfm[_ngcontent-ng-c2803322931]:hover .recent-tracks-stack[_ngcontent-ng-c2803322931]{transform:translate(-50%,-50%)scale(.82)}}@media (width<=1024px){.column-0[_ngcontent-ng-c2150733359]>.app-about-me[_ngcontent-ng-c2150733359],.column-0[_ngcontent-ng-c2150733359]>.app-stuff-using[_ngcontent-ng-c2150733359]{min-height:0}.column-2[_ngcontent-ng-c2150733359]>.app-map[_ngcontent-ng-c2150733359]{margin-top:0}.app-link-row[_ngcontent-ng-c2150733359]{margin-top:0;margin-bottom:0}.projects[_ngcontent-ng-c3515322307]{margin-bottom:0}}
