@font-face{font-family:Space Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(../media/32687112bd2dd8db-s.0gspg~~t9nou8.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(../media/28868e710e86be81-s.0rx81dn62y51_.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(../media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(../media/32687112bd2dd8db-s.0gspg~~t9nou8.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(../media/28868e710e86be81-s.0rx81dn62y51_.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(../media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(../media/32687112bd2dd8db-s.0gspg~~t9nou8.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(../media/28868e710e86be81-s.0rx81dn62y51_.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(../media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(../media/32687112bd2dd8db-s.0gspg~~t9nou8.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(../media/28868e710e86be81-s.0rx81dn62y51_.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(../media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk Fallback;src:local(Arial);ascent-override:89.71%;descent-override:26.62%;line-gap-override:0.0%;size-adjust:109.69%}.space_grotesk_a4aedc36-module__a0_-uq__className{font-family:Space Grotesk,Space Grotesk Fallback;font-style:normal}.space_grotesk_a4aedc36-module__a0_-uq__variable{--font-heading:"Space Grotesk", "Space Grotesk Fallback"}
@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2c55a0e60120577a-s.0bjc5tiuqdqro.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.0m6w47a4e5dy9.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/ad66f9afd8947f86-s.11u06r12fd6v_.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5476f68d60460930-s.0wxq9webf.ew4.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.067x_6k0k23tk.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1bffadaabf893a1e-s.16ipb6fqu393i.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.inter_c6e48ee1-module__JRO3KW__className{font-family:Inter,Inter Fallback;font-style:normal}.inter_c6e48ee1-module__JRO3KW__variable{--font-body:"Inter", "Inter Fallback"}
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--radius-sm:.25rem;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--ease-out:cubic-bezier(0, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}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;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fixed{position:fixed}.sticky{position:sticky}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.shrink{flex-shrink:1}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.\!ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor)!important;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)!important}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-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,)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:root{--bg:#fff;--bg-soft:#f5f5f4;--bg-muted:#ececeb;--text:#0d0d0d;--text-muted:#333;--text-light:#5c5c5c;--action:#ffd600;--action-deep:#f0c400;--ink:#0d0d0d;--accent:#ff0062;--accent-2:#2f6fe4;--accent-3:#ffd600;--border:#0d0d0d24;--border-bold:#0d0d0d;--shadow-sm:0 2px 8px #0d0d0d0d;--shadow-md:0 10px 30px #0d0d0d14;--shadow-lg:0 24px 60px #0d0d0d1f;--radius:16px;--radius-sm:10px;--radius-pill:999px;--font-heading:var(--font-heading), "Space Grotesk", system-ui, sans-serif;--font-body:var(--font-body), "Inter", system-ui, sans-serif;--container:1200px}.scroll-progress{z-index:200;background:var(--border);height:3px;position:fixed;top:0;left:0;right:0}.scroll-progress__bar{background:linear-gradient(90deg, var(--accent), var(--accent-2), var(--accent-3));transform-origin:0;will-change:transform;width:100%;height:100%;transform:scaleX(0)}.theme-switcher{z-index:150;position:fixed;bottom:28px;right:28px}.theme-switcher__toggle{border:2px solid var(--border);background:var(--bg);width:48px;height:48px;color:var(--text);cursor:pointer;box-shadow:var(--shadow-md);border-radius:50%;place-items:center;transition:all .3s;display:grid}.theme-switcher__toggle:hover{border-color:var(--border-bold);color:var(--accent);transform:rotate(45deg)scale(1.1);box-shadow:0 8px 32px #0d0d0d2e}.theme-switcher__panel{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);min-width:180px;padding:16px;animation:.3s cubic-bezier(.34,1.56,.64,1) panel-in;position:absolute;bottom:60px;right:0}@keyframes panel-in{0%{opacity:0;transform:translateY(10px)scale(.9)}to{opacity:1;transform:translateY(0)scale(1)}}.theme-switcher__label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-light);margin-bottom:12px;font-size:.75rem;font-weight:700;display:block}.theme-switcher__options{gap:10px;display:flex}.theme-switcher__dot{cursor:pointer;border:3px solid #0000;border-radius:50%;width:28px;height:28px;transition:all .25s}.theme-switcher__dot:hover{transform:scale(1.2)}.theme-switcher__dot--active{border-color:var(--text);transform:scale(1.15);box-shadow:0 0 0 3px #00000014}.word-wrap{vertical-align:bottom;perspective:600px;display:inline-block;overflow:hidden}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:var(--bg);color:var(--text);font-family:var(--font-body);line-height:1.6;overflow-x:hidden}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}img{max-width:100%;display:block}.cursor__dot,.cursor__ring{pointer-events:none;z-index:9999;opacity:0;will-change:transform;position:fixed;top:0;left:0;transform:translate(-50%,-50%)}.cursor__dot{background:var(--accent);mix-blend-mode:normal;border-radius:50%;width:7px;height:7px;margin:-3.5px 0 0 -3.5px}.cursor__ring{border:1.5px solid var(--accent);border-radius:50%;width:38px;height:38px;margin:-19px 0 0 -19px}@supports (color:color-mix(in lab, red, red)){.cursor__ring{border:1.5px solid color-mix(in srgb, var(--accent) 60%, transparent)}}.cursor__ring{justify-content:center;align-items:center;transition:width .3s cubic-bezier(.22,1,.36,1),height .3s cubic-bezier(.22,1,.36,1),background-color .3s,border-color .3s;display:flex}.cursor__ring--active{background:var(--accent);width:64px;height:64px;margin:-32px 0 0 -32px}@supports (color:color-mix(in lab, red, red)){.cursor__ring--active{background:color-mix(in srgb, var(--accent) 12%, transparent)}}.cursor__ring--active{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.cursor__ring--active{border-color:color-mix(in srgb, var(--accent) 80%, transparent)}}.cursor__ring--down{width:30px;height:30px;margin:-15px 0 0 -15px}.cursor__label{font-family:var(--font-body);letter-spacing:.04em;text-transform:uppercase;color:var(--accent);opacity:0;white-space:nowrap;font-size:.62rem;font-weight:700;transition:opacity .25s,transform .25s;transform:scale(.8)}.cursor__ring--labeled{background:var(--accent);border-color:var(--accent);width:76px;height:76px;margin:-38px 0 0 -38px}.cursor__ring--labeled .cursor__label{opacity:1;color:#fff;transform:scale(1)}h1,h2,h3,h4{font-family:var(--font-heading);letter-spacing:-.04em;color:var(--text);font-weight:800;line-height:1.04}.section-container{width:min(var(--container), calc(100% - 48px));margin:0 auto}.section-eyebrow{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted);align-items:center;gap:10px;margin-bottom:18px;font-size:.8rem;font-weight:700;display:inline-flex}.section-eyebrow:before{content:"";background:var(--accent);border-radius:2px;flex-shrink:0;width:22px;height:3px}.section-title{margin-bottom:48px;font-size:clamp(2.6rem,5.2vw,4.4rem)}.text-accent,.hero__title .accent-word,.projects__intro-title .accent-word{color:var(--text);background-image:linear-gradient(transparent 58%, var(--action) 58%)}@supports (color:color-mix(in lab, red, red)){.text-accent,.hero__title .accent-word,.projects__intro-title .accent-word{background-image:linear-gradient(transparent 58%, color-mix(in srgb, var(--action) 88%, transparent) 58%)}}.text-accent,.hero__title .accent-word,.projects__intro-title .accent-word{-webkit-box-decoration-break:clone;box-decoration-break:clone;background-repeat:no-repeat;background-size:100% 100%;padding:0 .06em;transition:background-size .5s cubic-bezier(.22,1,.36,1)}.hero__blob,.about__blob,.projects__blob,.contact__blob,.section-eyebrow,.navbar__link:after,.exp__dot,.exp__line-fill,.hero__badge,.stat-card__value,.scroll-progress__bar{transition:all .4s}.btn{font-family:var(--font-heading);letter-spacing:-.01em;border-radius:var(--radius);cursor:pointer;white-space:nowrap;border:none;align-items:center;gap:8px;padding:16px 32px;font-size:1rem;font-weight:700;transition:background-color .4s,color .3s,border-color .3s,box-shadow .3s;display:inline-flex;position:relative;overflow:hidden}.btn__inner{z-index:1;align-items:center;gap:8px;display:inline-flex;position:relative}.btn--accent{background-color:var(--action);color:var(--ink);box-shadow:var(--shadow-sm)}.btn--accent:before{content:"";background:linear-gradient(120deg,#0000 30%,#ffffff47 50%,#0000 70%);transition:transform .7s cubic-bezier(.22,1,.36,1);position:absolute;inset:0;transform:translate(-120%)}.btn--accent:hover{background-color:var(--action-deep);box-shadow:var(--shadow-md)}.btn--accent:hover:before{transform:translate(120%)}.btn--outline{color:var(--text);border:2px solid var(--border-bold);background-color:#0000}.btn--outline:hover{background-color:var(--text);color:#fff;border-color:var(--border-bold);box-shadow:var(--shadow-md)}.navbar{z-index:100;justify-content:space-between;align-items:center;padding:20px clamp(24px,4vw,48px);transition:all .35s;display:flex;position:fixed;top:0;left:0;right:0}.navbar--scrolled{background:var(--bg);border-bottom:1px solid var(--border);padding:14px clamp(24px,4vw,48px);box-shadow:0 4px 24px #0d0d0d0d}.navbar__logo{font-family:var(--font-heading);letter-spacing:-.02em;font-size:1.25rem;font-weight:800}.logo-bracket{color:var(--accent);font-weight:400}.navbar__links{gap:36px;display:flex}.navbar__link{color:var(--text-muted);font-size:.92rem;font-weight:600;transition:color .25s;position:relative}.navbar__link:after{content:"";background:var(--accent);border-radius:1px;width:0;height:2px;transition:width .3s;position:absolute;bottom:-4px;left:0}.navbar__link:hover,.navbar__link--active{color:var(--text)}.navbar__link:hover:after,.navbar__link--active:after{width:100%}.navbar__cta{background:var(--text);color:#fff;border-radius:var(--radius-pill);will-change:transform;padding:10px 24px;font-size:.88rem;font-weight:700;transition:background-color .3s,color .3s,box-shadow .3s;display:inline-block}.navbar__cta:hover{background:var(--action);color:var(--ink);box-shadow:0 8px 20px #ffd60073}.navbar__cta-inner{display:inline-block}section[id]{scroll-margin-top:88px}.hero{align-items:center;height:100vh;min-height:600px;max-height:100vh;padding:90px 0 40px;display:flex;position:relative;overflow:hidden}.hero__container{width:min(var(--container), calc(100% - 48px));grid-template-columns:1fr 1fr;align-items:center;gap:40px;margin:0 auto;display:grid}.hero__badge{background:var(--bg);border:1px solid var(--border-bold);border-radius:var(--radius-pill);color:var(--text);align-items:center;gap:8px;margin-bottom:28px;padding:8px 16px;font-size:.82rem;font-weight:700;display:inline-flex}.hero__badge-dot{background:#22c55e;border-radius:50%;width:8px;height:8px;animation:2s ease-in-out infinite pulse-dot}@keyframes pulse-dot{0%,to{opacity:1;box-shadow:0 0 #22c55e66}50%{opacity:.8;box-shadow:0 0 0 8px #22c55e00}}.hero__title{letter-spacing:-.045em;perspective:800px;margin-bottom:22px;font-size:clamp(2.6rem,5.5vw,5rem);line-height:1.02}.hero__title .word{display:inline-block}.hero__subtitle{color:var(--text-muted);max-width:480px;margin-bottom:24px;font-size:clamp(.95rem,1.3vw,1.1rem);line-height:1.7}.hero__subtitle strong{color:var(--text);font-weight:700}.hero__actions{flex-wrap:wrap;gap:14px;display:flex}.hero__tags{flex-wrap:wrap;gap:8px;margin-top:20px;display:flex}.hero__tag{background-color:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-muted);white-space:nowrap;flex-shrink:0;align-items:center;padding:6px 14px;font-size:.78rem;font-weight:700;transition:all .25s;display:inline-flex}.hero__tag:hover{background-color:var(--accent);color:#fff;border-color:var(--accent);transform:translateY(-2px)scale(1.05)}.hero__visual{justify-content:center;align-items:center;min-height:500px;display:flex;position:relative}.hero__blob{filter:blur(1px);z-index:0;will-change:transform;border-radius:30% 70% 70% 30%/30% 30% 70% 70%;position:absolute}.hero__blob--1{background:linear-gradient(135deg, var(--action), #ffe66b);opacity:.82;width:380px;height:380px;animation:8s ease-in-out infinite blob-morph-1;top:50%;left:50%;transform:translate(-50%,-50%)}.hero__blob--2{background:linear-gradient(135deg, var(--accent), #ff7eb0);opacity:.6;width:300px;height:300px;animation:10s ease-in-out infinite blob-morph-2;top:55%;left:55%;transform:translate(-50%,-50%)}@keyframes blob-morph-1{0%{border-radius:30% 70% 70% 30%/30% 30% 70% 70%}25%{border-radius:58% 42% 75% 25%/76% 46% 54% 24%}50%{border-radius:50% 50% 33% 67%/55% 27% 73% 45%}75%{border-radius:33% 67% 58% 42%/63% 68% 32% 37%}to{border-radius:30% 70% 70% 30%/30% 30% 70% 70%}}@keyframes blob-morph-2{0%{border-radius:40% 60% 60% 40%/60% 30% 70% 40%}33%{border-radius:70% 30% 50% 50%/30% 50% 50% 70%}66%{border-radius:30% 60% 70% 40%/50% 60% 30%}to{border-radius:40% 60% 60% 40%/60% 30% 70% 40%}}.hero__image-wrap{z-index:2;position:relative}.hero{--mx:0;--my:0}.hero__blob--1{translate:calc(var(--mx) * 32px) calc(var(--my) * 28px);transition:translate .6s cubic-bezier(.22,1,.36,1)}.hero__blob--2{translate:calc(var(--mx) * -26px) calc(var(--my) * -22px);transition:translate .65s cubic-bezier(.22,1,.36,1)}.hero__image-wrap{translate:calc(var(--mx) * 18px) calc(var(--my) * 14px);transition:translate .5s cubic-bezier(.22,1,.36,1)}.hero__image{object-fit:contain;filter:drop-shadow(0 20px 40px #00000014);width:min(420px,45vw);height:auto}.hero__scroll{flex-direction:column;align-items:center;gap:8px;display:flex;position:absolute;bottom:32px;left:50%;transform:translate(-50%)}.hero__scroll-text{text-transform:uppercase;letter-spacing:.15em;color:var(--text-light);font-size:.72rem;font-weight:700}.hero__scroll-line{background:var(--border);width:1px;height:48px;position:relative;overflow:hidden}.hero__scroll-dot{background:var(--accent);border-radius:2px;width:3px;height:12px;animation:2s ease-in-out infinite scroll-bounce;position:absolute;left:-1px}@keyframes scroll-bounce{0%{top:-12px}50%{top:48px}to{top:-12px}}.about{background:var(--bg);padding:120px 0}.about__layout{grid-template-columns:1fr 1.2fr;align-items:center;gap:80px;display:grid}.about__character-container{justify-content:center;align-items:center;min-height:420px;display:flex;position:relative}.about__blob{background:linear-gradient(135deg, var(--accent-2), #7db4ff);opacity:.6;z-index:0;border-radius:30% 70% 70% 30%/30% 30% 70% 70%;width:340px;height:340px;animation:9s ease-in-out infinite blob-morph-1;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.about__character-wrap{z-index:2;position:relative}.about__character{filter:drop-shadow(0 16px 32px #0000000f);width:min(360px,40vw);height:auto}.about__heading h2{margin-bottom:8px;font-size:clamp(2rem,4vw,3.2rem)}.about__desc{color:var(--text-muted);max-width:540px;margin:24px 0 40px;font-size:1.05rem;line-height:1.75}.about__stats{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}.stat-card{background:var(--bg-soft);border-radius:var(--radius);border:1px solid var(--border);padding:24px;transition:all .3s}.stat-card:hover{box-shadow:var(--shadow-md);border-color:var(--border-bold);transform:translateY(-3px)}.stat-card__value{font-family:var(--font-heading);color:var(--text);letter-spacing:-.045em;margin-bottom:4px;font-size:2.7rem;font-weight:800;display:block}.stat-card__label{color:var(--text-muted);font-size:.85rem;font-weight:600}.clients{background:var(--bg-soft);padding:100px 0;overflow:hidden}.clients__title{text-align:center}.clients .section-eyebrow,.clients .section-label{text-align:center;display:block}.marquee-wrap{width:100%;transform:skewX(var(--scroll-skew,0deg));will-change:transform;padding:20px 0;transition:transform .5s cubic-bezier(.22,1,.36,1);position:relative;overflow:hidden}.marquee-wrap:before,.marquee-wrap:after{content:"";z-index:2;pointer-events:none;width:120px;position:absolute;top:0;bottom:0}.marquee-wrap:before{background:linear-gradient(to right, var(--bg-soft), transparent);left:0}.marquee-wrap:after{background:linear-gradient(to left, var(--bg-soft), transparent);right:0}.marquee{gap:48px;width:max-content;display:flex}.marquee--forward{animation:30s linear infinite marquee-scroll}.marquee--reverse{animation:35s linear infinite reverse marquee-scroll}@keyframes marquee-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.marquee__item{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);cursor:default;white-space:nowrap;flex-shrink:0;align-items:center;gap:14px;padding:16px 28px;transition:all .3s;display:flex}.marquee__item:hover{box-shadow:var(--shadow-md);border-color:var(--border-bold);transform:translateY(-3px)scale(1.03)}.marquee__logo{object-fit:contain;flex-shrink:0;width:27px;height:27px;transition:transform .3s}.marquee__item:hover .marquee__logo{transform:scale(1.12)}.marquee__mono{color:#fff;width:30px;height:30px;font-family:var(--font-heading);border-radius:9px;flex-shrink:0;place-items:center;font-size:.95rem;font-weight:800;transition:transform .3s;display:grid}.marquee__item:hover .marquee__mono{transform:scale(1.12)rotate(-3deg)}.marquee__name{font-family:var(--font-heading);letter-spacing:-.01em;color:var(--text);font-size:1rem;font-weight:700}.marquee-divider{background:linear-gradient(90deg, transparent, var(--accent), transparent);opacity:.4;border-radius:1px;width:200px;height:2px;margin:8px auto}.marquee-tooltip{z-index:200;background:var(--text);color:#fff;border-radius:var(--radius-sm);pointer-events:none;max-width:280px;padding:10px 16px;font-size:.82rem;font-weight:600;animation:.2s tooltip-in;position:fixed;box-shadow:0 8px 24px #00000026}@keyframes tooltip-in{0%{opacity:0;transform:translate(-50%,-90%)}to{opacity:1;transform:translate(-50%,-100%)}}.experience{background:var(--bg);padding:120px 0}.exp__timeline{max-width:800px;margin:0 auto;position:relative}.exp__line{background:var(--bg-muted);width:2px;position:absolute;top:0;bottom:0;left:24px}.exp__line-fill{background:linear-gradient(180deg, var(--accent), var(--accent-3));border-radius:1px;width:100%;height:100%}.exp__item{padding-bottom:44px;padding-left:72px;position:relative}.exp__item:last-child{padding-bottom:0}.exp__dot{background:var(--bg);border:3px solid var(--accent);z-index:2;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;display:flex;position:absolute;top:6px;left:14px}.exp__dot-inner{background:var(--accent);border-radius:50%;width:8px;height:8px}.exp__card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:28px;transition:all .3s}.exp__card:hover{box-shadow:var(--shadow-md);border-color:var(--border-bold);transform:translateY(-2px)}.exp__card-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:14px;display:flex}.exp__period{color:var(--text-light);font-size:.82rem;font-weight:700}.exp__badge{background:var(--action);color:var(--ink);border-radius:var(--radius-pill);padding:4px 12px;font-size:.75rem;font-weight:700}.exp__badge--intern{color:var(--text-muted);border:1px solid var(--border-bold);background:0 0}.exp__role{margin-bottom:4px;font-size:1.4rem}.exp__company{color:var(--text);margin-bottom:16px;font-size:.95rem;font-weight:700}.exp__list{gap:10px;padding:0;list-style:none;display:grid}.exp__list li{color:var(--text-muted);padding-left:22px;font-size:.92rem;line-height:1.55;position:relative}.exp__list li:before{content:"▸";color:var(--accent);font-weight:700;position:absolute;left:0}.skills{background:var(--bg-soft);padding:120px 0}.skills__grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.skill-group{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:28px;transition:all .3s;position:relative;overflow:hidden}.skill-group:before{content:"";background:var(--skill-color);opacity:0;height:3px;transition:opacity .3s;position:absolute;top:0;left:0;right:0}.skill-group:hover{box-shadow:var(--shadow-md);transform:translateY(-4px)}.skill-group:hover:before{opacity:1}.skill-group__header{align-items:center;gap:10px;margin-bottom:16px;display:flex}.skill-group__icon{border-radius:var(--radius-sm);background:var(--skill-color);justify-content:center;align-items:center;width:38px;height:38px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.skill-group__icon{background:color-mix(in srgb, var(--skill-color) 14%, transparent)}}.skill-group__icon{color:var(--skill-color);flex-shrink:0}.skill-group__icon svg{width:20px;height:20px}.skill-group__header h3{letter-spacing:-.01em;font-size:1rem;font-weight:700}.skill-group__pills{flex-wrap:wrap;gap:8px;display:flex}.skill-pill{background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-muted);padding:6px 14px;font-size:.82rem;font-weight:600;transition:all .25s}.skill-group:hover .skill-pill{border-color:var(--skill-color)}@supports (color:color-mix(in lab, red, red)){.skill-group:hover .skill-pill{border-color:color-mix(in srgb, var(--skill-color) 35%, var(--border))}}.skill-pill:hover{background:var(--accent);color:#fff;border-color:var(--accent);transform:translateY(-1px)}.projects{background:var(--bg);position:relative}.projects__pin{min-height:100vh;overflow:hidden}.projects__track{will-change:transform;align-items:center;gap:40px;height:100vh;padding-inline:7vw;display:flex}.projects__intro{flex-shrink:0;justify-content:center;align-items:center;gap:56px;width:min(74vw,900px);height:100%;display:flex}.projects__intro-copy{max-width:460px}.projects__intro-title{perspective:800px;margin:16px 0 22px;font-size:clamp(2.4rem,4vw,3.8rem);line-height:1.05}.projects__intro-title .word{display:inline-block}.projects__intro-sub{color:var(--text-muted);max-width:420px;margin-bottom:28px;font-size:clamp(.95rem,1.2vw,1.1rem);line-height:1.7}.projects__intro-hint{font-family:var(--font-heading);letter-spacing:.04em;color:var(--accent);font-size:.85rem;font-weight:700;animation:1.8s ease-in-out infinite hint-nudge;display:inline-block}@keyframes hint-nudge{0%,to{transform:translate(0)}50%{transform:translate(8px)}}.projects__character-container{flex-shrink:0;width:300px;height:360px;position:relative}.projects__intro-blob{background:linear-gradient(135deg, var(--action), #ffe66b);opacity:.5;z-index:0;width:260px;height:260px;margin:auto;animation:8s ease-in-out infinite blob-morph-2;position:absolute;inset:0}.projects__character{z-index:2;position:relative}.projects__character-img{filter:drop-shadow(0 14px 28px #00000014);width:260px;height:auto}.project-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;flex-shrink:0;width:clamp(340px,30vw,440px);height:min(72vh,540px);padding:40px;transition:border-color .4s,box-shadow .4s;display:flex;position:relative;overflow:hidden}.project-card:before{content:"";background:var(--card-accent);transform-origin:0;height:5px;transition:transform .5s cubic-bezier(.4,0,.2,1);position:absolute;top:0;left:0;right:0;transform:scaleX(0)}.project-card:after{content:"";background:radial-gradient(circle at 50% 0%, var(--card-accent), transparent 65%);position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.project-card:after{background:radial-gradient(circle at 50% 0%, color-mix(in srgb, var(--card-accent) 9%, transparent), transparent 65%)}}.project-card:after{opacity:0;pointer-events:none;transition:opacity .45s}.project-card:hover{border-color:var(--card-accent)}@supports (color:color-mix(in lab, red, red)){.project-card:hover{border-color:color-mix(in srgb, var(--card-accent) 38%, var(--border))}}.project-card:hover{box-shadow:var(--shadow-lg)}.project-card:hover:before{transform:scaleX(1)}.project-card:hover:after{opacity:1}.project-card__index{font-family:var(--font-heading);color:var(--card-accent);opacity:.16;margin-bottom:auto;font-size:3.6rem;font-weight:800;line-height:1}.project-card__body{z-index:1;position:relative}.project-card__top{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.project-card__tag{background:var(--bg-soft);border-radius:var(--radius-pill);color:var(--text-light);text-transform:uppercase;letter-spacing:.04em;padding:4px 12px;font-size:.72rem;font-weight:700}.project-card__highlight{font-family:var(--font-heading);color:var(--card-accent);text-align:right;font-size:.85rem;font-weight:800}.project-card__title{margin-bottom:12px;font-size:1.5rem;line-height:1.2}.project-card__desc{color:var(--text-muted);margin-bottom:22px;font-size:.92rem;line-height:1.65}.project-card__tech{flex-wrap:wrap;gap:8px;display:flex}.tech-pill{background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-muted);padding:5px 12px;font-size:.78rem;font-weight:600}.projects__end{flex-shrink:0;justify-content:center;align-items:center;width:min(60vw,660px);height:100%;display:flex}.projects__end-inner{text-align:center;max-width:480px}.projects__end-kicker{font-family:var(--font-heading);text-transform:uppercase;letter-spacing:.08em;color:var(--text-light);margin-bottom:16px;font-size:.8rem;font-weight:700;display:block}.projects__end-title{margin-bottom:32px;font-size:clamp(2rem,3.5vw,3rem);line-height:1.1}@media (max-width:1023px){.projects{padding:90px 0}.projects__pin{min-height:0;overflow:visible}.projects__track{flex-direction:column;align-items:stretch;gap:24px;max-width:760px;height:auto;margin:0 auto;padding:0 clamp(20px,5vw,40px)}.projects__intro{text-align:center;flex-direction:column-reverse;gap:24px;width:100%;margin-bottom:12px}.projects__intro-copy{max-width:540px}.projects__intro-sub{margin-inline:auto}.projects__intro-hint{display:none}.project-card{width:100%;height:auto;min-height:300px}.projects__end{width:100%;padding:32px 0}}.game{background:var(--bg-soft);padding:120px 0}.game__container{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);max-width:640px;box-shadow:var(--shadow-lg);margin:0 auto;overflow:hidden}.game__header{background:var(--bg-soft);justify-content:space-around;align-items:center;gap:8px;padding:15px 24px;display:flex;box-shadow:inset 0 -1px #0d0d0d0d}.game__stat{flex-direction:column;align-items:center;gap:3px;display:flex}.game__stat-label{text-transform:uppercase;letter-spacing:.12em;color:var(--text-light);font-size:.66rem;font-weight:700}.game__stat-value{font-family:var(--font-heading);color:var(--text);font-variant-numeric:tabular-nums;font-size:1.2rem;font-weight:800;line-height:1}.game__stat-value--dots{color:var(--accent);letter-spacing:2px;font-size:.9rem}.game__canvas-wrap{justify-content:center;align-items:center;min-height:400px;display:flex;position:relative}.game__canvas{cursor:none;display:block}.game__overlay{-webkit-backdrop-filter:saturate(180%)blur(14px);z-index:5;background:#f7f7f880;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.game__overlay-card{text-align:center;max-width:82%;box-shadow:var(--shadow-lg), inset 0 0 0 1px #fff9;background:#ffffffd1;border-radius:20px;flex-direction:column;align-items:center;gap:10px;padding:28px 36px 30px;animation:.42s cubic-bezier(.22,1,.36,1) gameOverlayPop;display:flex}@keyframes gameOverlayPop{0%{opacity:0;transform:translateY(12px)scale(.96)}to{opacity:1;transform:none}}.game__overlay-title{font-family:var(--font-heading);color:var(--text);letter-spacing:-.03em;font-size:1.9rem;font-weight:800}.game__overlay-sub{color:var(--text-muted);margin-bottom:6px;font-size:.95rem;line-height:1.55}.game__btn{border-radius:var(--radius-pill);margin-top:4px;padding:13px 32px;font-size:.95rem}.game__canvas--grid{cursor:default}.game__canvas--tap{cursor:pointer}.arcade-game{width:100%;max-width:600px;margin:0 auto}.arcade-game__hint{text-align:center;color:var(--text-light);padding:12px 24px 18px;font-size:.8rem}.dpad{grid-template-rows:repeat(2,44px);grid-template-columns:repeat(3,44px);justify-content:center;gap:6px;padding:0 0 18px;display:none}.dpad__btn{background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation;justify-content:center;align-items:center;font-size:.9rem;display:flex}.dpad__btn:active{background:var(--action);color:var(--ink)}.dpad__up{grid-area:1/2}.dpad__left{grid-area:2/1}.dpad__down{grid-area:2/2}.dpad__right{grid-area:2/3}.arcade{background:var(--bg);min-height:100vh;padding-bottom:80px}.arcade__bar{z-index:50;background:var(--bg);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:18px clamp(20px,4vw,48px);display:flex;position:sticky;top:0}.arcade__back{font-family:var(--font-heading);color:var(--text);align-items:center;gap:8px;font-size:.95rem;font-weight:700;transition:gap .25s,color .25s;display:inline-flex}.arcade__back:hover{color:var(--accent);gap:12px}.arcade__back-arrow{font-size:1.1rem}.arcade__brand{font-family:var(--font-heading);letter-spacing:-.02em;font-size:1.05rem;font-weight:800}.arcade__hub{max-width:var(--container);margin:0 auto;padding:clamp(48px,8vw,88px) clamp(20px,4vw,48px) 0}.arcade__title{font-family:var(--font-heading);letter-spacing:-.045em;margin:14px 0 18px;font-size:clamp(2.6rem,6vw,4.6rem);font-weight:800;line-height:1.02}.arcade__lead{max-width:620px;color:var(--text-muted);margin-bottom:56px;font-size:1.08rem;line-height:1.6}.arcade__grid{grid-template-columns:repeat(3,1fr);gap:28px;display:grid}.arcade-card{text-align:left;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;flex-direction:column;transition:transform .3s cubic-bezier(.22,1,.36,1),box-shadow .3s,border-color .3s;display:flex;overflow:hidden}.arcade-card:hover{box-shadow:var(--shadow-lg);border-color:var(--accent);transform:translateY(-6px)}@supports (color:color-mix(in lab, red, red)){.arcade-card:hover{border-color:color-mix(in srgb, var(--accent) 45%, var(--border))}}.arcade-card__thumb{aspect-ratio:16/10;background:radial-gradient(120% 120% at 50% 0%, #fff 0%, var(--bg-soft) 70%);border-bottom:1px solid var(--border);justify-content:center;align-items:center;transition:background .3s;display:flex;position:relative;overflow:hidden}.arcade-card:hover .arcade-card__thumb{background:radial-gradient(120% 120% at 50% 0%, #fff 0%, var(--accent) 75%)}@supports (color:color-mix(in lab, red, red)){.arcade-card:hover .arcade-card__thumb{background:radial-gradient(120% 120% at 50% 0%, #fff 0%, color-mix(in srgb, var(--accent) 8%, var(--bg-soft)) 75%)}}.arcade-card__art{transition:transform .35s cubic-bezier(.22,1,.36,1)}.arcade-card:hover .arcade-card__art{transform:scale(1.06)}.arcade-card__art{width:78%;height:auto}.arcade-card__best{background:var(--text);color:#fff;font-family:var(--font-heading);border-radius:var(--radius-pill);padding:4px 12px;font-size:.72rem;font-weight:700;position:absolute;top:12px;right:12px}.arcade-card__body{padding:22px 24px 24px}.arcade-card__tag{text-transform:uppercase;letter-spacing:.12em;color:var(--accent);font-size:.74rem;font-weight:700}.arcade-card__name{font-family:var(--font-heading);letter-spacing:-.03em;margin:6px 0 8px;font-size:1.5rem;font-weight:800}.arcade-card__desc{color:var(--text-muted);margin-bottom:18px;font-size:.92rem;line-height:1.55}.arcade-card__meta{border-top:1px solid var(--border);justify-content:space-between;align-items:center;padding-top:14px;display:flex}.arcade-card__control{color:var(--text-light);font-size:.82rem}.arcade-card__play{font-family:var(--font-heading);color:var(--text);font-size:.9rem;font-weight:700;transition:color .25s}.arcade-card:hover .arcade-card__play{color:var(--accent)}.arcade__play{max-width:var(--container);flex-direction:column;align-items:center;margin:0 auto;padding:clamp(28px,5vw,52px) clamp(16px,4vw,48px) 0;display:flex}.arcade__exit{background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text);cursor:pointer;align-self:flex-start;align-items:center;gap:8px;padding:8px 16px;font-size:.88rem;font-weight:600;transition:background .25s,gap .25s;display:inline-flex}.arcade__exit:hover{background:var(--bg-muted);gap:12px}.arcade__play-title{font-family:var(--font-heading);letter-spacing:-.04em;text-align:center;margin:18px 0 24px;font-size:clamp(1.8rem,4vw,2.6rem);font-weight:800}.arcade-promo{background:var(--bg-soft);padding:120px 0}.arcade-promo__panel{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);grid-template-columns:1.3fr 1fr;align-items:center;gap:48px;padding:clamp(28px,4vw,56px);display:grid}.arcade-promo__lead{color:var(--text-muted);margin-bottom:28px;font-size:1.12rem;line-height:1.6}.arcade-promo__chips{flex-wrap:wrap;gap:12px;margin-bottom:32px;display:flex}.arcade-promo__chip{background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius-sm);flex-direction:column;gap:2px;padding:12px 18px;display:flex}.arcade-promo__chip strong{font-family:var(--font-heading);color:var(--text);font-size:.98rem;font-weight:700}.arcade-promo__chip em{color:var(--text-light);font-size:.78rem;font-style:normal}.arcade-promo__cta{margin-top:4px}.arcade-promo__visual{justify-content:center;align-items:center;display:flex}.arcade-promo__art{width:100%;max-width:280px;height:auto;filter:drop-shadow(var(--shadow-md))}.contact{background:var(--bg-soft);padding:120px 0 0}.contact__layout{grid-template-columns:1.2fr 1fr;align-items:center;gap:60px;display:grid}.contact__heading{margin-bottom:20px;font-size:clamp(2.4rem,5vw,3.8rem)}.contact__subtitle{color:var(--text-muted);max-width:460px;margin-bottom:36px;font-size:1.05rem;line-height:1.7}.contact__status{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-muted);box-shadow:var(--shadow-sm);align-items:center;gap:10px;margin-bottom:22px;padding:8px 16px 8px 14px;font-size:.85rem;font-weight:600;display:inline-flex}.contact__pulse{flex-shrink:0;width:9px;height:9px;position:relative}.contact__pulse-dot{background:#16a34a;border-radius:50%;position:absolute;inset:0}.contact__pulse:before{content:"";background:#16a34a;border-radius:50%;animation:2s ease-out infinite pulse-ring;position:absolute;inset:0}@keyframes pulse-ring{0%{opacity:.55;transform:scale(1)}to{opacity:0;transform:scale(2.8)}}.contact__cards{gap:14px;margin-bottom:32px;display:grid}.contact__card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);align-items:center;gap:16px;padding:16px 18px;transition:transform .3s cubic-bezier(.22,1,.36,1),box-shadow .3s,border-color .3s;display:flex}.contact__card:hover{box-shadow:var(--shadow-md);border-color:var(--border-bold);transform:translate(6px)}.contact__card-icon{background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius-sm);width:46px;height:46px;color:var(--text);flex-shrink:0;place-items:center;transition:background .3s,color .3s,border-color .3s;display:grid}.contact__card:hover .contact__card-icon{background:var(--action);color:var(--ink);border-color:var(--action)}.contact__card-text{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.contact__card-label{color:var(--text-light);text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;font-weight:700}.contact__card-value{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.98rem;font-weight:600;overflow:hidden}.contact__card-arrow{color:var(--text-light);flex-shrink:0;place-items:center;transition:transform .3s,color .3s;display:grid}.contact__card:hover .contact__card-arrow{color:var(--accent);transform:translate(2px,-2px)}.contact__copy{background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius-pill);font-family:var(--font-heading);color:var(--text-muted);cursor:pointer;flex-shrink:0;align-items:center;gap:6px;padding:8px 13px;font-size:.78rem;font-weight:700;transition:background .25s,color .25s,border-color .25s;display:inline-flex}.contact__copy:hover{background:var(--text);color:#fff;border-color:var(--text)}.contact__copy--done{color:#fff;background:#16a34a;border-color:#16a34a}.contact__cta{width:fit-content}.contact__right{justify-content:center;align-items:center;min-height:400px;display:flex;position:relative}.contact__blob{background:linear-gradient(135deg, var(--accent), #ff7eb0);opacity:.5;z-index:0;border-radius:30% 70% 70% 30%/30% 30% 70% 70%;width:320px;height:320px;animation:8s ease-in-out infinite blob-morph-1;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.contact__character{z-index:2;position:relative}.contact__character-img{filter:drop-shadow(0 16px 32px #0000000f);width:min(340px,35vw);height:auto}.footer{border-top:1px solid var(--border);background:var(--bg);margin-top:100px;padding:56px 0 26px}.footer__inner{grid-template-columns:1.7fr 1.3fr auto;align-items:start;gap:40px;padding-bottom:34px;display:grid}.footer__brand{flex-direction:column;gap:12px;max-width:340px;display:flex}.footer__logo{width:fit-content;font-family:var(--font-heading);letter-spacing:-.02em;color:var(--text);font-size:1.3rem;font-weight:800}.footer__tagline{color:var(--text-muted);font-size:.92rem;line-height:1.6}.footer__nav{flex-wrap:wrap;align-content:start;gap:12px 26px;display:flex}.footer__nav a{color:var(--text-muted);font-size:.92rem;font-weight:600;transition:color .25s}.footer__nav a:hover{color:var(--text)}.footer__socials{gap:12px;display:flex}.footer__social{border:1px solid var(--border);border-radius:var(--radius-pill);width:42px;height:42px;color:var(--text);place-items:center;transition:background .25s,color .25s,border-color .25s,transform .25s;display:grid}.footer__social:hover{background:var(--text);color:#fff;border-color:var(--text);transform:translateY(-2px)}.footer__bottom{border-top:1px solid var(--border);justify-content:space-between;align-items:center;padding-top:24px;display:flex}.footer__bottom p{color:var(--text-light);font-size:.82rem}.footer__top{color:var(--text-muted);align-items:center;gap:6px;font-size:.85rem;font-weight:600;transition:color .25s,gap .25s;display:inline-flex}.footer__top:hover{color:var(--accent);gap:10px}.footer__top span{transition:transform .25s}.footer__top:hover span{transform:translateY(-3px)}@media (max-width:1024px){.about__layout{grid-template-columns:1fr;gap:40px}.about__character-container{min-height:320px}.about__character{width:min(300px,60vw)}.skills__grid{grid-template-columns:repeat(2,1fr)}.contact__layout{grid-template-columns:1fr}.contact__right{min-height:300px}.arcade__grid{grid-template-columns:repeat(2,1fr)}.arcade-promo__panel{grid-template-columns:1fr;gap:32px}.arcade-promo__visual{order:-1}}@media (max-width:768px){.navbar__links{display:none}.navbar__cta{padding:8px 18px;font-size:.82rem}.hero{height:auto;min-height:100vh;padding:100px 0 60px}.hero__container{text-align:center;grid-template-columns:1fr}.hero__subtitle{margin-left:auto;margin-right:auto}.hero__actions{justify-content:center}.hero__visual{min-height:380px}.hero__image{width:min(320px,50vw)}.hero__title{font-size:clamp(2.4rem,10vw,3.8rem)}.hero__blob--1{width:240px;height:240px}.hero__blob--2{width:200px;height:200px}.about,.experience,.skills,.projects,.contact{padding:80px 0}.about__stats{grid-template-columns:repeat(2,1fr)}.skills__grid{grid-template-columns:1fr}.section-title{margin-bottom:32px;font-size:clamp(1.8rem,6vw,2.8rem)}.exp__timeline{max-width:100%}.exp__line{left:7px}.exp__item{padding-bottom:28px;padding-left:32px}.exp__dot{border-width:2px;width:16px;height:16px;top:4px;left:0}.exp__dot-inner{width:6px;height:6px}.exp__card{padding:18px}.exp__card-top{margin-bottom:10px}.exp__role{font-size:1.12rem;line-height:1.2}.exp__company{margin-bottom:12px;font-size:.9rem}.exp__list{gap:9px}.exp__list li{padding-left:18px;font-size:.86rem;line-height:1.5}.footer__inner{grid-template-columns:1fr;gap:28px}.footer__bottom{text-align:center;flex-direction:column;gap:12px}.contact__right{min-height:260px}.contact__character-img{width:min(280px,55vw)}.arcade__grid{grid-template-columns:1fr;gap:20px}.arcade-promo{padding:80px 0}.arcade-promo__art{max-width:200px}.dpad{display:grid}}@media (max-width:480px){.hero__visual{min-height:300px}.hero__image{width:min(260px,60vw)}.hero__actions{flex-direction:column;width:100%}.btn{justify-content:center;width:100%}.about__stats{grid-template-columns:1fr}.stat-card__value{font-size:2rem}.contact__copy-text{display:none}.contact__copy{padding:9px}.contact__card-value{font-size:.9rem}.contact__status{font-size:.8rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
.os-desktop{font-family:var(--font-body);color:var(--text);isolation:isolate;-webkit-user-select:none;user-select:none;position:fixed;inset:0;overflow:hidden}.os-wallpaper{z-index:0;background:radial-gradient(1100px 700px at 18% 12%,#ffd60038,#0000 60%),radial-gradient(1000px 720px at 85% 22%,#ff00622e,#0000 58%),radial-gradient(1200px 900px at 70% 95%,#2f6fe433,#0000 60%),linear-gradient(165deg,#fdf7fb 0%,#eef2fc 52%,#f4f0ff 100%);position:absolute;inset:0;background-position:50%!important;background-repeat:no-repeat!important;background-size:cover!important}.os-wallpaper:after{content:"";background:linear-gradient(#ffffff1a,#0000 20%),radial-gradient(120% 120%,#0000 58%,#0d0d0d3d);position:absolute;inset:0}.os-boot{z-index:9999;color:#fff;background:radial-gradient(120% 120% at 50% 44%,#15151c 0%,#07080c 70%);flex-direction:column;justify-content:center;align-items:center;transition:opacity .6s;display:flex;position:fixed;inset:0}.os-boot--leaving{opacity:0;pointer-events:none}.os-boot__stage{flex-direction:column;align-items:center;gap:32px;animation:.7s cubic-bezier(.22,1,.36,1) boot-rise;display:flex}.os-boot__mark{animation:2.6s ease-in-out infinite boot-glow}@keyframes boot-rise{0%{opacity:0;transform:translateY(10px)scale(.94)}to{opacity:1;transform:none}}@keyframes boot-glow{0%,to{filter:drop-shadow(0 18px 44px #00000080)drop-shadow(0 0 #ffd60000)}50%{filter:drop-shadow(0 18px 44px #00000080)drop-shadow(0 0 22px #ffd6004d)}}.os-boot__bar{background:#ffffff24;border-radius:999px;width:240px;height:4px;overflow:hidden}.os-boot__fill{background:#fff;border-radius:999px;height:100%;transition:width .12s linear;box-shadow:0 0 10px #ffffff80}.os-boot__caption{font-family:var(--font-heading);letter-spacing:.34em;text-transform:uppercase;color:#fff9;font-size:.8rem;font-weight:700}.os-boot__foot{letter-spacing:.06em;color:#ffffff52;font-size:.72rem;position:absolute;bottom:34px}.os-menubar{z-index:9000;-webkit-backdrop-filter:saturate(180%)blur(20px);height:30px;color:var(--text);background:#ffffff8c;border-bottom:1px solid #0d0d0d14;justify-content:space-between;align-items:center;padding:0 14px;font-size:.82rem;display:flex;position:absolute;top:0;left:0;right:0}.os-menubar__left{align-items:center;gap:18px;display:flex}.os-menubar__logo{align-items:center;display:inline-flex}.os-menubar__logo .tm-logo{display:block}.os-menubar__logo .logo-bracket{color:var(--accent);font-weight:500}.os-menubar__app{font-weight:700}.os-menubar__menu{color:var(--text-muted);cursor:default}.os-menubar__menu:hover{color:var(--text)}.os-menubar__right{align-items:center;gap:14px;display:flex}.os-menubar__icon{color:var(--text)}.os-menubar__clock{font-variant-numeric:tabular-nums;gap:10px;font-weight:600;display:flex}.os-menubar__time{color:var(--text)}@media (max-width:720px){.os-menubar__menu{display:none}}.os-desktop-icons{z-index:10;flex-direction:column;gap:18px;display:flex;position:absolute;top:44px;right:18px}.os-desktop-icon{cursor:pointer;background:0 0;border:none;border-radius:8px;flex-direction:column;align-items:center;gap:6px;width:76px;padding:6px 4px;display:flex}.os-desktop-icon:hover{background:#0d0d0d0f}.os-desktop-icon__badge{border-radius:11px;width:46px;height:46px;position:relative;overflow:hidden;box-shadow:0 6px 16px #0d0d0d2e,inset 0 1px #fff6}.os-desktop-icon__badge:after{content:"";background:linear-gradient(#ffffff80,#0000);border-radius:9px;height:44%;position:absolute;inset:2px 4px auto}.os-desktop-icon__label{color:var(--text);text-shadow:0 1px 2px #fff9;font-size:.74rem;font-weight:600}@media (max-width:720px){.os-desktop-icons{display:none}}.os-window{background:color-mix(in srgb, var(--bg) 94%, transparent);-webkit-backdrop-filter:saturate(150%)blur(22px);border:1px solid color-mix(in srgb, var(--border) 80%, #ffffff73);border-radius:12px;flex-direction:column;min-width:280px;animation:.26s cubic-bezier(.22,1,.36,1) os-window-in;display:flex;position:absolute;overflow:hidden;box-shadow:0 30px 70px #0d0d0d47,0 6px 20px #0d0d0d1f}@keyframes os-window-in{0%{opacity:0;transform:scale(.96)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.os-window--focused{box-shadow:0 40px 90px #0d0d0d57,0 8px 26px #0d0d0d29}.os-window--min{display:none}.os-window--max{bottom:96px;right:8px;width:auto!important;height:auto!important;top:38px!important;left:8px!important}.os-titlebar{-webkit-backdrop-filter:saturate(160%)blur(18px);cursor:grab;background:linear-gradient(#ffffffd1,#f1f1f3b8);border-bottom:1px solid #0d0d0d14;flex-shrink:0;align-items:center;height:40px;padding:0 14px;display:flex;position:relative}.os-dragging .os-titlebar{cursor:grabbing}.os-traffic{align-items:center;gap:8px;display:flex}.os-light{cursor:pointer;color:#00000080;border:none;border-radius:50%;place-items:center;width:13px;height:13px;padding:0;display:grid}.os-light svg{opacity:0;transition:opacity .15s}.os-titlebar:hover .os-light svg{opacity:1}.os-light--close{background:#ff5f57;box-shadow:inset 0 0 0 .5px #0000001f}.os-light--min{background:#febc2e;box-shadow:inset 0 0 0 .5px #0000001f}.os-light--max{background:#28c840;box-shadow:inset 0 0 0 .5px #0000001f}.os-titlebar__title{text-align:center;color:var(--text-muted);pointer-events:none;font-size:.84rem;font-weight:600;position:absolute;left:0;right:0}.os-window:not(.os-window--focused) .os-titlebar{background:#f4f4f5}.os-window:not(.os-window--focused) .os-light{box-shadow:none;background:#d6d6da}.os-window__body{background:linear-gradient(180deg, color-mix(in srgb, var(--bg) 96%, transparent), var(--bg)), var(--bg);flex:1;overflow:hidden auto}.os-app{padding:26px 30px 34px}.os-eyebrow{text-transform:uppercase;letter-spacing:.14em;color:var(--text-muted);align-items:center;gap:9px;font-size:.74rem;font-weight:700;display:inline-flex}.os-eyebrow:before{content:"";background:var(--accent);border-radius:2px;width:20px;height:3px}.os-app__title{font-family:var(--font-heading);letter-spacing:-.035em;margin:12px 0 22px;font-size:1.7rem;font-weight:800;line-height:1.1}.os-pill{background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-muted);padding:5px 12px;font-size:.78rem;font-weight:600;display:inline-block}.os-about__hero{grid-template-columns:200px 1fr;align-items:center;gap:26px;display:grid}.os-about__avatar{border-radius:var(--radius);background:linear-gradient(160deg,#ffd60040,#ff00622e);justify-content:center;align-items:flex-end;height:230px;display:flex;position:relative;overflow:hidden}.os-about__avatar img{object-fit:contain;width:auto;height:220px}.os-about__name{font-family:var(--font-heading);letter-spacing:-.04em;margin:10px 0 4px;font-size:2rem;font-weight:800}.os-about__role{color:var(--accent);margin-bottom:12px;font-weight:700}.os-about__bio{color:var(--text-muted);font-size:.95rem;line-height:1.6}.os-about__stats{grid-template-columns:repeat(4,1fr);gap:10px;margin-top:18px;display:grid}.os-stat{background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius-sm);text-align:center;padding:12px}.os-stat__value{font-family:var(--font-heading);letter-spacing:-.03em;font-size:1.4rem;font-weight:800;display:block}.os-stat__label{color:var(--text-light);font-size:.7rem}.os-about__clients{border-top:1px solid var(--border);margin-top:26px;padding-top:22px}.os-about__clients-label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-light);font-size:.72rem;font-weight:700}.os-about__logos{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}.os-logo{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text);align-items:center;gap:8px;padding:7px 13px;font-size:.82rem;font-weight:600;display:inline-flex}.os-logo__img{object-fit:contain;width:18px;height:18px}.os-logo__mono{color:#fff;border-radius:6px;place-items:center;width:20px;height:20px;font-size:.7rem;font-weight:800;display:grid}.os-exp__timeline{margin-top:8px;padding-left:4px;position:relative}.os-exp__item{padding-bottom:22px;padding-left:26px;position:relative}.os-exp__item:before{content:"";background:var(--border);width:2px;position:absolute;top:6px;bottom:-6px;left:5px}.os-exp__item:last-child:before{display:none}.os-exp__dot{background:var(--bg);border:3px solid var(--accent);z-index:1;border-radius:50%;width:12px;height:12px;position:absolute;top:4px;left:0}.os-exp__card{background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px}.os-exp__top{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px;display:flex}.os-exp__period{color:var(--text-light);font-size:.78rem;font-weight:700}.os-exp__badge{background:var(--action);color:var(--ink);border-radius:var(--radius-pill);padding:3px 10px;font-size:.7rem;font-weight:700}.os-exp__badge.is-intern{color:var(--text-muted);border:1px solid var(--border-bold);background:0 0}.os-exp__role{letter-spacing:-.02em;font-size:1.1rem;font-weight:800}.os-exp__company{color:var(--text);margin-bottom:10px;font-size:.86rem;font-weight:700}.os-exp__list{gap:7px;padding:0;list-style:none;display:grid}.os-exp__list li{color:var(--text-muted);padding-left:18px;font-size:.86rem;line-height:1.5;position:relative}.os-exp__list li:before{content:"▸";color:var(--accent);font-weight:700;position:absolute;left:0}.os-skills__hero{grid-template-columns:.9fr 1.1fr;align-items:center;gap:18px;margin-bottom:16px;display:grid}.os-skills__visual{aspect-ratio:16/9}.os-skills__lead{color:var(--text-muted);margin-top:-8px;font-size:.92rem;line-height:1.55}.os-skills__core{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px;display:grid}.os-skill-core{background:color-mix(in srgb, var(--c) 10%, var(--bg));border:1px solid color-mix(in srgb, var(--c) 26%, var(--border));min-width:0;color:var(--text);border-radius:12px;align-items:center;gap:9px;padding:10px 12px;font-size:.82rem;font-weight:800;display:flex}.os-skill-core__icon{background:color-mix(in srgb, var(--c) 18%, var(--bg));border-radius:8px;flex-shrink:0;place-items:center;width:24px;height:24px;display:grid}.os-skills__grid{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.os-skill-group{background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px}.os-skill-group__head{align-items:center;gap:10px;margin-bottom:12px;display:flex}.os-skill-group__dot{background:var(--c);border-radius:4px;width:12px;height:12px}.os-skill-group__head h3{letter-spacing:-.02em;font-size:.98rem;font-weight:800}.os-skill-group__pills{flex-wrap:wrap;gap:7px;display:flex}.os-skill-group .os-pill{border-color:color-mix(in srgb, var(--c) 30%, var(--border))}.os-projects__hero{grid-template-columns:1.2fr .8fr;align-items:stretch;gap:18px;margin-bottom:16px;display:grid}.os-projects__visual,.os-skills__visual,.os-contact__visual{border:1px solid color-mix(in srgb, var(--border) 70%, #ffffff80);background:var(--bg-soft);border-radius:14px;position:relative;overflow:hidden;box-shadow:0 18px 42px #0d0d0d24,inset 0 1px #ffffff59}.os-projects__visual{min-height:235px}.os-projects__visual img,.os-skills__visual img,.os-contact__visual img{object-fit:cover;width:100%;height:100%}.os-projects__visual:after,.os-skills__visual:after,.os-contact__visual:after{content:"";pointer-events:none;background:linear-gradient(#ffffff14,#0d0d0d14);position:absolute;inset:0}.os-projects__intro{align-self:center}.os-projects__lead{color:var(--text-muted);margin-top:-8px;font-size:.92rem;line-height:1.55}.os-projects__metrics{gap:8px;margin-top:15px;display:grid}.os-projects__metrics span{background:var(--bg-soft);border:1px solid var(--border);color:var(--text-muted);border-radius:10px;justify-content:space-between;align-items:baseline;gap:12px;padding:9px 12px;font-size:.78rem;display:flex}.os-projects__metrics b{font-family:var(--font-heading);color:var(--text);font-size:1rem}.os-projects__featured{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px;display:grid}.os-project-feature{background:color-mix(in srgb, var(--c) 10%, var(--bg));border:1px solid color-mix(in srgb, var(--c) 28%, var(--border));border-radius:12px;grid-template-columns:auto 1fr;align-items:center;gap:4px 9px;padding:11px 12px;display:grid}.os-project-feature__dot{background:var(--c);width:9px;height:9px;box-shadow:0 0 0 4px color-mix(in srgb, var(--c) 16%, transparent);border-radius:50%}.os-project-feature__title{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text);font-size:.82rem;font-weight:800;overflow:hidden}.os-project-feature__meta{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-light);grid-column:2;font-size:.72rem;overflow:hidden}.os-projects__grid{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.os-project{background:linear-gradient(180deg, color-mix(in srgb, var(--bg-soft) 92%, white), var(--bg-soft));border:1px solid var(--border);border-radius:var(--radius);padding:18px;transition:transform .25s,box-shadow .25s,border-color .25s;position:relative;overflow:hidden}.os-project:before{content:"";background:var(--c);width:4px;position:absolute;top:0;bottom:0;left:0}.os-project:hover{box-shadow:var(--shadow-md);border-color:var(--border-bold);transform:translateY(-3px)}.os-project__top{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.os-project__index{font-family:var(--font-heading);color:color-mix(in srgb, var(--c) 70%, var(--text));font-size:1.2rem;font-weight:800}.os-project__highlight{color:var(--text);background:color-mix(in srgb, var(--c) 22%, transparent);border-radius:var(--radius-pill);padding:3px 10px;font-size:.74rem;font-weight:700}.os-project__tag{text-transform:uppercase;letter-spacing:.08em;color:var(--text-light);font-size:.7rem;font-weight:700}.os-project__title{letter-spacing:-.02em;margin:4px 0 8px;font-size:1.1rem;font-weight:800}.os-project__desc{color:var(--text-muted);margin-bottom:12px;font-size:.86rem;line-height:1.55}.os-project__tech{flex-wrap:wrap;gap:6px;display:flex}.os-project__tech .os-pill{padding:4px 10px;font-size:.72rem}.os-contact__hero{grid-template-columns:1fr 1fr;align-items:center;gap:18px;margin-bottom:16px;display:grid}.os-contact__visual{aspect-ratio:16/9}.os-contact__status{background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-muted);align-items:center;gap:9px;margin-bottom:16px;padding:7px 14px;font-size:.82rem;font-weight:600;display:inline-flex}.os-contact__pulse{width:9px;height:9px;position:relative}.os-contact__pulse span{background:#16a34a;border-radius:50%;position:absolute;inset:0}.os-contact__pulse:before{content:"";background:#16a34a;border-radius:50%;animation:2s ease-out infinite pulse-ring;position:absolute;inset:0}.os-contact__lead{color:var(--text-muted);max-width:460px;margin-bottom:20px;font-size:.95rem;line-height:1.6}.os-contact__cards{gap:12px;margin-bottom:22px;display:grid}.os-contact__card{background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:14px;padding:14px 16px;transition:border-color .25s,transform .25s;display:flex}.os-contact__card:hover{border-color:var(--border-bold);transform:translate(4px)}.os-contact__icon{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);width:42px;height:42px;color:var(--text);flex-shrink:0;place-items:center;display:grid}.os-contact__card:hover .os-contact__icon{background:var(--action);color:var(--ink);border-color:var(--action)}.os-contact__text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.os-contact__label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-light);font-size:.7rem;font-weight:700}.os-contact__value{color:var(--text);text-overflow:ellipsis;font-size:.95rem;font-weight:600;overflow:hidden}.os-contact__copy{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-pill);font-family:var(--font-heading);color:var(--text-muted);cursor:pointer;flex-shrink:0;align-items:center;gap:6px;padding:7px 12px;font-size:.76rem;font-weight:700;transition:all .2s;display:inline-flex}.os-contact__copy:hover{background:var(--text);color:#fff;border-color:var(--text)}.os-contact__copy.is-done{color:#fff;background:#16a34a;border-color:#16a34a}.os-contact__arrow{color:var(--text-light)}.os-contact__card:hover .os-contact__arrow{color:var(--accent)}.os-contact__cta{width:fit-content}.os-resume{padding:0}.os-resume__toolbar{z-index:2;background:var(--bg-soft);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:10px 18px;display:flex;position:sticky;top:0}.os-resume__filename{color:var(--text-muted);font-size:.82rem;font-weight:600}.os-resume__download{color:var(--text);background:var(--action);border-radius:var(--radius-pill);align-items:center;gap:5px;padding:6px 14px;font-size:.82rem;font-weight:700;display:inline-flex}.os-resume__page{background:var(--bg);max-width:660px;margin:22px auto;padding:8px 26px 32px}.os-resume__head{text-align:center;border-bottom:2px solid var(--text);margin-bottom:18px;padding-bottom:16px}.os-resume__head h1{font-family:var(--font-heading);letter-spacing:-.03em;font-size:1.9rem;font-weight:800}.os-resume__role{color:var(--text-muted);margin:4px 0;font-weight:700}.os-resume__contact{color:var(--text-light);font-size:.82rem}.os-resume__section{margin-bottom:20px}.os-resume__section h2{font-family:var(--font-heading);text-transform:uppercase;letter-spacing:.12em;color:var(--accent);border-bottom:1px solid var(--border);margin-bottom:10px;padding-bottom:5px;font-size:.82rem}.os-resume__section>p{color:var(--text-muted);font-size:.88rem;line-height:1.6}.os-resume__job{margin-bottom:14px}.os-resume__job-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.os-resume__job-head strong{font-size:.95rem}.os-resume__job-head span{color:var(--text-light);white-space:nowrap;font-size:.8rem}.os-resume__job-company{color:var(--accent);margin-bottom:6px;font-size:.84rem;font-weight:600}.os-resume__job ul{gap:4px;margin:0;padding-left:18px;display:grid}.os-resume__job li{color:var(--text-muted);font-size:.84rem;line-height:1.5}.os-resume__skills p{color:var(--text-muted);font-size:.84rem;line-height:1.7}.os-games__lead{color:var(--text-muted);max-width:480px;margin-bottom:20px;font-size:.92rem;line-height:1.6}.os-games__grid{grid-template-columns:1fr;gap:12px;display:grid}.os-game-card{text-align:left;background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;padding:16px 18px;transition:transform .25s,box-shadow .25s,border-color .25s}.os-game-card:hover{box-shadow:var(--shadow-md);border-color:var(--border-bold);transform:translateY(-2px)}.os-game-card__top{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.os-game-card__tag{text-transform:uppercase;letter-spacing:.1em;color:var(--accent);font-size:.7rem;font-weight:700}.os-game-card__best{color:#fff;background:var(--text);border-radius:var(--radius-pill);padding:3px 10px;font-size:.72rem;font-weight:700}.os-game-card__name{letter-spacing:-.02em;font-size:1.15rem;font-weight:800}.os-game-card__desc{color:var(--text-muted);margin:3px 0 8px;font-size:.85rem}.os-game-card__play{font-family:var(--font-heading);color:var(--text);font-size:.85rem;font-weight:700}.os-games__back{background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text);cursor:pointer;margin-bottom:14px;padding:7px 14px;font-size:.84rem;font-weight:600}.os-games__back:hover{background:var(--bg-muted)}.os-games--play{flex-direction:column;align-items:center;display:flex}.os-games--play .game__container{box-shadow:none}.os-notes{height:100%;min-height:0;display:flex}.os-notes__list{border-right:1px solid var(--border);flex-shrink:0;width:304px;padding:10px;overflow-y:auto}.os-notes__list-head{padding:14px 12px 10px}.os-notes__list-title{font-family:var(--font-heading);letter-spacing:-.03em;color:var(--text);margin:9px 0 6px;font-size:1.45rem;font-weight:800}.os-notes__list-sub{color:var(--text-muted);font-size:.82rem;line-height:1.5}.os-notes__item{text-align:left;cursor:pointer;border:1px solid #0000;border-radius:12px;flex-direction:column;gap:5px;width:100%;padding:13px 14px;transition:background .18s,border-color .18s;display:flex}.os-notes__item:hover{background:var(--bg-soft)}.os-notes__item.is-active{background:var(--bg-soft);border-color:var(--border);box-shadow:inset 3px 0 0 var(--accent)}.os-notes__item-title{font-family:var(--font-heading);letter-spacing:-.02em;color:var(--text);font-size:.98rem;font-weight:800;line-height:1.2}.os-notes__item-blurb{color:var(--text-muted);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;font-size:.8rem;line-height:1.45;display:-webkit-box;overflow:hidden}.os-notes__item-meta{color:var(--text-light);gap:7px;font-size:.72rem;display:flex}.os-notes__dot{opacity:.55}.os-notes__reader{flex:1;min-width:0;overflow-y:auto}.os-notes__back{display:none}.os-note__head,.os-note__body{max-width:730px;margin:0 auto;padding:0 32px}.os-note__head{padding-top:32px}.os-note__tags{flex-wrap:wrap;gap:7px;margin-bottom:14px;display:flex}.os-note__title{font-family:var(--font-heading);letter-spacing:-.035em;color:var(--text);font-size:clamp(1.7rem,3vw,2.3rem);font-weight:800;line-height:1.08}.os-note__byline{border-bottom:1px solid var(--border);color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:8px;margin-top:15px;padding-bottom:18px;font-size:.82rem;display:flex}.os-notes__avatar{color:#fff;width:26px;height:26px;font-family:var(--font-heading);background:linear-gradient(160deg,#b794f6,#7c5cff);border-radius:50%;place-items:center;font-size:.64rem;font-weight:800;display:grid}.os-note__body{padding-bottom:52px}.os-note__lead{color:var(--text);margin:22px 0;font-size:1.06rem;line-height:1.65}.os-note__h2{font-family:var(--font-heading);letter-spacing:-.02em;color:var(--text);margin:28px 0 10px;font-size:1.18rem;font-weight:800}.os-note__p{color:var(--text-muted);margin:10px 0;font-size:.95rem;line-height:1.7}.os-note__p b,.os-note__lead b,.os-note__ul b{color:var(--text);font-weight:700}.os-note__ul{flex-direction:column;gap:7px;margin:10px 0;padding-left:20px;display:flex}.os-note__ul li{color:var(--text-muted);font-size:.95rem;line-height:1.6}.os-note__ul li::marker{color:var(--accent)}.os-note__body code{background:var(--bg-muted);color:var(--text);border-radius:5px;padding:1px 5px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.86em}.os-note__code{background:var(--bg-soft);border:1px solid var(--border);color:var(--text);white-space:pre;border-radius:12px;margin:14px 0;padding:14px 16px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.79rem;line-height:1.6;overflow-x:auto}.os-note__callout{color:var(--text-muted);background:color-mix(in srgb, var(--accent) 9%, var(--bg-soft));border-left:3px solid var(--accent);border-radius:0 12px 12px 0;margin:18px 0;padding:14px 16px;font-size:.92rem;line-height:1.65}.os-note__callout b{color:var(--text)}.os-note__figure{margin:22px 0 8px}.os-note__figure figcaption{color:var(--text-light);text-align:center;margin-top:10px;font-size:.8rem;line-height:1.5}.dgm{background:var(--bg-soft);border:1px solid var(--border);border-radius:14px;width:100%;height:auto;padding:8px}.dgm-box{fill:var(--bg);stroke:var(--border-bold);stroke-width:1.4px}.dgm-box--accent{fill:color-mix(in srgb, var(--accent) 14%, var(--bg));stroke:var(--accent)}.dgm-box--store{fill:color-mix(in srgb, #2f6fe4 15%, var(--bg));stroke:color-mix(in srgb, #2f6fe4 65%, var(--border-bold))}.dgm-box--queue{fill:color-mix(in srgb, #f0b400 18%, var(--bg));stroke:color-mix(in srgb, #f0b400 62%, var(--border-bold))}.dgm-label{fill:var(--text);font-family:var(--font-heading);font-size:13px;font-weight:700}.dgm-sub{fill:var(--text-light);font-family:var(--font-body);font-size:10.5px}.dgm-edge{fill:var(--text-light);font-family:var(--font-body);font-size:10px}.dgm-arrow{stroke:var(--text-light);stroke-width:1.6px}.dgm-arrow.is-dashed{stroke-dasharray:4 4}.dgm-head{fill:var(--text-light)}@media (max-width:880px){.os-notes__list{width:264px}}@media (max-width:768px){.os-notes{flex-direction:column;height:auto}.os-notes__list{border-right:none;border-bottom:1px solid var(--border);width:100%}.os-notes__reader,.os-notes.is-reading .os-notes__list{display:none}.os-notes.is-reading .os-notes__reader{display:block}.os-notes__back{background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text);cursor:pointer;align-items:center;gap:4px;margin:14px 0 0 18px;padding:7px 12px;font-size:.8rem;font-weight:600;display:inline-flex}.os-note__head,.os-note__body{padding:0 18px}.os-note__head{padding-top:18px}}.os-safari{--pbg:#fff;--psoft:#f4f4f3;--pmuted-bg:#e9e9e8;--ptext:#0d0d0d;--pmut:#46464b;--plight:#83838a;--pbord:#0d0d0d17;--pbord2:#0d0d0d2e;background:var(--pbg);flex-direction:column;height:100%;min-height:0;display:flex}.os-safari__bar{background:linear-gradient(#f7f7f6,#ededec);border-bottom:1px solid #00000014;flex-shrink:0;align-items:center;gap:12px;padding:9px 14px;display:flex;position:relative}.os-safari__progress{height:2.5px;position:absolute;bottom:-1px;left:0;right:0;overflow:hidden}.os-safari__progress-bar{transform-origin:0;background:linear-gradient(90deg, var(--accent), var(--action));will-change:transform;width:100%;height:100%;transform:scaleX(0)}.os-safari__group{align-items:center;gap:2px;display:flex}.os-safari__btn{color:#5a5a5f;cursor:pointer;background:0 0;border:none;border-radius:8px;place-items:center;width:30px;height:30px;text-decoration:none;display:grid}.os-safari__btn:hover{background:#0000000f}.os-safari__btn.is-dim{color:#c2c2c6;cursor:default}.os-safari__address{color:#3a3a3f;background:#fff;border:1px solid #00000014;border-radius:9px;flex:1;justify-content:center;align-items:center;gap:7px;max-width:520px;height:32px;margin:0 auto;padding:0 14px;font-size:.84rem;display:flex;box-shadow:0 1px 2px #0000000a}.os-safari__lock{color:#8a8a90}.os-safari__url{font-weight:500}.os-safari__reload{color:#8a8a90;cursor:pointer;background:0 0;border:none;place-items:center;margin-left:2px;display:grid}.os-safari__viewport{background:var(--pbg);scroll-behavior:smooth;flex:1;min-height:0;overflow:hidden auto;container:psite/inline-size}.psite{color:var(--ptext);font-family:var(--font-body)}.psite-nav{z-index:20;-webkit-backdrop-filter:saturate(180%)blur(16px);border-bottom:1px solid var(--pbord);background:#ffffffc7;justify-content:space-between;align-items:center;gap:12px;padding:13px clamp(18px,4cqw,56px);display:flex;position:sticky;top:0}.psite-nav__brand{white-space:nowrap;font-family:var(--font-heading);letter-spacing:-.03em;color:var(--ptext);cursor:pointer;background:0 0;border:none;flex-shrink:0;font-size:1rem;font-weight:800}.psite-nav__dot{color:var(--accent)}.psite-nav__links{gap:4px;display:flex}.psite-nav__links button{border-radius:var(--radius-pill);color:var(--pmut);cursor:pointer;background:0 0;border:none;padding:7px 13px;font-size:.86rem;font-weight:600;transition:background .2s,color .2s}.psite-nav__links button:hover{background:var(--psoft);color:var(--ptext)}.psite-nav__cta{white-space:nowrap;border-radius:var(--radius-pill);font-family:var(--font-heading);color:var(--ink);background:var(--action);cursor:pointer;border:none;flex-shrink:0;padding:9px 18px;font-size:.85rem;font-weight:700;transition:transform .2s,box-shadow .2s;box-shadow:0 2px 8px #0000000f}.psite-nav__cta:hover{transform:translateY(-1px);box-shadow:0 8px 20px #0000001f}@container psite (max-width:700px){.psite-nav__links{display:none}}.psite-eyebrow{text-transform:uppercase;letter-spacing:.16em;color:var(--accent);align-items:center;gap:9px;font-size:.74rem;font-weight:700;display:inline-flex}.psite-eyebrow:before{content:"";background:var(--accent);border-radius:2px;width:22px;height:2px}.psite-h2{font-family:var(--font-heading);letter-spacing:-.04em;color:var(--ptext);max-width:20ch;margin:12px 0 26px;font-size:clamp(1.6rem,4.6cqw,2.5rem);font-weight:800;line-height:1.05}.psite-btn{border-radius:var(--radius-pill);font-family:var(--font-heading);cursor:pointer;border:none;align-items:center;gap:8px;padding:13px 24px;font-size:.92rem;font-weight:700;text-decoration:none;transition:transform .2s,box-shadow .2s,background .2s,color .2s;display:inline-flex}.psite-btn--accent{background:var(--action);color:var(--ink);box-shadow:0 2px 10px #0000000f}.psite-btn--accent:hover{transform:translateY(-2px);box-shadow:0 12px 26px #ffd60059}.psite-btn--ghost{color:var(--ptext);border:1.5px solid var(--pbord2);background:0 0}.psite-btn--ghost:hover{background:var(--ptext);color:#fff;border-color:var(--ptext)}.psite-chip{border-radius:var(--radius-pill);background:var(--psoft);border:1px solid var(--pbord);color:var(--pmut);padding:6px 13px;font-size:.8rem;font-weight:600}.psite-tag{border-radius:var(--radius-pill);background:var(--psoft);border:1px solid var(--pbord);color:var(--pmut);padding:4px 11px;font-size:.76rem;font-weight:600}.psite-section{max-width:1100px;margin:0 auto;padding:clamp(48px,8cqw,96px) clamp(20px,5cqw,56px)}.psite-section--tight{padding-top:0;padding-bottom:44px}.psite-hero{max-width:1100px;margin:0 auto;padding:clamp(32px,6cqw,68px) clamp(20px,5cqw,56px) 0;position:relative;overflow:hidden}.psite-hero__bg{z-index:0;pointer-events:none;position:absolute;inset:0}.psite-blob{filter:blur(64px);opacity:.5;border-radius:50%;position:absolute}.psite-blob--1{background:color-mix(in srgb, var(--accent) 55%, transparent);width:340px;height:340px;top:-60px;right:8%}.psite-blob--2{background:#ffd60073;width:300px;height:300px;top:120px;right:26%}.psite-blob--3{background:#2f6fe452;width:280px;height:280px;top:40px;left:-60px}.psite-hero__grid{z-index:1;grid-template-columns:1.15fr .85fr;align-items:center;gap:24px;min-height:clamp(360px,50vh,500px);display:grid;position:relative}.psite-hero__copy{flex-direction:column;align-items:flex-start;gap:18px;display:flex}.psite-hero__title{font-family:var(--font-heading);letter-spacing:-.045em;color:var(--ptext);font-size:clamp(2rem,6cqw,3.9rem);font-weight:800;line-height:1.02}.psite-mark{white-space:nowrap;position:relative}.psite-mark:before{content:"";background:var(--action);z-index:-1;transform-origin:0;border-radius:3px;height:40%;animation:.6s cubic-bezier(.22,1,.36,1) .74s forwards psiteMarker;position:absolute;bottom:6%;left:-4px;right:-4px;transform:scaleX(0)rotate(-1.2deg)}@keyframes psiteMarker{to{transform:scaleX(1)rotate(-1.2deg)}}.psite-hero__sub{color:var(--pmut);max-width:46ch;font-size:1.05rem;line-height:1.6}.psite-hero__sub strong{color:var(--ptext)}.psite-hero__cta{flex-wrap:wrap;gap:12px;display:flex}.psite-hero__chips{flex-wrap:wrap;gap:8px;margin-top:2px;display:flex}.psite-hero__visual{justify-content:center;align-self:stretch;align-items:flex-end;display:flex;position:relative}.psite-hero__imgwrap{align-items:flex-end;animation:1s cubic-bezier(.22,1,.36,1) .2s both psitePop,5s ease-in-out 1.2s infinite psiteFloat;display:flex;position:relative}.psite-hero__img{object-fit:contain;filter:drop-shadow(0 24px 40px #0d0d0d33);width:auto;max-width:100%;height:clamp(300px,34cqw,460px);-webkit-mask-image:linear-gradient(#000 0% 70%,#0000004d 89%,#0000 100%);mask-image:linear-gradient(#000 0% 70%,#0000004d 89%,#0000 100%)}@keyframes psitePop{0%{opacity:0;transform:translateY(40px)scale(.92)}to{opacity:1;transform:none}}@keyframes psiteFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-16px)}}@container psite (max-width:880px){.psite-hero__grid{grid-template-columns:1fr;min-height:0}.psite-hero__visual{display:none}}.psite-stats{z-index:1;background:var(--psoft);border:1px solid var(--pbord);border-radius:20px;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:clamp(28px,5vw,52px);padding:22px;display:grid;position:relative}.psite-stat{text-align:center;flex-direction:column;align-items:center;gap:4px;display:flex}.psite-stat__v{font-family:var(--font-heading);letter-spacing:-.03em;color:var(--ptext);font-size:clamp(1.5rem,3.6cqw,2.3rem);font-weight:800}.psite-stat__l{color:var(--plight);font-size:.78rem;font-weight:600}@container psite (max-width:620px){.psite-stats{grid-template-columns:repeat(2,1fr)}}.psite-about{grid-template-columns:1.2fr 1fr;align-items:center;gap:28px;display:grid}.psite-lead{color:var(--pmut);font-size:1.12rem;line-height:1.65}.psite-about__panel{background:var(--psoft);border:1px solid var(--pbord);border-radius:18px}.psite-about__row{grid-template-columns:96px 1fr;align-items:start;gap:12px;padding:14px 18px;display:grid}.psite-about__row+.psite-about__row{border-top:1px solid var(--pbord)}.psite-about__k{font-family:var(--font-heading);color:var(--accent);font-size:.82rem;font-weight:800}.psite-about__v{color:var(--pmut);font-size:.88rem;line-height:1.5}@container psite (max-width:720px){.psite-about{grid-template-columns:1fr}}.psite-skills{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.psite-skill{background:var(--pbg);border:1px solid var(--pbord);border-radius:16px;padding:20px;transition:transform .18s,translate .25s,box-shadow .25s,border-color .25s}.psite-skill:hover{border-color:color-mix(in srgb, var(--c) 45%, var(--pbord));translate:0 -4px;box-shadow:0 18px 40px #0000001a}.psite-skill__head{align-items:center;gap:10px;margin-bottom:14px;display:flex}.psite-skill__dot{background:var(--c);width:11px;height:11px;box-shadow:0 0 0 4px color-mix(in srgb, var(--c) 16%, transparent);border-radius:50%}.psite-skill__name{font-family:var(--font-heading);letter-spacing:-.02em;color:var(--ptext);font-size:.98rem;font-weight:800}.psite-skill__tags{flex-wrap:wrap;gap:7px;display:flex}@container psite (max-width:860px){.psite-skills{grid-template-columns:repeat(2,1fr)}}@container psite (max-width:540px){.psite-skills{grid-template-columns:1fr}}.psite-timeline{flex-direction:column;gap:18px;padding-left:26px;display:flex;position:relative}.psite-timeline:before{content:"";background:linear-gradient(var(--accent), color-mix(in srgb, var(--accent) 18%, transparent));width:2px;position:absolute;top:6px;bottom:6px;left:5px}.psite-exp{background:var(--psoft);border:1px solid var(--pbord);border-radius:16px;padding:20px 22px;position:relative}.psite-exp__node{background:var(--accent);width:12px;height:12px;box-shadow:0 0 0 4px var(--pbg);border-radius:50%;position:absolute;top:24px;left:-26px}.psite-exp__top{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.psite-exp__role{font-family:var(--font-heading);letter-spacing:-.02em;color:var(--ptext);font-size:1.1rem;font-weight:800}.psite-exp__period{color:var(--plight);font-size:.8rem;font-weight:600}.psite-exp__co{color:var(--accent);align-items:center;gap:8px;margin-top:3px;font-size:.9rem;font-weight:700;display:inline-flex}.psite-exp__badge{border-radius:var(--radius-pill);background:var(--pmuted-bg);color:var(--pmut);text-transform:uppercase;letter-spacing:.06em;padding:2px 9px;font-size:.66rem;font-weight:700}.psite-exp__list{flex-direction:column;gap:8px;margin:14px 0 0;padding-left:18px;display:flex}.psite-exp__list li{color:var(--pmut);font-size:.9rem;line-height:1.55}.psite-exp__list li::marker{color:var(--accent)}.psite-projects{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}.psite-project{background:var(--pbg);border:1px solid var(--pbord);border-radius:16px;padding:22px 22px 22px 26px;transition:transform .18s,translate .25s,box-shadow .25s,border-color .25s;position:relative;overflow:hidden}.psite-project:before{content:"";background:var(--c);width:4px;position:absolute;top:0;bottom:0;left:0}.psite-project:hover{border-color:color-mix(in srgb, var(--c) 40%, var(--pbord));translate:0 -4px;box-shadow:0 22px 46px #0000001f}.psite-project__top{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.psite-project__idx{font-family:var(--font-heading);color:var(--plight);font-size:.9rem;font-weight:800}.psite-project__metric{color:var(--c);background:color-mix(in srgb, var(--c) 13%, transparent);border-radius:var(--radius-pill);padding:4px 10px;font-size:.72rem;font-weight:700}.psite-project__tag{margin-bottom:10px;display:inline-block}.psite-project__title{font-family:var(--font-heading);letter-spacing:-.025em;color:var(--ptext);margin-bottom:8px;font-size:1.18rem;font-weight:800}.psite-project__desc{color:var(--pmut);margin-bottom:14px;font-size:.88rem;line-height:1.55}.psite-project__tech{flex-wrap:wrap;gap:6px;display:flex}@container psite (max-width:700px){.psite-projects{grid-template-columns:1fr}}.psite-clients{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}.psite-client{border-radius:var(--radius-pill);background:var(--psoft);border:1px solid var(--pbord);color:var(--ptext);align-items:center;gap:8px;padding:9px 16px;font-size:.86rem;font-weight:700;display:inline-flex}.psite-client__dot{background:var(--c);border-radius:50%;width:9px;height:9px}.psite-contact{text-align:center;flex-direction:column;align-items:center;gap:16px;max-width:760px;margin:0 auto;padding:clamp(56px,9cqw,110px) clamp(20px,5cqw,56px) 0;display:flex}.psite-contact__title{font-family:var(--font-heading);letter-spacing:-.04em;color:var(--ptext);max-width:16ch;font-size:clamp(1.9rem,5.5cqw,3.2rem);font-weight:800;line-height:1.04}.psite-contact__sub{color:var(--pmut);max-width:46ch;font-size:1.05rem;line-height:1.6}.psite-contact__cta{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:6px;display:flex}.psite-foot{border-top:1px solid var(--pbord);width:100%;color:var(--plight);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:clamp(48px,8vw,88px);padding:22px 0 30px;font-size:.8rem;display:flex}.psite-foot__brand{font-family:var(--font-heading);color:var(--ptext);letter-spacing:-.02em;font-weight:800}.psite [data-reveal]{opacity:0;transition:opacity .65s cubic-bezier(.22,1,.36,1),transform .65s cubic-bezier(.22,1,.36,1);transform:translateY(20px)}.psite [data-reveal].is-in{opacity:1;transform:none}.psite-stat:nth-child(2){transition-delay:60ms}.psite-stat:nth-child(3){transition-delay:.12s}.psite-stat:nth-child(4){transition-delay:.18s}.psite-skills .psite-skill:nth-child(3n+2){transition-delay:60ms}.psite-skills .psite-skill:nth-child(3n+3){transition-delay:.12s}.psite-projects .psite-project:nth-child(2n){transition-delay:70ms}@media (prefers-reduced-motion:reduce){.psite [data-reveal]{opacity:1;transition:none;transform:none}}@media (max-width:768px){.os-safari{height:auto}.os-safari__viewport{overflow:visible}.os-safari__bar{z-index:30;position:sticky;top:0}}.psite-hero__title .pword{opacity:0;animation:.85s cubic-bezier(.22,1,.36,1) forwards psiteWord;animation-delay:calc(var(--i) * 85ms + .1s);margin-right:.26em;display:inline-block;transform:translateY(110%)rotate(2deg)}.psite-hero__title .psite-mark{margin-right:0}@keyframes psiteWord{to{opacity:1;transform:none}}.psite-anim{opacity:0;animation:.75s cubic-bezier(.22,1,.36,1) forwards psiteUp;animation-delay:var(--d,0s)}@keyframes psiteUp{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}.psite-hero__chips.psite-anim{opacity:1;animation:none}.psite-hero__chips .psite-chip{opacity:0;animation:.5s cubic-bezier(.34,1.56,.64,1) both psiteChip;animation-delay:calc(.78s + var(--ci) * 60ms)}@keyframes psiteChip{0%{opacity:0;transform:translateY(12px)scale(.8)}to{opacity:1;transform:none}}.psite-blob--1{animation:9s ease-in-out infinite psiteDrift1}.psite-blob--2{animation:11s ease-in-out infinite psiteDrift2}.psite-blob--3{animation:13s ease-in-out infinite psiteDrift3}@keyframes psiteDrift1{0%,to{transform:translate(0)scale(1)}50%{transform:translate(24px,18px)scale(1.08)}}@keyframes psiteDrift2{0%,to{transform:translate(0)scale(1)}50%{transform:translate(-22px,20px)scale(1.06)}}@keyframes psiteDrift3{0%,to{transform:translate(0)scale(1)}50%{transform:translate(18px,-16px)scale(1.1)}}.psite-hero__spot{z-index:0;pointer-events:none;opacity:0;background:radial-gradient(380px circle at var(--mx,50%) var(--my,40%), color-mix(in srgb, var(--accent) 20%, transparent), transparent 62%);transition:opacity .45s;position:absolute;inset:0}.psite-hero:hover .psite-hero__spot{opacity:1}.psite-marquee{margin-top:20px;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 7% 93%,#0000);mask-image:linear-gradient(90deg,#0000,#000 7% 93%,#0000)}.psite-marquee__track{gap:10px;width:max-content;animation:30s linear infinite psiteMarquee;display:flex}.psite-marquee:hover .psite-marquee__track{animation-play-state:paused}.psite-marquee .psite-client{flex-shrink:0}@keyframes psiteMarquee{to{transform:translate(-50%)}}.psite-btn--accent{position:relative;overflow:hidden}.psite-btn--accent:after{content:"";background:linear-gradient(120deg,#0000 30%,#ffffff73 50%,#0000 70%);transition:transform .7s cubic-bezier(.22,1,.36,1);position:absolute;inset:0;transform:translate(-130%)}.psite-btn--accent:hover:after{transform:translate(130%)}.psite-nav__links button.is-active{color:var(--ptext);background:var(--psoft)}@media (prefers-reduced-motion:reduce){.psite-hero__title .pword,.psite-anim,.psite-hero__imgwrap,.psite-hero__chips .psite-chip{opacity:1!important;animation:none!important;transform:none!important}.psite-blob,.psite-marquee__track{animation:none!important}.psite-mark:before{animation:none!important;transform:scaleX(1)rotate(-1.2deg)!important}}.os-dock-wrap{z-index:8000;pointer-events:none;justify-content:center;display:flex;position:absolute;bottom:10px;left:0;right:0}.os-dock{pointer-events:auto;-webkit-backdrop-filter:saturate(180%)blur(24px);background:#ffffff6b;border:1px solid #ffffff80;border-radius:22px;align-items:flex-end;gap:16px;padding:10px 18px;display:flex;box-shadow:0 18px 50px #0d0d0d42,inset 0 1px #fff9}.os-dock__item{cursor:pointer;transform-origin:bottom;will-change:transform;background:0 0;border:none;flex-direction:column;align-items:center;padding:0;display:flex;position:relative}.os-dock__icon{border-radius:13px;place-items:center;width:52px;height:52px;display:grid;position:relative;overflow:hidden;box-shadow:0 6px 14px #0d0d0d38,inset 0 1px #ffffff73}.os-dock__icon:before{content:"";background:linear-gradient(#ffffff7a,#0000);border-radius:11px;height:42%;position:absolute;inset:2px 4px auto}.os-dock__icon:after{content:"";filter:blur(4px);background:#0000001f;border-radius:999px;height:14%;position:absolute;inset:auto 7px 5px}.os-dock__glyph{z-index:1;color:#fff;filter:drop-shadow(0 1px 1px #0003);position:relative}.os-dock__dot{background:0 0;border-radius:50%;width:4px;height:4px;margin-top:4px}.os-dock__dot.is-open{background:var(--text)}.os-dock__tooltip{color:#fff;white-space:nowrap;opacity:0;pointer-events:none;background:#28282ceb;border-radius:7px;margin-bottom:4px;padding:5px 11px;font-size:.78rem;font-weight:600;transition:opacity .18s;position:absolute;bottom:100%;left:50%;transform:translate(-50%,-8px)}.os-dock__item:hover .os-dock__tooltip{opacity:1}.os-menubar__nav{align-items:center;gap:1px;margin-left:4px;display:flex}.os-menubar__navitem{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:3px 9px;font-size:.8rem;font-weight:500;transition:background .15s,color .15s}.os-menubar__navitem:hover{color:var(--text);background:#0d0d0d12}.os-menubar__navitem.is-active{color:var(--text);font-weight:700}.os-menubar__search{border-radius:var(--radius-pill);color:var(--text-muted);cursor:pointer;background:#0d0d0d0d;border:1px solid #0d0d0d14;align-items:center;gap:6px;padding:3px 7px 3px 10px;font-size:.78rem;font-weight:600;transition:background .15s,color .15s;display:inline-flex}.os-menubar__search:hover{color:var(--text);background:#0d0d0d17}.os-menubar__kbd{font-family:var(--font-heading);background:#0d0d0d17;border-radius:4px;padding:0 5px;font-size:.72rem;line-height:1.5}.os-spotlight{z-index:9500;-webkit-backdrop-filter:blur(6px);background:#0d0d0d42;justify-content:center;align-items:flex-start;padding-top:13vh;animation:.14s os-fade;display:flex;position:fixed;inset:0}@keyframes os-fade{0%{opacity:0}to{opacity:1}}.os-spotlight__panel{-webkit-backdrop-filter:saturate(180%)blur(30px);background:#ffffffeb;border:1px solid #fff9;border-radius:16px;width:min(560px,92vw);animation:.2s os-window-in;overflow:hidden;box-shadow:0 30px 80px #0d0d0d59}.os-spotlight__search{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:14px 18px;display:flex}.os-spotlight__search-icon{color:var(--text-light);flex-shrink:0}.os-spotlight__input{font-size:1.1rem;font-family:var(--font-body);color:var(--text);background:0 0;border:none;outline:none;flex:1}.os-spotlight__esc{color:var(--text-light);background:var(--bg-soft);border:1px solid var(--border);border-radius:5px;padding:2px 7px;font-size:.7rem}.os-spotlight__list{max-height:52vh;padding:8px;overflow-y:auto}.os-spotlight__empty{text-align:center;color:var(--text-light);padding:20px}.os-spotlight__item{text-align:left;cursor:pointer;background:0 0;border:none;border-radius:10px;align-items:center;gap:13px;width:100%;padding:10px 12px;display:flex}.os-spotlight__item.is-sel{background:var(--accent)}.os-spotlight__item.is-sel .os-spotlight__name,.os-spotlight__item.is-sel .os-spotlight__desc,.os-spotlight__item.is-sel .os-spotlight__enter{color:#fff}.os-spotlight__icon{border-radius:10px;flex-shrink:0;place-items:center;width:38px;height:38px;display:grid;box-shadow:inset 0 1px #fff6}.os-spotlight__glyph{color:#fff}.os-spotlight__text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.os-spotlight__name{color:var(--text);font-size:.95rem;font-weight:700}.os-spotlight__desc{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;overflow:hidden}.os-spotlight__enter{color:var(--text-light);text-align:center;width:16px;font-size:1rem}.os-welcome{z-index:7000;flex-direction:column;align-items:center;gap:6px;animation:.45s cubic-bezier(.22,1,.36,1) .2s both os-window-in;display:flex;position:absolute;bottom:108px;left:50%;transform:translate(-50%)}.os-welcome__card{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--border);background:#fffffff7;border-radius:16px;gap:14px;width:min(450px,92vw);padding:18px 20px;display:flex;box-shadow:0 24px 60px #0d0d0d4d}.os-welcome__icon{background:var(--action);width:38px;height:38px;color:var(--ink);border-radius:10px;flex-shrink:0;place-items:center;display:grid}.os-welcome__title{font-family:var(--font-heading);letter-spacing:-.02em;margin-bottom:4px;font-size:1.05rem;font-weight:800}.os-welcome__text{color:var(--text-muted);margin-bottom:12px;font-size:.86rem;line-height:1.5}.os-welcome__text kbd{font-family:var(--font-heading);background:var(--bg-soft);border:1px solid var(--border);border-radius:4px;padding:0 5px;font-size:.78rem}.os-welcome__actions{align-items:center;gap:10px;display:flex}.os-welcome__cta{padding:9px 16px;font-size:.85rem}.os-welcome__skip{color:var(--text-muted);cursor:pointer;background:0 0;border:none;font-size:.85rem;font-weight:600}.os-welcome__skip:hover{color:var(--text)}.os-welcome__arrow{color:#0d0d0d66;font-size:1.4rem;animation:1.4s ease-in-out infinite os-bounce}@keyframes os-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}.os-titlebar,.os-resize{touch-action:none}.os-resize{cursor:nwse-resize;z-index:4;width:18px;height:18px;position:absolute;bottom:0;right:0}.os-resize:after{content:"";border-right:2px solid var(--text-light);border-bottom:2px solid var(--text-light);opacity:.5;border-bottom-right-radius:3px;width:8px;height:8px;position:absolute;bottom:3px;right:3px}.os-dock__divider{background:#0d0d0d33;border-radius:1px;align-self:center;width:1px;height:46px;margin:0 8px}.os-dock__min{align-self:center}.os-dock__thumb{background:var(--bg);border:1px solid var(--border);transform-origin:bottom;border-radius:8px;flex-direction:column;width:62px;height:46px;transition:transform .2s;display:flex;overflow:hidden;box-shadow:0 5px 12px #0d0d0d38}.os-dock__min:hover .os-dock__thumb{transform:translateY(-6px)scale(1.06)}.os-dock__thumb-bar{background:linear-gradient(#fbfbfc,#f0f0f2);flex-shrink:0;align-items:center;gap:2.5px;height:12px;padding:0 5px;display:flex}.is-dark .os-dock__thumb-bar{background:#34343a}.os-dock__thumb-bar i{border-radius:50%;width:3px;height:3px}.os-dock__thumb-bar i:first-child{background:#ff5f57}.os-dock__thumb-bar i:nth-child(2){background:#febc2e}.os-dock__thumb-bar i:nth-child(3){background:#28c840}.os-dock__thumb-body{background:var(--bg-soft);flex:1;align-items:flex-end;gap:4px;padding:5px 6px;display:flex}.os-dock__thumb-badge{color:#fff;border-radius:5px;flex-shrink:0;place-items:center;width:16px;height:16px;display:grid;box-shadow:inset 0 1px #ffffff59}.os-dock__thumb-lines{flex-direction:column;flex:1;gap:3px;padding-bottom:1px;display:flex}.os-dock__thumb-lines i{background:var(--border);border-radius:2px;height:3px}.os-dock__thumb-lines i:first-child{width:82%}.os-dock__thumb-lines i:last-child{width:56%}.os-cc-backdrop{z-index:9400;position:fixed;inset:0}.os-cc{-webkit-backdrop-filter:saturate(180%)blur(30px);background:#ffffffb8;border:1px solid #ffffff80;border-radius:18px;flex-direction:column;gap:12px;width:290px;padding:14px;animation:.18s os-window-in;display:flex;position:absolute;top:36px;right:12px;box-shadow:0 24px 60px #0d0d0d4d}.os-cc__block{background:var(--bg-soft);border-radius:14px;flex-direction:column;gap:10px;padding:13px;display:flex}.os-cc__label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-light);font-size:.72rem;font-weight:700}.os-cc__seg{grid-template-columns:1fr 1fr;gap:6px;display:grid}.os-cc__seg button{border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:9px;font-size:.85rem;font-weight:600;transition:background .15s;display:inline-flex}.os-cc__seg button.is-active{background:var(--text);color:var(--bg);border-color:var(--text)}.os-cc__wps{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.os-cc__wp{aspect-ratio:1;cursor:pointer;border:2px solid #0000;border-radius:10px;background-position:50%!important;background-size:cover!important}.os-cc__wp.is-active{border-color:var(--accent);box-shadow:0 0 0 2px var(--bg), 0 0 0 4px var(--accent)}.os-ctx-backdrop{z-index:9450;position:fixed;inset:0}.os-ctx{-webkit-backdrop-filter:saturate(180%)blur(30px);background:#fffc;border:1px solid #ffffff80;border-radius:12px;min-width:210px;padding:6px;animation:.12s os-window-in;position:absolute;box-shadow:0 20px 50px #0d0d0d4d}.os-ctx__item{text-align:left;width:100%;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:7px;padding:7px 12px;font-size:.86rem;display:block}.os-ctx__item:hover{background:var(--accent);color:#fff}.os-ctx__item.is-danger{color:#e0245e}.os-ctx__item.is-danger:hover{color:#fff;background:#e0245e}.os-ctx__divider{background:var(--border);height:1px;margin:5px 8px;display:block}.os-menubar__cc{width:26px;height:22px;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:6px;place-items:center;display:inline-grid}.os-menubar__cc:hover{background:#0d0d0d12}.os-desktop.is-dark{--bg:#1f1f22;--bg-soft:#2a2a2e;--bg-muted:#37373c;--text:#f5f5f7;--text-muted:#c2c2c8;--text-light:#8e8e96;--border:#ffffff1f;--border-bold:#f5f5f7}.is-dark .os-menubar{background:#1c1c1e99;border-bottom-color:#ffffff1a}.is-dark .os-menubar__navitem:hover,.is-dark .os-menubar__cc:hover{background:#ffffff1a}.is-dark .os-menubar__search{background:#ffffff1a;border-color:#ffffff24}.is-dark .os-menubar__search:hover,.is-dark .os-menubar__kbd{background:#ffffff29}.is-dark .os-window{border-color:#ffffff1a;box-shadow:0 30px 70px #0000008c,0 6px 20px #0006}.is-dark .os-window--focused{box-shadow:0 40px 90px #0009,0 8px 26px #00000073}.is-dark .os-titlebar{background:linear-gradient(#3a3a3f,#2d2d31);border-bottom-color:#ffffff14}.is-dark .os-window:not(.os-window--focused) .os-titlebar{background:#2a2a2e}.is-dark .os-window:not(.os-window--focused) .os-light{background:#48484c}.is-dark .os-titlebar__title{color:var(--text-muted)}.is-dark .os-dock{background:#28282c80;border-color:#ffffff1f}.is-dark .os-dock__divider{background:#fff3}.is-dark .os-desktop-icon:hover{background:#ffffff1a}.is-dark .os-desktop-icon__label{text-shadow:0 1px 3px #0009}.is-dark .os-spotlight__panel,.is-dark .os-cc,.is-dark .os-ctx,.is-dark .os-welcome__card{background:#28282cd1;border-color:#ffffff1f}.is-dark .os-cc__seg button.is-active{color:#1f1f22;background:#f5f5f7}.material-symbols-rounded{vertical-align:middle;white-space:nowrap;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;font-family:Material Symbols Rounded;font-style:normal;font-weight:400;display:inline-flex}.os-desktop-icon__badge{color:#fff;place-items:center;display:grid}.os-desktop-icon__badge .material-symbols-rounded{filter:drop-shadow(0 1px 1px #0003)}.os-menubar__icon{color:var(--text);display:inline-flex}.os-shell{height:100%;display:flex}.os-side{background:var(--bg-soft);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:4px;width:212px;padding:16px 12px;display:flex;overflow-y:auto}.os-side__head{padding:2px 8px 10px}.os-side__head h2{font-family:var(--font-heading);letter-spacing:-.03em;color:var(--text);font-size:1.15rem;font-weight:800}.os-side__status{color:var(--text-light);align-items:center;gap:7px;margin-top:4px;font-size:.74rem;display:flex}.os-side__status i{background:#16a34a;border-radius:50%;width:7px;height:7px}.os-side__cta{background:var(--accent);color:#fff;border-radius:var(--radius-sm);font-family:var(--font-heading);cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;margin:2px 0 10px;padding:10px;font-size:.86rem;font-weight:700;transition:filter .2s;display:flex}.os-side__cta:hover{filter:brightness(1.06)}.os-side__label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-light);padding:10px 8px 4px;font-size:.68rem;font-weight:700}.os-side__nav{flex-direction:column;gap:2px;display:flex}.os-side__item{width:100%;color:var(--text-muted);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:11px;padding:8px 10px;font-size:.88rem;font-weight:600;transition:background .15s,color .15s;display:flex}.os-side__item:hover{color:var(--text);background:#0d0d0d0d}.os-side__item.is-active{color:var(--accent);background:color-mix(in srgb, var(--accent) 11%, transparent);box-shadow:inset 2px 0 0 var(--accent)}.os-side__foot{align-items:center;gap:10px;margin-top:auto;padding:8px;display:flex}.os-side__avatar{background:linear-gradient(160deg, var(--accent), #ff9ec4);color:#fff;border-radius:50%;flex-shrink:0;place-items:center;width:30px;height:30px;font-size:.8rem;font-weight:800;display:grid}.os-side__who{flex-direction:column;line-height:1.2;display:flex}.os-side__who b{color:var(--text);font-size:.82rem}.os-side__who span{color:var(--text-light);font-size:.72rem}.os-main{flex:1;min-width:0;overflow-y:auto}.is-dark .os-side__item:hover{background:#ffffff12}.os-window--minimizing{transform-origin:bottom;opacity:0;filter:blur(1px);pointer-events:none;transition:transform .34s cubic-bezier(.5,0,.75,.35),opacity .34s,filter .34s;transform:translateY(72vh)scale(.12)}.os-mark{background:linear-gradient(transparent 58%, color-mix(in srgb, var(--action) 85%, transparent) 58%);color:#0d0d0d;text-shadow:none;padding:0 .05em}.os-hero{z-index:1;text-align:center;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:7px;padding:0 24px 40px;animation:.7s os-window-in;display:flex;position:absolute;inset:0}.os-hero>*{z-index:1;position:relative}.os-hero:before{content:"";filter:blur(34px);z-index:0;background:radial-gradient(closest-side,#080a1880,#080a1838 55%,#0000 75%);border-radius:50%;width:min(760px,92%);height:460px;position:absolute;top:48%;left:50%;transform:translate(-50%,-50%)}.os-hero__mark{filter:drop-shadow(0 16px 40px #00000073);margin-bottom:16px}.os-hero__name{font-family:var(--font-heading);letter-spacing:-.045em;color:#fff;text-shadow:0 2px 22px #00000073;font-size:clamp(2.1rem,4.6vw,3.3rem);font-weight:800}.os-hero__role{color:#ffd2e3;text-shadow:0 1px 12px #0006;font-size:1.05rem;font-weight:600}.os-hero__role span{opacity:.55;margin:0 5px}.os-hero__meta{color:#fffc;text-shadow:0 1px 10px #0006;font-size:.92rem}.os-hero__hint{border-radius:var(--radius-pill);color:#ffffffeb;-webkit-backdrop-filter:blur(10px);background:#ffffff29;border:1px solid #ffffff47;margin-top:20px;padding:8px 18px;font-size:.8rem;font-weight:600}.os-mobile{overflow:hidden}.os-mhome{z-index:5;flex-direction:column;padding:54px 24px 120px;animation:.5s os-window-in;display:flex;position:absolute;inset:0;overflow-y:auto}.os-mhome:before{content:"";pointer-events:none;z-index:-1;background:linear-gradient(#06081499 0%,#06081447 46%,#0000 100%);height:58%;position:fixed;top:0;left:0;right:0}.os-mhome__head,.os-mhome__grid{position:relative}.os-mhome__head{text-align:center;flex-direction:column;align-items:center;gap:5px;margin-bottom:36px;display:flex}.os-mhome__head .tm-logo{filter:drop-shadow(0 10px 26px #0d0d0d38);margin-bottom:10px}.os-mhome__name{font-family:var(--font-heading);letter-spacing:-.045em;color:#fff;text-shadow:0 2px 18px #00000080;font-size:2.05rem;font-weight:800}.os-mhome__role{color:#ffd600;text-shadow:0 1px 10px #0000008c;margin-top:4px;font-size:.92rem;font-weight:700}.os-mhome__sub{color:#ffffffe0;text-shadow:0 1px 10px #0000008c;margin-top:4px;padding:0 14px;font-size:.78rem;font-weight:500;line-height:1.45}.os-mhome__hint{color:#ffffffb3;text-shadow:0 1px 8px #00000080;margin-top:10px;font-size:.78rem;font-weight:500}.os-mhome__grid{grid-template-columns:repeat(3,1fr);gap:24px 12px;display:grid}.os-mhome__app{cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:center;gap:9px;display:flex}.os-mhome__app:active{transition:transform .1s;transform:scale(.92)}.os-mhome__icon{color:#fff;border-radius:16px;place-items:center;width:62px;height:62px;display:grid;box-shadow:0 8px 18px #0d0d0d2e,inset 0 1px #fff6}.os-mhome__icon .material-symbols-rounded{filter:drop-shadow(0 1px 1px #0003)}.os-mhome__label{color:#fff;text-shadow:0 1px 6px #00000073;font-size:.8rem;font-weight:600}.os-mhome__dock{-webkit-backdrop-filter:saturate(180%)blur(24px);background:#ffffff80;border:1px solid #fff9;border-radius:26px;justify-content:center;gap:20px;padding:12px 16px;display:flex;position:fixed;bottom:16px;left:16px;right:16px;box-shadow:0 16px 40px #0d0d0d33}.is-dark .os-mhome__dock{background:#28282c80;border-color:#ffffff1f}.os-mhome__dockicon{cursor:pointer;background:0 0;border:none;padding:0}.os-mhome__dockicon:active{transition:transform .1s;transform:scale(.9)}.os-mhome__dock .os-mhome__icon{border-radius:13px;width:52px;height:52px}.os-msheet{z-index:20;background:var(--bg);flex-direction:column;animation:.3s cubic-bezier(.22,1,.36,1) msheet-in;display:flex;position:absolute;inset:0}@keyframes msheet-in{0%{transform:translateY(100%)}to{transform:none}}.os-msheet__bar{-webkit-backdrop-filter:saturate(180%)blur(20px);border-bottom:1px solid var(--border);background:#ffffffd1;flex-shrink:0;justify-content:space-between;align-items:center;height:52px;padding:0 6px;display:flex}.is-dark .os-msheet__bar{background:#1c1c1eb8}.os-msheet__home{color:var(--accent);cursor:pointer;background:0 0;border:none;align-items:center;gap:1px;padding:8px 10px;font-size:.95rem;font-weight:600;display:inline-flex}.os-msheet__title{font-family:var(--font-heading);color:var(--text);font-size:.96rem;font-weight:700}.os-msheet__spacer{width:70px}.os-msheet__body{-webkit-overflow-scrolling:touch;flex:1;overflow-y:auto}.os-msheet__body .os-shell{height:auto;display:block}.os-msheet__body .os-main{overflow:visible}@media (max-width:1180px){.os-menubar__nav{display:none}}@media (max-width:768px){.os-side{display:none}}@media (max-width:600px){.os-menubar__search-label,.os-menubar__kbd{display:none}}@media (max-width:768px){.os-window{border-radius:14px;bottom:92px;right:6px;width:auto!important;height:auto!important;top:36px!important;left:6px!important}.os-titlebar{cursor:default}.os-about__hero{grid-template-columns:1fr}.os-about__avatar{height:180px}.os-about__stats{grid-template-columns:repeat(2,1fr)}.os-projects__hero,.os-skills__hero,.os-contact__hero{grid-template-columns:1fr}.os-projects__visual{min-height:190px}.os-projects__featured,.os-skills__core,.os-skills__grid,.os-projects__grid{grid-template-columns:1fr}.os-dock{gap:5px;padding:7px 9px}.os-dock__icon{border-radius:11px;width:44px;height:44px}}@media (max-width:480px){.os-app{padding:20px 18px 28px}.os-menubar__right{gap:8px}.os-menubar__clock,.os-menubar__icon{display:none}.os-dock{gap:4px;max-width:calc(100vw - 16px);padding:7px 8px}.os-dock__icon{border-radius:10px;width:38px;height:38px}.os-dock__glyph{transform:scale(.86)}.os-welcome{bottom:92px}.os-contact__card{align-items:flex-start}.os-contact__copy span{display:none}}
