.blueprint-root[data-v-e21ec74d]{position:relative;z-index:140;pointer-events:none;--technical: rgba(0,0,0,.18);--measurement: rgba(0,0,0,.48);--annotation: rgba(0,0,0,.6)}html.dark .blueprint-root{--technical: rgba(255,255,255,.18);--measurement: rgba(255,255,255,.48);--annotation: rgba(255,255,255,.6)}.blueprint-layer[data-v-e21ec74d]{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;font:9px ui-monospace,monospace;color:var(--annotation);letter-spacing:.12em}.blueprint-guides[data-v-e21ec74d]{position:absolute;top:0;right:0;bottom:0;left:0}.blueprint-guides path[data-v-e21ec74d]{fill:none;stroke:var(--technical);stroke-dasharray:3 7}.blueprint-bound[data-v-e21ec74d]{position:absolute;border:1px solid var(--technical);transition:border-color .15s}.blueprint-bound.emphasized[data-v-e21ec74d]{border-color:var(--measurement)}.blueprint-label[data-v-e21ec74d]{position:absolute;left:0;top:-16px;font-size:8px;white-space:nowrap;background:var(--background);padding:2px 5px}.blueprint-dimension[data-v-e21ec74d]{position:absolute;right:4px;bottom:-17px;white-space:nowrap;color:var(--measurement);background:var(--background);padding:2px 4px}.blueprint-section[data-v-e21ec74d]{position:absolute;background:var(--background);padding:3px 6px}.blueprint-spacing[data-v-e21ec74d]{position:absolute;border-left:1px solid var(--measurement)}.blueprint-spacing[data-v-e21ec74d]:before,.blueprint-spacing[data-v-e21ec74d]:after{content:"";position:absolute;left:-3px;width:5px;border-top:1px solid var(--measurement)}.blueprint-spacing[data-v-e21ec74d]:after{bottom:0}.blueprint-spacing span[data-v-e21ec74d]{position:absolute;left:7px;top:40%;white-space:nowrap}.blueprint-readout[data-v-e21ec74d]{position:absolute;left:16px;bottom:calc(14px + env(safe-area-inset-bottom));display:grid;gap:5px;background:var(--background);border-left:1px solid var(--technical);padding:8px 12px;text-transform:uppercase}.blueprint-readout span[data-v-e21ec74d]{display:flex;gap:16px;justify-content:space-between}.blueprint-readout b[data-v-e21ec74d]{font-weight:400}.blueprint-inspection[data-v-e21ec74d]{position:absolute;display:grid;gap:6px;padding:10px;background:var(--background);border:1px solid var(--technical);max-width:220px}.blueprint-inspection strong[data-v-e21ec74d]{font-weight:400}.blueprint-exit[data-v-e21ec74d]{position:fixed;right:14px;display:flex;align-items:center;gap:16px;border:1px solid var(--strong-border);border-radius:4px;padding:8px 12px;min-height:44px;background:var(--background);color:var(--secondary);pointer-events:auto;font:10px ui-monospace,monospace;text-transform:uppercase;letter-spacing:.1em}.blueprint-exit small[data-v-e21ec74d]{display:block;margin-top:4px;font-size:8px}.blueprint-exit>span[data-v-e21ec74d]:last-child{font-size:20px}.blueprint-enter-active .blueprint-guides[data-v-e21ec74d]{animation:blueprint-reveal-e21ec74d .25s .1s both}.blueprint-enter-active .blueprint-bound[data-v-e21ec74d]{animation:blueprint-reveal-e21ec74d .25s .18s both}.blueprint-enter-active .blueprint-label[data-v-e21ec74d],.blueprint-enter-active .blueprint-dimension[data-v-e21ec74d],.blueprint-enter-active .blueprint-section[data-v-e21ec74d],.blueprint-enter-active .blueprint-readout[data-v-e21ec74d]{animation:blueprint-reveal-e21ec74d .25s .25s both}.blueprint-enter-active[data-v-e21ec74d]{transition:opacity .5s}.blueprint-leave-active[data-v-e21ec74d]{transition:opacity .4s}.blueprint-leave-active .blueprint-label[data-v-e21ec74d],.blueprint-leave-active .blueprint-dimension[data-v-e21ec74d],.blueprint-leave-active .blueprint-readout[data-v-e21ec74d],.blueprint-leave-active .blueprint-inspection[data-v-e21ec74d]{transition:opacity .12s;opacity:0}.blueprint-leave-active .blueprint-bound[data-v-e21ec74d]{transition:opacity .2s .1s;opacity:0}.blueprint-leave-to[data-v-e21ec74d]{opacity:0}.blueprint-control-enter-active[data-v-e21ec74d],.blueprint-control-leave-active[data-v-e21ec74d]{transition:opacity .2s}.blueprint-control-enter-from[data-v-e21ec74d],.blueprint-control-leave-to[data-v-e21ec74d]{opacity:0}@keyframes blueprint-reveal-e21ec74d{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion: reduce){.blueprint-enter-active[data-v-e21ec74d],.blueprint-leave-active[data-v-e21ec74d]{transition-duration:1ms}.blueprint-layer[data-v-e21ec74d] *{animation:none!important;transition:none!important}}.language-switcher[data-v-6aabd019]{display:flex;align-items:center;font-family:ui-monospace,monospace;font-size:10px;color:var(--secondary)}.language-switcher a[data-v-6aabd019]{padding:6px 3px;opacity:.55;transition:opacity .18s}.language-switcher a+a[data-v-6aabd019]:before{content:"/";margin-right:6px;color:var(--muted)}.language-switcher a[aria-current][data-v-6aabd019],.language-switcher a[data-v-6aabd019]:hover{opacity:1;color:var(--primary)}.brand-flight[data-v-6aabd019]{position:absolute;overflow:hidden;pointer-events:none;color:var(--primary);z-index:1}.flight-trail[data-v-6aabd019]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;animation:brand-trail-6aabd019 4.5s linear both}.paper-plane[data-v-6aabd019]{position:absolute;left:0;top:0;offset-path:var(--flight-path);offset-rotate:auto 45deg;opacity:0;animation:flight-travel-6aabd019 3.6s cubic-bezier(.55,0,.85,.45) both,brand-plane-6aabd019 4.5s linear both}@keyframes flight-travel-6aabd019{0%{offset-distance:0%}to{offset-distance:100%}}@keyframes brand-plane-6aabd019{0%{opacity:0;transform:scale(.65)}12%{opacity:.85;transform:scale(1)}86%{opacity:.85;transform:scale(1)}to{opacity:0;transform:scale(1)}}.trail-reveal[data-v-6aabd019]{animation:trail-draw-6aabd019 3.6s cubic-bezier(.55,0,.85,.45) both}@keyframes trail-draw-6aabd019{to{stroke-dashoffset:0}}@keyframes brand-trail-6aabd019{0%{opacity:0}12%{opacity:.32}86%{opacity:.32}to{opacity:0}}@media (prefers-reduced-motion: reduce){.brand-flight[data-v-6aabd019]{display:none}}.theme-sky[data-v-6aabd019]{position:relative;overflow:hidden;isolation:isolate}.theme-sky svg[data-v-6aabd019]{position:absolute;transition:none}.sky-sun[data-v-6aabd019],.sky-moon[data-v-6aabd019]{opacity:0;transform:translateY(30px)}.sky-day .sky-sun[data-v-6aabd019],.sky-night .sky-moon[data-v-6aabd019]{opacity:1;transform:translateY(0)}.sky-horizon[data-v-6aabd019]{position:absolute;inset:72% 16% auto;height:1px;background:currentColor;opacity:0}.theme-sky[data-v-6aabd019]:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;opacity:0;background:linear-gradient(to bottom,transparent,var(--surface))}.sky-changing[data-v-6aabd019]{animation:sky-press-6aabd019 .12s ease-out}.sky-changing[data-v-6aabd019]:before,.sky-changing .sky-horizon[data-v-6aabd019]{animation:sky-horizon-6aabd019 .8s ease}.sky-sunset .sky-sun[data-v-6aabd019],.sky-sunrise .sky-moon[data-v-6aabd019]{animation:celestial-set-6aabd019 .36s cubic-bezier(.4,0,.7,1) both}.sky-sunset .sky-moon[data-v-6aabd019],.sky-sunrise .sky-sun[data-v-6aabd019]{animation:celestial-rise-6aabd019 .44s .22s cubic-bezier(.22,1,.36,1) both}@keyframes celestial-set-6aabd019{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(30px)}}@keyframes celestial-rise-6aabd019{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes sky-horizon-6aabd019{0%,to{opacity:0}40%,65%{opacity:.16}}@keyframes sky-press-6aabd019{50%{transform:scale(.94)}}@media (prefers-reduced-motion: reduce){.theme-sky svg[data-v-6aabd019]{transform:none;transition:opacity .1s!important}.sky-changing[data-v-6aabd019],.sky-changing svg[data-v-6aabd019],.sky-changing[data-v-6aabd019]:before,.sky-changing .sky-horizon[data-v-6aabd019]{animation:none!important}}@media (max-width: 767px),(pointer: coarse){.nav-inner button[data-v-6aabd019]{min-width:44px;min-height:44px}}.letter[data-v-6aabd019]{opacity:1;display:inline-block}@keyframes fadeIn-6aabd019{to{opacity:1}}.mobile-navigation[data-v-6aabd019]{inset-inline:12px;margin-top:8px;padding:22px 16px 16px;border:1px solid var(--strong-border);border-radius:18px;background:linear-gradient(145deg,var(--secondary-background),var(--background));box-shadow:0 20px 65px #0005,inset 0 1px 0 var(--border);max-height:calc(100svh - 96px - env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;transform-origin:top right}.mobile-menu-heading[data-v-6aabd019]{display:flex;justify-content:space-between;padding:8px 10px 18px;font:10px ui-monospace,monospace;text-transform:uppercase;letter-spacing:.14em;color:var(--label)}.mobile-menu-sections a[data-v-6aabd019]{display:flex;align-items:center;gap:20px;padding:16px;border-radius:13px;color:var(--primary);font-size:17px;font-weight:500;min-height:58px;color:var(--secondary);transition:color .25s}.mobile-menu-sections a.selected[data-v-6aabd019]{color:var(--primary)}.mobile-navigation svg[data-v-6aabd019]{flex-shrink:0}.mobile-menu-number[data-v-6aabd019]{margin-left:auto;font:12px ui-monospace,monospace;color:var(--label)}.mobile-menu-social[data-v-6aabd019]{margin:22px 6px 24px;padding-top:24px;border-top:1px solid var(--border)}.mobile-menu-social p[data-v-6aabd019]{padding-inline:4px;margin-bottom:18px;text-transform:uppercase;font:10px ui-monospace,monospace;letter-spacing:.16em;color:var(--label)}.mobile-menu-social a[data-v-6aabd019]{display:flex;align-items:center;gap:18px;min-height:46px;padding:10px;font-size:15px;color:var(--secondary);border-radius:10px}.mobile-social-arrow[data-v-6aabd019]{margin-left:auto}.mobile-menu-motto[data-v-6aabd019]{display:flex;align-items:center;gap:18px;padding:16px;border-radius:14px;border:1px solid var(--border);background:linear-gradient(120deg,var(--surface),transparent);color:var(--secondary);font-size:12px;min-height:66px}.mobile-menu-motto svg[data-v-6aabd019]{margin-left:auto}.mobile-menu-dots[data-v-6aabd019]{font-size:30px;line-height:1}.mobile-navigation a[data-v-6aabd019]:focus-visible{outline:2px solid var(--secondary);outline-offset:-2px}.mobile-menu-enter-active[data-v-6aabd019]{transition:opacity .28s ease,transform .42s cubic-bezier(.16,1,.3,1),filter .32s ease}.mobile-menu-leave-active[data-v-6aabd019]{transition:opacity .22s ease,transform .28s cubic-bezier(.4,0,1,1),filter .22s ease;pointer-events:none}.mobile-menu-enter-from[data-v-6aabd019],.mobile-menu-leave-to[data-v-6aabd019]{opacity:0;transform:translateY(-14px) scale(.94);filter:blur(7px)}.mobile-menu-enter-active .mobile-menu-row[data-v-6aabd019]{animation:menu-row-in-6aabd019 .42s cubic-bezier(.16,1,.3,1) both;animation-delay:calc(var(--row-index) * 35ms + 55ms)}.mobile-menu-leave-active .mobile-menu-row[data-v-6aabd019]{transition:opacity .14s ease,transform .18s ease;opacity:0;transform:translateY(-6px)}@keyframes menu-row-in-6aabd019{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.mobile-menu-enter-active[data-v-6aabd019],.mobile-menu-leave-active[data-v-6aabd019],.mobile-menu-row[data-v-6aabd019]{transition:none!important;animation:none!important}.mobile-menu-enter-from[data-v-6aabd019],.mobile-menu-leave-to[data-v-6aabd019]{transform:none;filter:none}}.theme-sky .blueprint-hold-ring[data-v-6aabd019]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;transform:rotate(-90deg);overflow:visible;opacity:.45}.blueprint-hold-ring circle[data-v-6aabd019]{fill:none;stroke:currentColor;stroke-width:1;stroke-dasharray:113.1;stroke-dashoffset:113.1;animation:blueprint-hold-6aabd019 .4s linear forwards}@keyframes blueprint-hold-6aabd019{to{stroke-dashoffset:0}}.nav-travel-indicator[data-v-6aabd019],.mobile-travel-indicator[data-v-6aabd019]{position:absolute;top:0;left:0;width:4px;height:4px;pointer-events:none;transition:transform var(--navigation-duration, .48s) cubic-bezier(.76,0,.24,1),opacity .18s}.nav-travel-indicator span[data-v-6aabd019],.mobile-travel-indicator span[data-v-6aabd019]{display:block;width:4px;height:4px;border-radius:50%;background:var(--primary)}.mobile-menu-sections[data-v-6aabd019]{position:relative}.mobile-travel-indicator[data-v-6aabd019]{left:4px}@media (prefers-reduced-motion: reduce){.nav-travel-indicator[data-v-6aabd019],.mobile-travel-indicator[data-v-6aabd019]{transition:none}}.hero-flight[data-v-fb34ac34]{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;color:var(--primary);z-index:2}.hero-trail[data-v-fb34ac34]{position:absolute;top:0;right:0;bottom:0;left:0;animation:hero-trail-fade-fb34ac34 6.2s linear both}.hero-trail-reveal[data-v-fb34ac34]{animation:hero-trail-draw-fb34ac34 5.2s cubic-bezier(.45,0,.75,.65) both}.hero-plane[data-v-fb34ac34]{position:absolute;left:0;top:0;offset-path:var(--flight-path);offset-rotate:auto 45deg;animation:hero-flight-travel-fb34ac34 5.2s cubic-bezier(.45,0,.75,.65) both,hero-plane-fade-fb34ac34 6.2s linear both}@keyframes hero-flight-travel-fb34ac34{0%{offset-distance:0%}to{offset-distance:100%}}@keyframes hero-trail-draw-fb34ac34{to{stroke-dashoffset:0}}@keyframes hero-plane-fade-fb34ac34{0%{opacity:0;transform:scale(.65)}8%,86%{opacity:.85;transform:scale(1)}to{opacity:0;transform:scale(1)}}@keyframes hero-trail-fade-fb34ac34{0%{opacity:0}8%,86%{opacity:.32}to{opacity:0}}@media (prefers-reduced-motion: reduce){.hero-flight[data-v-fb34ac34]{display:none}}.flaming-kunai-cursor[data-v-659a3c17]{position:fixed;top:0;left:0;display:none;width:32px;height:32px;z-index:150;pointer-events:none;will-change:transform}.kunai-cursor-img[data-v-659a3c17]{width:32px;height:32px;-o-object-fit:contain;object-fit:contain;display:block;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}@media (prefers-reduced-motion: reduce),(hover: none),(pointer: coarse){.flaming-kunai-cursor[data-v-659a3c17]{display:none!important}}.about-eyebrow[data-v-5935791e]{font-family:ui-monospace,monospace;letter-spacing:.16em;color:var(--secondary);text-transform:uppercase;color:var(--label);margin-top:10px;font-size:9px}.about-layout[data-v-5935791e]{gap:38px;align-items:center;margin-top:36px}.portrait-wrapper[data-v-5935791e]{width:202px;max-width:100%;position:relative;z-index:1}.portrait-wrapper[data-v-5935791e]:before,.portrait-wrapper[data-v-5935791e]:after{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border-radius:6px;padding:2px;background:conic-gradient(from var(--beam-angle, 0deg),transparent 75%,#00e5ff 90%,#0077ff 100%);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;opacity:0;transition:opacity .3s ease;z-index:2}.portrait-wrapper[data-v-5935791e]:after{filter:blur(4px);z-index:1}.portrait-wrapper[data-v-5935791e]:hover:before,.portrait-wrapper[data-v-5935791e]:hover:after{opacity:1;animation:spin-beam-5935791e 2.5s linear infinite}@property --beam-angle{syntax: "<angle>"; initial-value: 0deg; inherits: false;}@keyframes spin-beam-5935791e{to{--beam-angle: 360deg}}@media (prefers-reduced-motion: reduce){.portrait-wrapper[data-v-5935791e]:hover:before,.portrait-wrapper[data-v-5935791e]:hover:after{animation:none;background:linear-gradient(135deg,#00e5ff,#07f)}}.portrait-comparison[data-v-5935791e]{position:relative;display:block;width:100%;aspect-ratio:1;overflow:hidden;border:1px solid var(--strong-border);border-radius:5px;background:var(--secondary-background)}.portrait-comparison img[data-v-5935791e]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:transform .45s cubic-bezier(.22,1,.36,1)}.portrait-effect[data-v-5935791e]{transform:none}.portrait-comparison[data-v-5935791e]{cursor:url(/assets/cursors/madara-kunai-preview-32.webp) 16 15,url(https://cdn.cursors-4u.net/previews/sizenwse-72fe4e9c-preview-32.webp) 16 15,auto;touch-action:pan-y}@media (hover: hover) and (pointer: fine){.portrait-comparison[data-v-5935791e],.portrait-comparison.effect-hovered[data-v-5935791e]{cursor:url(/assets/cursors/madara-kunai-preview-32.webp) 16 15,url(https://cdn.cursors-4u.net/previews/sizenwse-72fe4e9c-preview-32.webp) 16 15,auto}}.portrait-comparison.flame-cursor-active[data-v-5935791e],.portrait-comparison.flame-cursor-active[data-v-5935791e] *{cursor:none!important}.portrait-divider[data-v-5935791e]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.portrait-divider line[data-v-5935791e]{stroke:var(--primary);stroke-opacity:.85;stroke-width:1.5px}.portrait-handle[data-v-5935791e]{position:absolute;top:50%;width:38px;height:38px;display:grid;place-items:center;transform:translate(-50%,-50%);border-radius:50%;border:1px solid var(--strong-border);background:var(--background);color:var(--primary);font-size:23px;line-height:1;pointer-events:none}.portrait-edge[data-v-5935791e]{position:absolute;top:50%;transform:translateY(-50%);font-size:26px;line-height:1;color:var(--primary);pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.portrait-edge-left[data-v-5935791e]{left:12px}.portrait-edge-right[data-v-5935791e]{right:12px}.portrait-comparison:hover .portrait-handle[data-v-5935791e],.portrait-comparison:focus-visible .portrait-handle[data-v-5935791e]{border-color:var(--secondary)}.badge[data-v-5935791e]{width:202px;max-width:100%;justify-content:center;gap:7px;font-size:10px;border-radius:4px!important}.normal-text[data-v-5935791e],.hover-text[data-v-5935791e]{transition:opacity .25s}.hover-text[data-v-5935791e],.badge:hover .normal-text[data-v-5935791e]{opacity:0}.badge:hover .hover-text[data-v-5935791e]{opacity:1}.about-copy h3[data-v-5935791e]{font-weight:600;color:var(--primary)}.about-copy p[data-v-5935791e]{color:var(--secondary);opacity:1;line-height:1.65}.about-copy p+p[data-v-5935791e]{margin-top:18px}@media (max-width: 900px){.about-layout[data-v-5935791e]{grid-template-columns:minmax(0,1fr);gap:30px}.about-layout>div[data-v-5935791e]:first-child{align-items:flex-start}}@media (max-width: 767px){.portrait-wrapper[data-v-5935791e],.badge[data-v-5935791e]{width:202px}.badge[data-v-5935791e]{font-size:11px;gap:6px}.about-copy[data-v-5935791e]{min-width:0}.about-copy h3[data-v-5935791e]{font-size:20px}.about-copy p[data-v-5935791e]{font-size:16px}}@media (pointer: coarse){.portrait-handle[data-v-5935791e]{width:44px;height:44px}}@media (prefers-reduced-motion: reduce){.portrait-comparison[data-v-5935791e] *,.portrait-effect[data-v-5935791e]{transition:none!important}.portrait-comparison img[data-v-5935791e]{transform:none!important}}html:not(.dark) #skills{--secondary-background: #f7f8fa;--surface: #f0f3f6;--primary: #10161f;--secondary: #626c7a;--label: #788291;--border: #d9dde4;--strong-border: #cfd5df}html:not(.dark) #skills .capability-tags li{background:#f4f6f8}#skills[data-v-1399a633]{position:relative;isolation:isolate;padding-bottom:56px}#skills[data-v-1399a633]:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background-image:linear-gradient(to right,var(--grid) 1px,transparent 1px),linear-gradient(to bottom,var(--grid) 1px,transparent 1px);background-size:40px 40px;opacity:.45;-webkit-mask-image:radial-gradient(ellipse at 55% 45%,black,transparent 70%);mask-image:radial-gradient(ellipse at 55% 45%,black,transparent 70%)}#skills>div>span[data-v-1399a633]{font-family:ui-monospace,monospace;color:var(--secondary);opacity:1}#skills>div>p[data-v-1399a633]{color:var(--secondary);opacity:1;line-height:1.65}.capability-list[data-v-1399a633]{display:grid;gap:12px;margin-top:28px}.capability-row[data-v-1399a633]{display:grid;grid-template-columns:52px minmax(180px,240px) minmax(0,1fr) 22px;gap:26px;align-items:center;padding:18px 20px;border:1px solid var(--border);border-radius:6px;background:var(--secondary-background);transition:background-color .22s,border-color .22s}.capability-icon[data-v-1399a633]{width:52px;height:52px;display:grid;place-items:center;border:1px solid var(--border);border-radius:5px;background:var(--surface);transition:border-color .22s}.capability-copy[data-v-1399a633]{min-width:0}.capability-copy h3[data-v-1399a633]{font-family:ui-monospace,monospace;text-transform:uppercase;font-size:10px;letter-spacing:.16em;color:var(--primary);overflow-wrap:anywhere}.capability-copy p[data-v-1399a633]{margin-top:9px;color:var(--secondary);font-size:12px;line-height:1.5}#skills .capability-tags[data-v-1399a633]{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding-left:26px;border-left:1px solid var(--border);min-width:0;min-height:56px}.capability-tags li[data-v-1399a633]{padding:6px 11px;font-size:11px;line-height:1.5;border:1px solid var(--strong-border);border-radius:4px;color:var(--secondary);max-width:100%;overflow-wrap:anywhere;transition:color .22s}.capability-index[data-v-1399a633]{font-family:ui-monospace,monospace;font-size:10px;color:var(--muted);text-align:right}@media (hover: hover) and (pointer: fine){.capability-row[data-v-1399a633]:hover{border-color:var(--strong-border);background:var(--surface)}.capability-row:hover .capability-icon[data-v-1399a633]{border-color:var(--strong-border)}.capability-row:hover .capability-tags li[data-v-1399a633]{color:var(--primary)}}@media (max-width: 1100px){.capability-row[data-v-1399a633]{grid-template-columns:48px minmax(0,1fr) 22px;gap:16px 20px}.capability-icon[data-v-1399a633]{width:48px;height:48px}#skills .capability-tags[data-v-1399a633]{grid-column:2;padding-left:0;border-left:0;min-height:0}.capability-index[data-v-1399a633]{grid-column:3;grid-row:1}}@media (max-width: 767px){.capability-row[data-v-1399a633]{padding:16px;grid-template-columns:minmax(0,1fr) 22px;gap:16px}.capability-icon[data-v-1399a633]{grid-column:1}.capability-index[data-v-1399a633]{grid-column:2}.capability-copy[data-v-1399a633],#skills .capability-tags[data-v-1399a633]{grid-column:1 / -1}.capability-copy h3[data-v-1399a633]{font-size:11px}.capability-copy p[data-v-1399a633]{font-size:14px}.capability-tags li[data-v-1399a633]{padding:6px 10px;font-size:12px}.capability-list[data-v-1399a633]{gap:10px}}@media (prefers-reduced-motion: reduce){.capability-row[data-v-1399a633],.capability-icon[data-v-1399a633],.capability-tags li[data-v-1399a633]{transition:none}}.writing-section[data-v-fd961165]{padding-bottom:64px}.writing-header[data-v-fd961165]{display:flex;justify-content:space-between;align-items:center;gap:32px;margin-bottom:32px}.writing-eyebrow[data-v-fd961165]{font:10px ui-monospace,monospace;text-transform:uppercase;letter-spacing:.18em;color:var(--label)}.writing-header h2[data-v-fd961165]{margin-top:12px;font-size:clamp(32px,3vw,44px);max-width:420px;line-height:1.14;font-weight:600;letter-spacing:-.035em}.writing-intro[data-v-fd961165]{margin-top:18px;max-width:530px;font-size:14px;line-height:1.65;color:var(--secondary)}.writing-source[data-v-fd961165]{display:inline-flex;align-items:center;gap:10px;min-height:44px;font:10px ui-monospace,monospace;text-transform:uppercase;letter-spacing:.12em;color:var(--secondary);white-space:nowrap}.writing-list[data-v-fd961165]{min-height:360px;border-top:1px solid var(--border)}.writing-row[data-v-fd961165]{display:grid;grid-template-columns:38px minmax(0,1fr) 100px 24px;align-items:start;gap:24px;padding-block:32px;min-height:180px;border-bottom:1px solid var(--border);transition:border-color .22s,color .22s}.writing-index[data-v-fd961165],.writing-date[data-v-fd961165]{font:10px ui-monospace,monospace;color:var(--label);letter-spacing:.06em;line-height:1.6;padding-top:2px}.writing-copy[data-v-fd961165]{min-width:0}.writing-tags[data-v-fd961165]{font:9px ui-monospace,monospace;line-height:1.6;text-transform:uppercase;letter-spacing:.12em;color:var(--label);overflow-wrap:anywhere;margin-bottom:10px}.writing-copy h3[data-v-fd961165]{font-size:clamp(19px,1.8vw,25px);line-height:1.35;letter-spacing:-.02em;font-weight:500;color:var(--primary);transition:transform .22s;overflow-wrap:anywhere}.writing-excerpt[data-v-fd961165]{margin-top:12px;color:var(--secondary);font-size:13px;line-height:1.7;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}.writing-arrow[data-v-fd961165]{margin-left:auto;font-size:21px;line-height:1;color:var(--secondary);transition:transform .22s,color .22s}.writing-all[data-v-fd961165]{display:flex;justify-content:space-between;align-items:center;gap:24px;min-height:60px;color:var(--secondary);font-size:12px}.writing-message[data-v-fd961165]{padding-block:64px;color:var(--secondary);font-size:14px}.writing-skeleton-row[data-v-fd961165]{display:flex;gap:24px;padding-block:34px;min-height:180px;border-bottom:1px solid var(--border)}.writing-skeleton-row>span[data-v-fd961165]{width:38px;height:10px;background:var(--surface)}.writing-skeleton-row>div[data-v-fd961165]{width:min(75%,550px)}.writing-skeleton i[data-v-fd961165]{display:block;background:var(--surface);margin-bottom:16px;height:12px;animation:writing-pulse-fd961165 1.6s ease-in-out infinite alternate}.writing-skeleton i[data-v-fd961165]:first-child{width:25%;height:8px}.writing-skeleton i[data-v-fd961165]:nth-child(2){width:95%;height:24px}.writing-skeleton i[data-v-fd961165]:last-child{width:75%}@keyframes writing-pulse-fd961165{to{opacity:.4}}@media (hover: hover) and (pointer: fine){.writing-row[data-v-fd961165]:hover{border-color:var(--strong-border)}.writing-row:hover h3[data-v-fd961165]{transform:translate(4px)}.writing-row:hover .writing-arrow[data-v-fd961165]{transform:translate(3px,-3px);color:var(--primary)}.writing-row:hover .writing-index[data-v-fd961165]{color:var(--secondary)}.writing-all[data-v-fd961165]:hover,.writing-source[data-v-fd961165]:hover{color:var(--primary)}}@media (max-width: 767px){.writing-header[data-v-fd961165]{display:block;margin-bottom:26px}.writing-source[data-v-fd961165]{margin-top:16px}.writing-row[data-v-fd961165]{grid-template-columns:25px minmax(0,1fr) 24px;gap:12px;padding-block:28px}.writing-copy[data-v-fd961165]{display:contents}.writing-index[data-v-fd961165]{grid-column:1;grid-row:1}.writing-tags[data-v-fd961165]{grid-column:2 / -1;grid-row:1;margin:0}.writing-copy h3[data-v-fd961165],.writing-excerpt[data-v-fd961165]{grid-column:1 / -1}.writing-excerpt[data-v-fd961165]{margin-top:0;font-size:14px;-webkit-line-clamp:4}.writing-date[data-v-fd961165]{grid-column:1 / 3;margin-top:4px}.writing-arrow[data-v-fd961165]{grid-column:3;grid-row:auto;margin-top:4px}.writing-list[data-v-fd961165]{min-height:420px}.writing-skeleton-row[data-v-fd961165]{min-height:210px}}@media (prefers-reduced-motion: reduce){.writing-skeleton i[data-v-fd961165]{animation:none}.writing-copy h3[data-v-fd961165],.writing-arrow[data-v-fd961165]{transform:none!important;transition:none}}.showcase-backdrop[data-v-60b03395]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#000000b8;padding:40px}.showcase-dialog[data-v-60b03395]{width:min(1120px,100%);max-height:calc(100dvh - 80px);overflow:auto;background:var(--secondary-background);color:var(--primary);border:1px solid var(--strong-border);border-radius:7px;box-shadow:0 16px 48px #0003;overscroll-behavior:contain}.showcase-bar[data-v-60b03395]{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 28px;background:var(--secondary-background)}.counter[data-v-60b03395]{font-family:ui-monospace,monospace;font-size:12px;color:var(--secondary);letter-spacing:.06em}.showcase-controls[data-v-60b03395]{display:flex;align-items:center;gap:12px}.showcase-controls button[data-v-60b03395]{display:grid;place-items:center;width:48px;height:38px;border:1px solid var(--strong-border);border-radius:4px;font-size:21px;background:transparent}.showcase-controls button[data-v-60b03395]:hover{border-color:var(--secondary)}.control-divider[data-v-60b03395]{height:24px;width:1px;background:var(--strong-border);margin-inline:10px}.showcase-controls .close-button[data-v-60b03395]{border-color:transparent;width:36px;font-size:28px}.showcase-body[data-v-60b03395]{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(0,1fr);gap:40px;padding:0 28px 36px}.showcase-gallery[data-v-60b03395],.showcase-information[data-v-60b03395]{min-width:0}.gallery-canvas[data-v-60b03395]{position:relative;height:clamp(260px,48vh,470px);background:var(--surface);border:1px solid var(--border);border-radius:4px;display:flex;align-items:center;justify-content:center;overflow:hidden;touch-action:none}.gallery-canvas img[data-v-60b03395]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;-o-object-fit:contain;object-fit:contain;image-rendering:auto;transform-origin:50% 50%;transition:transform .22s ease}.gallery-zoom-controls[data-v-60b03395]{display:none;align-items:center;gap:8px;margin-top:10px}.gallery-zoom-controls button[data-v-60b03395]{min-width:44px;min-height:44px;border:1px solid var(--strong-border);border-radius:4px;background:var(--surface);font-size:20px}.gallery-zoom-controls .zoom-reset[data-v-60b03395]{min-width:64px;font-size:12px}.gallery-zoom-controls button[data-v-60b03395]:disabled{opacity:.4}.gallery-zoom-controls span[data-v-60b03395]{color:var(--secondary);font-size:11px}@media (hover: none),(pointer: coarse),(max-width: 767px){.gallery-zoom-controls[data-v-60b03395]{display:flex}}@media (any-pointer: coarse){.gallery-canvas img[data-v-60b03395]{transition:none}}.gallery-thumbnails[data-v-60b03395]{display:flex;gap:12px;overflow-x:auto;padding-block:22px 4px}.gallery-thumbnails button[data-v-60b03395]{flex:0 0 116px;height:82px;border:1px solid var(--border);border-radius:4px;background:var(--surface);overflow:hidden;opacity:.6;transition:opacity .22s,border-color .22s}.gallery-thumbnails button.selected[data-v-60b03395]{border-color:var(--primary);opacity:1}.gallery-thumbnails button[data-v-60b03395]:hover{opacity:1}.gallery-thumbnails img[data-v-60b03395]{width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.metadata[data-v-60b03395],.showcase-information h3[data-v-60b03395]{font-family:ui-monospace,monospace;text-transform:uppercase;letter-spacing:.15em;font-size:10px;color:var(--secondary)}.showcase-information h2[data-v-60b03395]{font-size:30px;line-height:1.2;font-weight:500;margin-top:12px;overflow-wrap:anywhere}.subtitle[data-v-60b03395]{color:var(--secondary);font-size:15px;margin-top:10px}.description[data-v-60b03395]{margin-top:26px}.description p[data-v-60b03395]{font-size:14px;line-height:1.65;color:var(--secondary);margin-top:12px}.stack[data-v-60b03395]{padding-top:20px;margin-top:24px;border-top:1px solid var(--border)}.stack ul[data-v-60b03395]{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.stack li[data-v-60b03395]{font-size:11px;color:var(--secondary);border:1px solid var(--strong-border);border-radius:3px;padding:3px 9px}.showcase-actions[data-v-60b03395]{display:flex;flex-wrap:wrap;gap:12px;border-top:1px solid var(--border);padding-top:18px;margin-top:24px}.showcase-actions a[data-v-60b03395]{display:inline-flex;align-items:center;justify-content:center;gap:12px;flex:1 1 130px;border:1px solid var(--strong-border);border-radius:4px;padding:12px 16px;font-size:12px}.showcase-actions a[data-v-60b03395]:hover{border-color:var(--secondary)}.showcase-actions .primary-action[data-v-60b03395]{background:var(--button);color:var(--button-text)}.showcase-actions .primary-action[data-v-60b03395]:hover{background:var(--button-hover)}.showcase-enter-active[data-v-60b03395],.showcase-leave-active[data-v-60b03395]{transition:opacity .22s}.showcase-enter-active .showcase-dialog[data-v-60b03395],.showcase-leave-active .showcase-dialog[data-v-60b03395]{transition:transform .22s}.showcase-enter-from[data-v-60b03395],.showcase-leave-to[data-v-60b03395]{opacity:0}.showcase-enter-from .showcase-dialog[data-v-60b03395],.showcase-leave-to .showcase-dialog[data-v-60b03395]{transform:scale(.98)}.image-fade-enter-active[data-v-60b03395],.image-fade-leave-active[data-v-60b03395]{transition:opacity .18s}.image-error[data-v-60b03395]{position:absolute;bottom:12px;z-index:1;padding:5px 8px;background:var(--secondary-background);color:var(--secondary);font-size:12px}.image-error button[data-v-60b03395]{text-decoration:underline;margin-left:6px}.image-fade-enter-from[data-v-60b03395],.image-fade-leave-to[data-v-60b03395]{opacity:0}@media (max-width: 960px){.showcase-backdrop[data-v-60b03395]{padding:12px}.showcase-dialog[data-v-60b03395]{max-height:calc(100dvh - 24px)}.showcase-bar[data-v-60b03395]{padding:16px 18px}.showcase-body[data-v-60b03395]{grid-template-columns:1fr;gap:26px;padding:0 18px 26px}.gallery-canvas[data-v-60b03395]{height:clamp(220px,42dvh,420px)}.gallery-thumbnails[data-v-60b03395]{padding-top:14px}.gallery-thumbnails button[data-v-60b03395]{flex-basis:92px;height:64px}}@media (max-width: 400px){.showcase-actions[data-v-60b03395]{flex-direction:column}.showcase-actions a[data-v-60b03395]{flex:auto}.showcase-controls[data-v-60b03395]{gap:6px}.control-divider[data-v-60b03395]{display:none}}@media (max-width: 767px){.showcase-backdrop[data-v-60b03395]{padding:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))}.showcase-dialog[data-v-60b03395]{max-height:calc(100dvh - max(8px,env(safe-area-inset-top)) - max(8px,env(safe-area-inset-bottom)))}.showcase-bar[data-v-60b03395]{padding:12px 14px;gap:8px}.showcase-controls[data-v-60b03395]{gap:6px}.showcase-controls button[data-v-60b03395],.showcase-controls .close-button[data-v-60b03395]{width:44px;height:44px}.control-divider[data-v-60b03395]{display:none}.showcase-body[data-v-60b03395]{padding:0 14px 24px}.gallery-canvas[data-v-60b03395]{height:min(45dvh,420px);min-height:160px}.showcase-actions a[data-v-60b03395]{min-height:44px;font-size:13px}.stack li[data-v-60b03395]{font-size:12px;max-width:100%;overflow-wrap:anywhere}}@media (pointer: coarse){.showcase-controls button[data-v-60b03395],.showcase-controls .close-button[data-v-60b03395]{min-width:44px;min-height:44px}}@media (prefers-reduced-motion: reduce){[data-v-60b03395],[data-v-60b03395]:before,[data-v-60b03395]:after{transition:none!important}}html:not(.dark) .project-card{background:var(--background);border-color:var(--border)}html:not(.dark) .project-media img{filter:none}html:not(.dark) .media-count,html:not(.dark) .media-hint{background:#f7f8faf0;font-size:11px}html:not(.dark) .project-tags li{background:var(--secondary-background);font-size:12px}html:not(.dark) .project-actions a{color:var(--primary)}@media (hover: hover) and (pointer: fine){html:not(.dark) .project-card:hover{background:var(--secondary-background)}html:not(.dark) .project-media:hover img{filter:brightness(1.025)}}.project-card[data-v-198c04d6]{display:flex;flex-direction:column;padding:20px;min-width:0;border-radius:5px;transition:border-color .25s,background-color .25s}.project-media[data-v-198c04d6]{position:relative;display:block;width:100%;aspect-ratio:16 / 9;border:1px solid var(--border);border-radius:4px;overflow:hidden;background:var(--surface)}.project-media img[data-v-198c04d6]{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;transition:transform .35s cubic-bezier(.22,1,.36,1),filter .35s}.media-placeholder[data-v-198c04d6]{color:var(--secondary);font-size:13px}.media-count[data-v-198c04d6],.media-hint[data-v-198c04d6]{position:absolute;right:10px;display:inline-flex;align-items:center;gap:6px;color:var(--primary);background:var(--secondary-background);border:1px solid var(--strong-border);border-radius:4px;padding:4px 8px;font-size:10px}.media-count[data-v-198c04d6]{bottom:10px}.media-hint[data-v-198c04d6]{top:10px;opacity:0;transition:opacity .25s}.project-title[data-v-198c04d6]{display:flex;width:100%;text-align:left;justify-content:space-between;align-items:start;gap:16px;font-size:20px;font-weight:600;line-height:1.35;margin-top:20px}.project-title>span[data-v-198c04d6]:first-child{min-width:0;overflow-wrap:anywhere}.details-indicator[data-v-198c04d6]{color:var(--secondary);font-weight:400;flex-shrink:0}.project-description[data-v-198c04d6]{color:var(--secondary);font-size:14px;line-height:1.6;margin-top:12px}.project-tags[data-v-198c04d6]{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px;padding-bottom:20px}.project-tags li[data-v-198c04d6]{color:var(--secondary);border:1px solid var(--strong-border);padding:5px 10px;font-size:11px;border-radius:4px;max-width:100%;overflow-wrap:anywhere}.project-actions[data-v-198c04d6]{display:flex;flex-wrap:wrap;gap:26px;margin-top:auto;border-top:1px solid var(--border);padding-top:12px}.project-actions a[data-v-198c04d6]{display:inline-flex;align-items:center;gap:8px;min-height:44px;color:var(--secondary);font-size:12px}.project-actions a span[data-v-198c04d6]{transition:transform .25s}@media (hover: hover) and (pointer: fine){.project-card[data-v-198c04d6]:hover{border-color:var(--strong-border);background:var(--surface)}.project-media:hover img[data-v-198c04d6]{transform:scale(1.02);filter:brightness(1.08)}.project-media:hover .media-hint[data-v-198c04d6],.project-media:focus-visible .media-hint[data-v-198c04d6]{opacity:1}.project-actions a[data-v-198c04d6]:hover{color:var(--primary)}.project-actions a:hover span[data-v-198c04d6]{transform:translate(2px,-2px)}}@media (max-width: 767px){.project-card[data-v-198c04d6]{padding:16px}.project-title[data-v-198c04d6]{font-size:19px}.project-tags[data-v-198c04d6]{gap:6px}.project-tags li[data-v-198c04d6]{font-size:12px}.project-description[data-v-198c04d6]{font-size:15px}}@media (hover: none){.media-hint[data-v-198c04d6]{opacity:1}}@media (prefers-reduced-motion: reduce){.project-card[data-v-198c04d6],.project-media img[data-v-198c04d6],.media-hint[data-v-198c04d6],.project-actions a span[data-v-198c04d6]{transition:none}.project-media:hover img[data-v-198c04d6],.project-actions a:hover span[data-v-198c04d6]{transform:none}}html:not(.dark) #projects{--background: #f7f8fa;--secondary-background: #f4f6f8;--surface: #edf0f4;--primary: #10161f;--secondary: #626c7a;--label: #788291;--border: #d9dde4;--strong-border: #cfd5df;--grid: rgba(98,108,122,.045);color:var(--primary)}html:not(.dark) .projects-heading{font-size:clamp(32px,3.2vw,48px)}html:not(.dark) .projects-pagination button{color:var(--secondary)}html:not(.dark) .projects-pagination button:last-child{background:#505966;border-color:#505966;color:#f7f8fa}html:not(.dark) .projects-pagination button:last-child:hover:enabled{background:#39434f;border-color:#39434f}#projects[data-v-573650c6]{position:relative;isolation:isolate}#projects[data-v-573650c6]:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background-image:linear-gradient(to right,var(--grid) 1px,transparent 1px),linear-gradient(to bottom,var(--grid) 1px,transparent 1px);background-size:40px 40px;opacity:.45;-webkit-mask-image:radial-gradient(ellipse at 55% 30%,black,transparent 70%);mask-image:radial-gradient(ellipse at 55% 30%,black,transparent 70%)}.projects-header[data-v-573650c6]{display:flex;align-items:center;justify-content:space-between;gap:36px;margin-bottom:28px}.projects-eyebrow[data-v-573650c6]{font-family:ui-monospace,monospace;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--label)}.projects-heading[data-v-573650c6]{margin-top:10px;font-size:clamp(32px,3vw,44px);font-weight:600;line-height:1.2;letter-spacing:-.035em}.projects-intro[data-v-573650c6]{color:var(--secondary);margin-top:12px;max-width:680px;font-size:14px;line-height:1.6}.projects-note[data-v-573650c6]{color:var(--secondary);font-size:12px;line-height:1.6;flex-shrink:0}.projects-grid[data-v-573650c6]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.projects-pagination[data-v-573650c6]{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:32px}.projects-pagination button[data-v-573650c6]{min-height:44px}.projects-pagination button[data-v-573650c6]:disabled{pointer-events:none;cursor:default}.page-count[data-v-573650c6]{color:var(--secondary);font-size:12px}.page-short[data-v-573650c6]{display:none}@media (max-width: 1200px){.projects-note[data-v-573650c6]{display:none}}@media (max-width: 900px){.projects-grid[data-v-573650c6]{grid-template-columns:minmax(0,1fr)}}@media (max-width: 639px){.projects-grid[data-v-573650c6]{gap:18px}.projects-pagination button[data-v-573650c6]{padding-inline:14px}.page-long[data-v-573650c6]{display:none}.page-short[data-v-573650c6]{display:inline}}.contact-row[data-v-aa8f0553]{border-top:1px solid var(--border);transition:border-color .25s}.contact-row[data-v-aa8f0553]:last-child{border-bottom:1px solid var(--border)}.contact-link[data-v-aa8f0553]{display:grid;grid-template-columns:minmax(0,1fr) 20px;align-items:center;gap:20px;min-height:88px;padding:22px 0;transition:background-color .25s}.contact-information[data-v-aa8f0553]{display:flex;align-items:center;gap:20px;min-width:0}.contact-information>span[data-v-aa8f0553]{flex-shrink:0;color:var(--secondary)}.contact-information>div[data-v-aa8f0553]{min-width:0}.contact-label[data-v-aa8f0553]{font-family:ui-monospace,monospace;font-size:9px;text-transform:uppercase;letter-spacing:.16em;color:var(--label)}.contact-value[data-v-aa8f0553]{margin-top:5px;font-size:15px;color:var(--secondary);overflow-wrap:anywhere;transition:color .25s}.contact-arrow[data-v-aa8f0553]{color:var(--label);width:18px;height:18px;transition:transform .25s,color .25s}.contact-link[data-v-aa8f0553]:active{background:var(--surface)}@media (hover: hover) and (pointer: fine){.contact-row[data-v-aa8f0553]:hover{border-color:var(--strong-border)}.contact-link:hover .contact-value[data-v-aa8f0553]{color:var(--primary)}.contact-link:hover .contact-arrow[data-v-aa8f0553]{color:var(--primary);transform:translate(3px,-3px)}}@media (max-width: 639px){.contact-link[data-v-aa8f0553]{padding-block:20px;gap:14px}.contact-information[data-v-aa8f0553]{gap:14px}.contact-value[data-v-aa8f0553]{font-size:14px}}@media (prefers-reduced-motion: reduce){.contact-row[data-v-aa8f0553],.contact-link[data-v-aa8f0553],.contact-value[data-v-aa8f0553],.contact-arrow[data-v-aa8f0553]{transition:none}.contact-link:hover .contact-arrow[data-v-aa8f0553]{transform:none}}#contact[data-v-8778664b]{padding-top:80px;padding-bottom:56px}.contact-layout[data-v-8778664b]{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.9fr);align-items:start;gap:48px}.contact-layout>div[data-v-8778664b]{min-width:0}.contact-layout>div>span[data-v-8778664b]{font-family:ui-monospace,monospace;font-size:10px;color:var(--label);opacity:1}.contact-heading[data-v-8778664b]{font-size:clamp(32px,3.2vw,46px);font-weight:600;line-height:1.15;letter-spacing:-.04em;margin-top:14px}.contact-layout p[data-v-8778664b]{max-width:280px;color:var(--secondary);opacity:1;line-height:1.65;font-size:14px;margin-top:20px}.contact-list[data-v-8778664b]{border-top:0}@media (max-width: 1000px){.contact-layout[data-v-8778664b]{grid-template-columns:1fr;gap:32px}.contact-layout p[data-v-8778664b]{max-width:390px}}@media (max-width: 639px){#contact[data-v-8778664b]{padding-top:56px;padding-bottom:48px}.contact-layout[data-v-8778664b]{gap:28px}}.portfolio-footer[data-v-9511effc]{border-top:1px solid var(--border);padding-block:22px;color:var(--secondary);font-family:ui-monospace,monospace;font-size:11px}@media (max-width: 639px){.portfolio-footer[data-v-9511effc]{padding-bottom:calc(24px + env(safe-area-inset-bottom))}.portfolio-footer p[data-v-9511effc]{padding-right:48px}}.footer-clue[data-v-9511effc]{margin-top:6px;font-size:9px;opacity:.4;transition:opacity .2s}.footer-clue[data-v-9511effc]:hover{opacity:.65}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,ui-sans-serif,system-ui,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: #f2f2f2;--secondary-background: #e7e8e9;--surface: #dedfe0;--primary: #17191b;--secondary: #55595e;--muted: #666a6e;--label: #686d73;--border: rgba(0,0,0,.08);--strong-border: rgba(0,0,0,.16);--grid: rgba(0,0,0,.055);--illumination: rgba(0,0,0,.08);--button: #17191b;--button-text: #f2f2f2;--button-hover: #303438;color-scheme:light}:root.dark{--background: #0b0c0d;--secondary-background: #111315;--surface: #16181a;--primary: #f2f2f2;--secondary: #a7a9ac;--muted: #666a6e;--label: #777b80;--border: rgba(255,255,255,.08);--strong-border: rgba(255,255,255,.16);--grid: rgba(255,255,255,.055);--illumination: rgba(255,255,255,.22);--button: #f1f1f1;--button-text: #111111;--button-hover: #ffffff;color-scheme:dark}html{scroll-behavior:auto}body{background:var(--background);color:var(--primary)}section[id]{scroll-margin-top:80px}::-moz-selection{background:var(--primary);color:var(--background)}::selection{background:var(--primary);color:var(--background)}:focus-visible{outline:2px solid var(--secondary);outline-offset:4px}.\!container{width:100%!important}.container{width:100%}@media (min-width: 640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width: 768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width: 1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width: 1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width: 1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.btn,.btn-ghost{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1.25rem;font-size:.875rem;line-height:1.25rem;border:1px solid var(--strong-border);border-radius:6px;transition:background-color .25s,border-color .25s}@media (min-width: 1600px){#projects .projects-pagination .btn-ghost{font-size:16px;padding:12px 24px}}.btn-ghost{background:transparent}.btn-ghost:hover{background:var(--surface);border-color:var(--secondary)}.card{border:1px solid var(--border);border-radius:4px;background:var(--secondary-background);transition:border-color .25s}.card:hover{border-color:var(--strong-border)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.\!visible{visibility:visible!important}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.bottom-6{bottom:1.5rem}.left-0{left:0}.right-6{right:1.5rem}.top-0{top:0}.top-\[12px\]{top:12px}.top-\[6px\]{top:6px}.top-full{top:100%}.isolate{isolation:isolate}.z-40{z-index:40}.z-50{z-index:50}.z-\[60\]{z-index:60}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.-mx-2{margin-left:-.5rem;margin-right:-.5rem}.mx-auto{margin-left:auto;margin-right:auto}.mb-8{margin-bottom:2rem}.mt-1{margin-top:.25rem}.mt-10{margin-top:2.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-8{margin-top:2rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.h-11{height:2.75rem}.h-9{height:2.25rem}.h-\[14px\]{height:14px}.h-px{height:1px}.w-11{width:2.75rem}.w-5{width:1.25rem}.w-9{width:2.25rem}.w-full{width:100%}.max-w-5xl{max-width:64rem}.flex-shrink{flex-shrink:1}.-rotate-45{--tw-rotate: -45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-45{--tw-rotate: 45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.scroll-mt-12{scroll-margin-top:3rem}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-8{gap:2rem}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.border{border-width:1px}.border-t{border-top-width:1px}.border-black\/10{border-color:#0000001a}.border-black\/20{border-color:#0003}.bg-black\/\[0\.03\]{background-color:#00000008}.bg-current{background-color:currentColor}.bg-white\/70{background-color:#ffffffb3}.fill-white{fill:#fff}.stroke-current{stroke:currentColor}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.pb-20{padding-bottom:5rem}.pt-24{padding-top:6rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[11px\]{font-size:11px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-relaxed{line-height:1.625}.tracking-\[0\.18em\]{letter-spacing:.18em}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-60{opacity:.6}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-85{opacity:.85}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}main.max-w-5xl,footer.max-w-5xl{--section-inset: 9vw;max-width:none;width:90%;padding-inline:0}main>section:not(#hero){padding-inline:var(--section-inset)}footer.max-w-5xl{padding-inline:var(--section-inset)}.graphite-navbar{background:var(--background);border-bottom:1px solid var(--border)}.nav-inner{max-width:none;width:90%;padding:22px 0;min-height:80px}.nav-inner>a{font-size:25px;letter-spacing:-.04em}.nav-links{color:var(--secondary)}.nav-link{transition:color .25s}.nav-link:hover,.nav-link.nav-active{color:var(--primary)}.nav-inner button{border-color:var(--strong-border);background:transparent}.mobile-navigation{background:var(--secondary-background);border-block:1px solid var(--border)}.graphite-hero{position:relative;isolation:isolate;min-height:calc(100svh - 80px);display:flex;align-items:center;padding:96px var(--section-inset) 140px}.hero-atmosphere{position:absolute;top:0;right:-5vw;bottom:0;left:-5vw;z-index:-1;pointer-events:none;--sky-background: var(--background);--sky-secondary: var(--secondary-background);background:radial-gradient(ellipse at 73% 9%,var(--illumination),transparent 45%),linear-gradient(135deg,var(--sky-background),var(--sky-secondary))}.hero-atmosphere:before{content:"";position:absolute;top:0;right:12.5%;bottom:0;left:8%;background-image:linear-gradient(to right,var(--grid) 1px,transparent 1px),linear-gradient(to bottom,var(--grid) 1px,transparent 1px);background-size:48px 48px;-webkit-mask-image:linear-gradient(to right,transparent,black 12%,black 78%,transparent),linear-gradient(to bottom,black,black 58%,transparent 100%);-webkit-mask-composite:source-in;mask-image:linear-gradient(to right,transparent,black 12%,black 78%,transparent),linear-gradient(to bottom,black,black 58%,transparent 100%);-webkit-mask-composite:source-in,xor;mask-composite:intersect}.hero-atmosphere:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 58% 30%,transparent 30%,var(--sky-background) 95%),linear-gradient(to top,var(--sky-background),transparent 24%)}.hero-copy{max-width:530px}.hero-eyebrow{color:var(--label);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px;text-transform:uppercase;letter-spacing:.35em;margin-bottom:20px}.hero-copy h1{font-size:clamp(76px,7.4vw,112px);font-weight:800;letter-spacing:-.055em;line-height:1.06}.hero-copy h1 span{color:var(--muted)}.hero-intro{color:var(--secondary);font-size:clamp(16px,1.3vw,20px);line-height:1.5;max-width:430px;margin-top:30px}.hero-actions{display:flex;align-items:center;gap:32px;margin-top:36px}.hero-primary{background:var(--button);color:var(--button-text);padding:14px 23px;font-size:14px;font-weight:500;gap:22px;border-color:transparent}.hero-primary:hover{background:var(--button-hover)}.hero-contact{position:relative;color:var(--secondary);padding-block:12px;font-size:14px}.hero-contact:after{content:"";position:absolute;bottom:5px;left:0;width:100%;height:1px;background:var(--secondary);transform:scaleX(.65);transform-origin:left;transition:transform .25s}.hero-contact:hover{color:var(--primary)}.hero-contact:hover:after{transform:scaleX(1)}.hero-markers{position:fixed;z-index:30;left:calc(5vw - 6px);top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:22px;font-family:ui-monospace,monospace;font-size:11px}.hero-markers a{position:relative;display:block;padding:6px;color:var(--muted);opacity:.5;margin-bottom:0;transition:opacity .25s,color .25s,margin-bottom .3s ease}.hero-markers a[aria-current]{margin-bottom:76px;color:var(--primary);opacity:1}.hero-markers a:hover{color:var(--primary);opacity:1}.hero-markers span{position:absolute;left:50%;top:34px;height:66px;width:1px;background:var(--strong-border);opacity:0;transform:scaleY(0);transform-origin:top;transition:transform .3s ease,opacity .25s}.hero-markers a[aria-current] span{transform:scaleY(1);opacity:1}.hero-motto,.hero-location{font-family:ui-monospace,monospace;font-size:9px;text-transform:uppercase;letter-spacing:.22em;line-height:1.9;color:var(--muted)}.hero-motto{position:absolute;right:0;top:44%;opacity:.55}.hero-location{position:absolute;bottom:36px;left:var(--section-inset)}.hero-location:after{content:"";display:block;margin-top:14px;width:32px;height:1px;background:var(--muted)}.graphite-scroll button{background:transparent;border-color:var(--strong-border);color:var(--secondary);-webkit-backdrop-filter:none;backdrop-filter:none;transition:border-color .25s,color .25s}.graphite-scroll button:hover{background:transparent;border-color:var(--secondary);color:var(--primary)}.project-card>button{background:var(--surface);border-color:var(--border)}.project-card>p{color:var(--secondary);opacity:1}.contact-list{border-top:1px solid var(--border)}#skills .chip{border:0;padding:0}#skills ul ul{gap:0}#skills .chip:not(:last-child):after{content:"/";margin-inline:12px;color:var(--muted)}#about .avatar-container,#about .avatar-container>div{border-radius:4px}#about .badge{border-radius:3px;background:var(--secondary-background);border-color:var(--border)}#about .avatar-container:hover .hover-img{transform:scale(1.02);filter:grayscale(1)}@media (min-width: 768px) and (max-width: 1023px){main.max-w-5xl,footer.max-w-5xl{--section-inset: 48px}.hero-motto{display:none}.hero-copy{max-width:440px}}@media (max-width: 767px){main.max-w-5xl,footer.max-w-5xl{--section-inset: 0px;width:100%;padding-inline:24px}.nav-inner{width:100%;padding:14px 24px;min-height:72px}main>section[id]:not(#hero){padding-block:56px 48px;margin-top:0}.graphite-hero{min-height:calc(100svh - 72px);padding:clamp(48px,10svh,80px) 0 112px}.hero-atmosphere{inset-inline:-24px}.hero-atmosphere:before{opacity:.6;background-size:40px 40px}.hero-markers,.hero-motto{display:none}.graphite-scroll{right:12px;bottom:calc(12px + env(safe-area-inset-bottom))}.hero-copy{max-width:530px}.hero-copy h1{font-size:clamp(64px,14vw,96px)}.hero-eyebrow{font-size:10px;letter-spacing:.28em}.hero-intro{font-size:16px;margin-top:24px}.hero-actions{gap:24px;flex-wrap:wrap;margin-top:30px}.hero-primary{padding:12px 18px;min-height:44px}.hero-contact{min-height:44px}.hero-location{bottom:28px;font-size:9px}}@media (max-width: 359px){main.max-w-5xl,footer.max-w-5xl,.nav-inner{padding-inline:18px}.hero-atmosphere{inset-inline:-18px}.hero-actions{gap:18px}}@media (min-width: 768px) and (max-height: 550px){.hero-markers{gap:12px;font-size:10px;top:calc(50% + 32px)}.hero-markers a[aria-current]{margin-bottom:36px}.hero-markers span{height:30px}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}@property --sky-background{syntax: "<color>"; inherits: true; initial-value: #f2f2f2;}@property --sky-secondary{syntax: "<color>"; inherits: true; initial-value: #e7e8e9;}@property --grid{syntax: "<color>"; inherits: true; initial-value: rgba(0,0,0,.055);}@property --illumination{syntax: "<color>"; inherits: true; initial-value: rgba(0,0,0,.08);}:root.theme-fallback{transition:--grid .22s cubic-bezier(.22,1,.36,1),--illumination .22s cubic-bezier(.22,1,.36,1)}:root.theme-fallback :where(body,header,nav,main,section,article,figure,footer,button,a,p,h1,h2,h3,span,li,ul,div,svg,path,circle),:root.theme-fallback :where(a,span,p,div):before,:root.theme-fallback :where(a,span,p,div):after{transition:background-color .22s cubic-bezier(.22,1,.36,1),color .22s cubic-bezier(.22,1,.36,1),border-color .22s cubic-bezier(.22,1,.36,1),fill .22s cubic-bezier(.22,1,.36,1),stroke .22s cubic-bezier(.22,1,.36,1),box-shadow .22s cubic-bezier(.22,1,.36,1)!important}@media (prefers-reduced-motion: reduce){:root.theme-fallback{transition-duration:.1s!important}:root.theme-fallback :where(body,header,nav,main,section,article,figure,footer,button,a,p,h1,h2,h3,span,li,ul,div,svg,path,circle),:root.theme-fallback :where(a,span,p,div):before,:root.theme-fallback :where(a,span,p,div):after{transition-duration:.1s!important}}:root.theme-fallback .hero-atmosphere{transition:--sky-background .22s cubic-bezier(.22,1,.36,1),--sky-secondary .22s cubic-bezier(.22,1,.36,1)!important}@media (prefers-reduced-motion: reduce){:root.theme-fallback .hero-atmosphere{transition-duration:.1s!important}}:root.theme-radial *,:root.theme-radial *:before,:root.theme-radial *:after,:root.theme-radial{transition:none!important}:root.theme-radial .theme-sky{view-transition-name:theme-toggle}:root.theme-radial::view-transition-group(root),:root.theme-radial::view-transition-group(theme-toggle){animation:none}:root.theme-radial::view-transition-image-pair(root),:root.theme-radial::view-transition-image-pair(theme-toggle){isolation:auto}:root.theme-radial::view-transition-old(root),:root.theme-radial::view-transition-new(root),:root.theme-radial::view-transition-new(theme-toggle){animation:none;mix-blend-mode:normal;opacity:1}:root.theme-radial::view-transition-old(root){z-index:1}:root.theme-radial::view-transition-new(root){z-index:2;animation:theme-reveal .74s cubic-bezier(.76,0,.24,1) both}:root.theme-radial::view-transition-group(theme-toggle){z-index:3}:root.theme-radial::view-transition-old(theme-toggle){display:none}@keyframes theme-reveal{0%{clip-path:circle(0px at var(--theme-x) var(--theme-y))}to{clip-path:circle(var(--theme-radius) at var(--theme-x) var(--theme-y))}}.blueprint-active .hero-atmosphere{--grid: rgba(0,0,0,.09)}.dark.blueprint-active .hero-atmosphere{--grid: rgba(255,255,255,.09)}@media (max-width: 767px){.blueprint-active .hero-atmosphere:before{opacity:.7}}.blueprint-active #skills:before,.blueprint-active #projects:before{opacity:.8}.hero-index-indicator{position:absolute;top:0;left:50%;width:1px;height:66px;background:var(--strong-border);pointer-events:none;transition:transform var(--navigation-duration, .48s) cubic-bezier(.76,0,.24,1),opacity .18s}@media (min-width: 768px) and (max-height: 550px){.hero-index-indicator{height:30px}}@media (min-width: 1600px){body{font-size:clamp(18px,.78vw,20px)}main.max-w-5xl,footer.max-w-5xl{max-width:1920px;--section-inset: clamp(80px, 5vw, 160px)}.graphite-navbar .nav-inner{max-width:1920px;min-height:96px;padding-block:26px}.graphite-navbar .nav-inner>a{font-size:32px}.graphite-navbar .nav-link{font-size:clamp(17px,.78vw,20px)}.graphite-navbar .language-switcher{font-size:13px}.graphite-navbar .theme-sky{width:44px;height:44px}.graphite-hero{min-height:calc(100svh - 96px)}.hero-copy{max-width:760px}.hero-copy h1{font-size:clamp(112px,5.8vw,160px)}.hero-intro{font-size:clamp(21px,1vw,26px);max-width:640px;line-height:1.6}.hero-eyebrow,.hero-motto,.hero-location,.hero-markers{font-size:13px}.hero-primary,.hero-contact{font-size:18px}.hero-primary{padding:17px 28px}main>section[id]:not(#hero){padding-block:112px 96px}#about .about-eyebrow,#skills>div>span,#projects .projects-eyebrow,#writing .writing-eyebrow,#contact .contact-layout>div>span{font-size:13px}#about>h2,#skills h2{font-size:clamp(32px,1.6vw,42px)}#about .about-layout{grid-template-columns:clamp(240px,12vw,300px) minmax(0,1fr);gap:56px}#about .portrait-wrapper,#about .badge{width:clamp(240px,12vw,300px)}#about .badge{font-size:13px;padding-block:10px}#about .about-copy h3{font-size:clamp(25px,1.2vw,32px)}#about .about-copy p{max-width:72ch;line-height:1.75}#skills>div>p{max-width:72ch}#skills .capability-row{grid-template-columns:64px minmax(240px,300px) minmax(0,1fr) 28px;padding:24px;gap:32px}#skills .capability-icon{width:64px;height:64px}#skills .capability-copy h3,#skills .capability-index{font-size:13px}#skills .capability-copy p,#skills .capability-tags li{font-size:15px}#projects .projects-heading,#writing .writing-header h2,#contact .contact-heading{font-size:clamp(48px,2.3vw,60px)}#writing .writing-header h2{max-width:600px}#projects .projects-intro,#writing .writing-intro,#contact .contact-layout p{font-size:18px;max-width:65ch}#projects .projects-note,#projects .page-count{font-size:15px}#projects .projects-grid{gap:30px}#projects .project-card{padding:28px}#projects .project-title{font-size:clamp(24px,1.1vw,28px)}#projects .project-description{font-size:18px;line-height:1.7}#projects .project-tags li,#projects .project-actions a,#projects .media-count,#projects .media-hint{font-size:14px}#projects .projects-pagination .btn{font-size:16px;padding:12px 24px}#writing .writing-copy h3{font-size:29px}#writing .writing-excerpt{font-size:17px}#writing .writing-source,#writing .writing-tags,#writing .writing-date,#writing .writing-index,#writing .writing-all{font-size:14px}#contact .contact-layout{gap:64px}#contact .contact-label{font-size:12px}#contact .contact-value{font-size:20px}#contact .contact-link{min-height:104px}.portfolio-footer{font-size:14px}.portfolio-footer .footer-clue{font-size:12px}}.hover\:bg-black\/10:hover{background-color:#0000001a}.hover\:bg-black\/5:hover{background-color:#0000000d}.hover\:bg-white\/90:hover{background-color:#ffffffe6}.hover\:opacity-90:hover{opacity:.9}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-black:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(0 0 0 / var(--tw-ring-opacity, 1))}.active\:scale-95:active{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.disabled\:opacity-40:disabled{opacity:.4}.dark\:border-white\/10:is(.dark *){border-color:#ffffff1a}.dark\:border-white\/20:is(.dark *){border-color:#fff3}.dark\:bg-black\/70:is(.dark *){background-color:#000000b3}.dark\:bg-white\/\[0\.06\]:is(.dark *){background-color:#ffffff0f}.dark\:fill-black:is(.dark *){fill:#000}.dark\:hover\:bg-black\/90:hover:is(.dark *){background-color:#000000e6}.dark\:hover\:bg-white\/10:hover:is(.dark *){background-color:#ffffff1a}.dark\:focus-visible\:ring-white:focus-visible:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity, 1))}@media (min-width: 640px){.sm\:mt-12{margin-top:3rem}.sm\:scroll-mt-16{scroll-margin-top:4rem}.sm\:grid-cols-\[220px_1fr\]{grid-template-columns:220px 1fr}.sm\:items-start{align-items:flex-start}}@media (min-width: 768px){.md\:mt-14{margin-top:3.5rem}.md\:flex{display:flex}.md\:hidden{display:none}.md\:scroll-mt-16{scroll-margin-top:4rem}.md\:pt-28{padding-top:7rem}}
