/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */
@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-space-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-tracking:initial;--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-duration:initial;--tw-ease:initial;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0}}}@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-serif:ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-white:#fff;--spacing:.25rem;--container-4xl:56rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--font-weight-normal:400;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wider:.05em;--tracking-widest:.1em;--radius-xl:.75rem;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-on-primary-fixed:#00105b;--color-on-surface-variant:#444654;--color-surface-container:#eee;--color-on-tertiary-container:#ff795e;--color-primary-fixed:#dee0ff;--color-surface-container-low:#f3f3f3;--color-on-background:#1a1c1c;--color-primary-container:#0024a3;--color-primary:#00156d;--color-background:#f9f9f9;--spacing-xl:80px;--spacing-sm:16px;--spacing-margin-mobile:16px;--spacing-md:24px;--spacing-margin-desktop:64px;--spacing-xs:8px;--spacing-lg:48px;--font-label-mono:"JetBrains Mono", monospace;--font-headline-lg:"Newsreader", serif;--font-headline-lg-mobile:"Newsreader", serif;--font-display-xl-mobile:"Newsreader", serif;--font-display-xl:"Newsreader", serif;--font-body-lg:"IBM Plex Sans", sans-serif;--font-body-md:"IBM Plex Sans", sans-serif;--text-label-mono:14px;--text-label-mono--line-height:20px;--text-label-mono--letter-spacing:.05em;--text-label-mono--font-weight:500;--text-headline-lg:40px;--text-headline-lg--line-height:48px;--text-headline-lg--font-weight:500;--text-headline-lg-mobile:32px;--text-headline-lg-mobile--line-height:38px;--text-headline-lg-mobile--font-weight:500;--text-display-xl-mobile:48px;--text-display-xl-mobile--line-height:52px;--text-display-xl-mobile--letter-spacing:-.01em;--text-display-xl-mobile--font-weight:600;--text-display-xl:80px;--text-display-xl--line-height:88px;--text-display-xl--letter-spacing:-.02em;--text-display-xl--font-weight:600;--text-body-lg:18px;--text-body-lg--line-height:28px;--text-body-lg--font-weight:400;--text-body-md:16px;--text-body-md--line-height:24px;--text-body-md--font-weight:400}}@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{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.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}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-4{inset-inline:calc(var(--spacing) * 4)}.top-0{top:calc(var(--spacing) * 0)}.top-4{top:calc(var(--spacing) * 4)}.bottom-4{bottom:calc(var(--spacing) * 4)}.left-0{left:calc(var(--spacing) * 0)}.z-10{z-index:10}.z-50{z-index:50}.mx-auto{margin-inline:auto}.mt-lg{margin-top:var(--spacing-lg)}.mt-md{margin-top:var(--spacing-md)}.mt-xl{margin-top:var(--spacing-xl)}.mb-lg{margin-bottom:var(--spacing-lg)}.mb-md{margin-bottom:var(--spacing-md)}.mb-sm{margin-bottom:var(--spacing-sm)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.h-\[600vh\]{height:600vh}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.min-h-screen{min-height:100vh}.w-1{width:calc(var(--spacing) * 1)}.w-1\/2{width:50%}.w-full{width:100%}.max-w-4xl{max-width:var(--container-4xl)}.max-w-\[1440px\]{max-width:1440px}.flex-grow{flex-grow:1}.scale-\[0\.92\]{scale:.92}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-lg{gap:var(--spacing-lg)}.gap-md{gap:var(--spacing-md)}.gap-xl{gap:var(--spacing-xl)}.gap-xs{gap:var(--spacing-xs)}:where(.space-y-xl>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing-xl) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing-xl) * calc(1 - var(--tw-space-y-reverse)))}.overflow-hidden{overflow:hidden}.scroll-smooth{scroll-behavior:smooth}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-on-background{border-color:var(--color-on-background)}.bg-background{background-color:var(--color-background)}.bg-primary{background-color:var(--color-primary)}.bg-surface-container{background-color:var(--color-surface-container)}.bg-surface-container-low{background-color:var(--color-surface-container-low)}.bg-right{background-position:100%}.bg-top{background-position:top}.p-md{padding:var(--spacing-md)}.px-margin-mobile{padding-inline:var(--spacing-margin-mobile)}.px-xs{padding-inline:var(--spacing-xs)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-lg{padding-block:var(--spacing-lg)}.py-md{padding-block:var(--spacing-md)}.py-sm{padding-block:var(--spacing-sm)}.py-xl{padding-block:var(--spacing-xl)}.py-xs{padding-block:var(--spacing-xs)}.pt-32{padding-top:calc(var(--spacing) * 32)}.pt-lg{padding-top:var(--spacing-lg)}.pb-sm{padding-bottom:var(--spacing-sm)}.pb-xl{padding-bottom:var(--spacing-xl)}.text-center{text-align:center}.text-left{text-align:left}.font-body-lg{font-family:var(--font-body-lg)}.font-body-md{font-family:var(--font-body-md)}.font-display-xl-mobile{font-family:var(--font-display-xl-mobile)}.font-headline-lg-mobile{font-family:var(--font-headline-lg-mobile)}.font-label-mono{font-family:var(--font-label-mono)}.font-serif{font-family:var(--font-serif)}.text-display-xl-mobile{font-size:var(--text-display-xl-mobile);line-height:var(--tw-leading,var(--text-display-xl-mobile--line-height));letter-spacing:var(--tw-tracking,var(--text-display-xl-mobile--letter-spacing));font-weight:var(--tw-font-weight,var(--text-display-xl-mobile--font-weight))}.text-label-mono{font-size:var(--text-label-mono);line-height:var(--tw-leading,var(--text-label-mono--line-height));letter-spacing:var(--tw-tracking,var(--text-label-mono--letter-spacing));font-weight:var(--tw-font-weight,var(--text-label-mono--font-weight))}.text-body-lg{font-size:var(--text-body-lg);line-height:var(--tw-leading,var(--text-body-lg--line-height));font-weight:var(--tw-font-weight,var(--text-body-lg--font-weight))}.text-body-md{font-size:var(--text-body-md);line-height:var(--tw-leading,var(--text-body-md--line-height));font-weight:var(--tw-font-weight,var(--text-body-md--font-weight))}.text-headline-lg-mobile{font-size:var(--text-headline-lg-mobile);line-height:var(--tw-leading,var(--text-headline-lg-mobile--line-height));font-weight:var(--tw-font-weight,var(--text-headline-lg-mobile--font-weight))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-\[11px\]{font-size:11px}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-on-background{color:var(--color-on-background)}.text-on-primary-fixed{color:var(--color-on-primary-fixed)}.text-on-surface-variant{color:var(--color-on-surface-variant)}.text-primary{color:var(--color-primary)}.text-white{color:var(--color-white)}.text-white\/90{color:#ffffffe6}@supports (color:color-mix(in lab, red, red)){.text-white\/90{color:color-mix(in oklab, var(--color-white) 90%, transparent)}}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.decoration-1{text-decoration-thickness:1px}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.opacity-20{opacity:.2}.opacity-80{opacity:.8}.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)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}@media (hover:hover){.group-hover\:translate-x-1:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing) * 1);translate:var(--tw-translate-x) var(--tw-translate-y)}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.selection\:bg-primary-fixed ::selection{background-color:var(--color-primary-fixed)}.selection\:bg-primary-fixed::selection{background-color:var(--color-primary-fixed)}.selection\:text-on-primary-fixed ::selection{color:var(--color-on-primary-fixed)}.selection\:text-on-primary-fixed::selection{color:var(--color-on-primary-fixed)}@media (hover:hover){.hover\:text-on-tertiary-container:hover{color:var(--color-on-tertiary-container)}.hover\:opacity-100:hover{opacity:1}}@media (width>=48rem){.md\:mt-\[120px\]{margin-top:120px}.md\:\!hidden{display:none!important}.md\:block{display:block}.md\:flex{display:flex}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-row{flex-direction:row}:where(.md\:space-y-\[160px\]>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(160px * var(--tw-space-y-reverse));margin-block-end:calc(160px * calc(1 - var(--tw-space-y-reverse)))}.md\:p-lg{padding:var(--spacing-lg)}.md\:px-margin-desktop{padding-inline:var(--spacing-margin-desktop)}.md\:py-\[120px\]{padding-block:120px}.md\:pt-48{padding-top:calc(var(--spacing) * 48)}.md\:pb-\[160px\]{padding-bottom:160px}.md\:font-display-xl{font-family:var(--font-display-xl)}.md\:font-headline-lg{font-family:var(--font-headline-lg)}.md\:text-display-xl{font-size:var(--text-display-xl);line-height:var(--tw-leading,var(--text-display-xl--line-height));letter-spacing:var(--tw-tracking,var(--text-display-xl--letter-spacing));font-weight:var(--tw-font-weight,var(--text-display-xl--font-weight))}.md\:text-headline-lg{font-size:var(--text-headline-lg);line-height:var(--tw-leading,var(--text-headline-lg--line-height));font-weight:var(--tw-font-weight,var(--text-headline-lg--font-weight))}}}html.dark #loader{background:#0b0f14!important}html.dark #loader #loader-counter,html.dark #loader div{color:#e8edf5!important}:root{--lvl0:#1a1a2e;--lvl1:#82a2ff26;--lvl2:#82a2ff59;--lvl3:#82a2ff8c;--lvl4:#82a2ffbf}html:not(.dark){--lvl0:#ebedf0;--lvl1:#dde7ff;--lvl2:#a3c0ff;--lvl3:#6b99ff;--lvl4:#36f}.noise-bg{opacity:.03;pointer-events:none;z-index:9999;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");position:fixed;inset:0}.reveal-up{opacity:0;transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1);transform:translateY(30px)}.reveal-up.is-visible{opacity:1;transform:translateY(0)}.clip-reveal{clip-path:inset(0 100% 0 0);transition:clip-path 1.2s cubic-bezier(.16,1,.3,1)}.clip-reveal.is-visible{clip-path:inset(0)}.project-card{transform-origin:50%;transition:background-color .4s cubic-bezier(.16,1,.3,1),color .4s cubic-bezier(.16,1,.3,1),transform .4s cubic-bezier(.16,1,.3,1)}.project-card:hover{color:#fff;z-index:10;background-color:#00156d;transform:scale(1.01)}.project-card:hover .project-tag{color:#ff795e;border-color:#ff795e}.project-card:hover .project-desc{color:#fff;opacity:.9}.project-strip-shell{-webkit-overflow-scrolling:touch;scrollbar-width:thin;width:100%;margin-left:0;margin-right:0;position:static;left:auto;right:auto;overflow-x:auto}.project-strip-shell::-webkit-scrollbar{height:4px}.project-strip-shell::-webkit-scrollbar-track{background:0 0}.project-strip-shell::-webkit-scrollbar-thumb{background:#0000001a;border-radius:4px}html.dark .project-strip-shell::-webkit-scrollbar-thumb{background:#ffffff1a}.project-strip-shell--no-scroll{overflow:hidden!important}.project-strip-shell--no-scroll::-webkit-scrollbar{display:none!important}.project-strip{cursor:default;will-change:transform;gap:1.5rem;padding:0 4rem;display:flex;overflow:visible;transform:translate(0)}.project-strip__card{background:linear-gradient(#ffffffb8 0%,#fffffff0 100%);flex:0 0 60vw;min-height:75vh;position:relative;overflow:hidden}html.dark .project-strip__card{background:linear-gradient(#11161db8 0%,#11161df0 100%)}.project-strip__card:before{content:"";pointer-events:none;background:linear-gradient(135deg,#1a3ccc0a,#0000 42%,#00000008);position:absolute;inset:0}.project-strip__card:hover{transform:translateY(-4px);box-shadow:0 24px 80px #0000001f}.project-strip__card--coming-soon{cursor:default;opacity:.85;border:1.5px dashed #1a1c1c40}html.dark .project-strip__card--coming-soon{border-color:#e8edf533}.project-strip__card--coming-soon:hover{box-shadow:none;transform:none}.project-strip__card--coming-soon:hover .project-strip__visual{transform:none}.coming-soon-badge{letter-spacing:.08em;text-transform:uppercase;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#ffffffe6;background:#00000059;border:1px solid #ffffff26;border-radius:9999px;align-items:center;padding:.25rem .75rem;font-family:JetBrains Mono,monospace;font-size:11px;display:inline-flex}.project-strip__card:hover .project-strip__visual{transform:scale(1.03)}.project-strip__visual{background:#dfe5f2;border:1px solid #1a1c1c14;border-radius:1rem;height:58%;transition:transform .5s cubic-bezier(.16,1,.3,1),filter .5s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden}.project-strip__visual:before{content:"";mix-blend-mode:soft-light;background:linear-gradient(135deg,#ffffff38,#0000 36%,#0000002e);position:absolute;inset:0}.project-strip__visual:after{content:"";background:linear-gradient(#0000,#0b0f14bd);height:46%;position:absolute;inset:auto 0 0}.project-strip__visual--oaya{background:radial-gradient(circle at 25% 20%,#ffffffe6 0,#ffffff4d 18%,#0000 42%),linear-gradient(135deg,#1a3bcc 0%,#7ea1ff 46%,#f6d5e6 100%)}.project-strip__visual--sporthub{background:radial-gradient(circle at 75% 18%,#ffffffd9 0,#ffffff47 16%,#0000 40%),linear-gradient(135deg,#0f172a 0%,#1d4ed8 48%,#93c5fd 100%)}.project-strip__visual--laundry{background:radial-gradient(circle at 20% 18%,#ffffffe6 0,#ffffff47 16%,#0000 38%),linear-gradient(135deg,#0f766e 0%,#5eead4 44%,#f0f9ff 100%)}.project-strip__visual--tictactoe{background:radial-gradient(circle at 60% 20%,#ffffffd9 0,#fff3 18%,#0000 40%),linear-gradient(135deg,#1a1a2e 0%,#16213e 45%,#0f3460 100%)}.project-strip__content{z-index:1;flex-direction:column;justify-content:space-between;gap:1.5rem;min-height:calc(42% - 1.5rem);padding-top:1.5rem;display:flex;position:relative}.project-strip__title{letter-spacing:-.05em;max-width:11ch;font-size:clamp(2.2rem,4vw,4.5rem);line-height:.92}.project-strip__meta{justify-content:space-between;align-items:end;gap:1.5rem;margin-top:auto;display:flex}@media (width>=768px){.project-strip{padding:0 6rem}}.calendar-mobile-title{display:none}.nav-link{position:relative}.nav-link:after{content:"";background-color:#ff795e;width:0;height:1px;transition:width .3s cubic-bezier(.16,1,.3,1);position:absolute;bottom:-2px;left:0}.nav-link:hover:after{width:100%}@media (prefers-reduced-motion:reduce){.reveal-up,.clip-reveal,.project-card,.nav-link:after{opacity:1!important;clip-path:none!important;transition:none!important;transform:none!important}}::-webkit-scrollbar{width:0;height:0}#hero h1{font-size:clamp(2.5rem,7vw,5rem)!important;line-height:clamp(2.75rem,7.5vw,5.5rem)!important}::-webkit-scrollbar-track{background:#f3f3f3}::-webkit-scrollbar-thumb{background:#cacacb}.magnetic-wrap{transition:transform .3s cubic-bezier(.16,1,.3,1);display:inline-block}html,body,nav,footer,main,section,.project-card,.custom-cursor__ring,.custom-cursor__dot,.hand-loader__palm,.hand-loader__thumb,.hand-loader__finger,.hand-loader__finger:before{transition-property:background-color,color,border-color,fill,stroke,box-shadow;transition-duration:.3s;transition-timing-function:cubic-bezier(.16,1,.3,1)}html.dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html.dark body{color:#e8edf5;background-color:#0b0f14}html.dark .bg-background{background-color:#0b0f14!important}html.dark .bg-surface,html.dark .bg-surface-container-low{background-color:#11161d!important}html.dark .bg-surface-container{background-color:#151b23!important}html.dark .text-on-background,html.dark .text-on-primary-fixed,html.dark .text-primary{color:#e8edf5!important}html.dark .text-on-surface-variant{color:#9aa6b5!important}html.dark .text-on-tertiary-container,html.dark .hover\:text-on-tertiary-container:hover{color:#82a2ff!important}html.dark .border-on-background{border-color:#e8edf529!important}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}html.dark .custom-cursor__dot{background:#f5f7fb}html.dark .custom-cursor__ring{border-color:#82a2ff73}html.dark .custom-cursor__ring.is-hovered{background:#82a2fff2;border-color:#82a2fff2}.btn{color:#1a3bcc;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;z-index:1;background:0 0;border:0;outline:none;justify-content:center;align-items:center;padding:.5rem .75rem;font-family:JetBrains Mono,monospace;font-size:12px;font-weight:600;display:inline-flex}.cube{transition:all .5s;position:relative}.cube .bg-top{background:#1a3bcc;height:8px;margin:0;transition:all .4s;position:absolute;bottom:100%;left:4px;right:-4px;transform:skew(-45deg)}.cube .bg-top .bg-inner{bottom:0}.cube .bg{background:#1a3bcc;transition:all .4s;position:absolute;inset:0}.cube .bg-right{z-index:0;background:#1a3bcc;width:8px;transition:all .4s;position:absolute;top:-4px;bottom:4px;left:100%;transform:skewY(-45deg)}.cube .bg-right .bg-inner{left:0}.cube .bg-inner{background:#f9f9f9;position:absolute;inset:2px}.cube .text{justify-content:center;align-items:center;gap:.2rem;min-width:1.2rem;transition:all .4s;display:inline-flex;position:relative}.cube:hover .bg-inner{background:#1a3bcc;transition:all .4s}.cube:hover .text{color:#f9f9f9;transition:all .4s}.cube:hover .bg-right,.cube:hover .bg,.cube:hover .bg-top{background:#0f162a}.cube:active{z-index:9999;animation:.1s linear bounce}.theme-toggle{padding:.45rem .6rem}.theme-toggle .theme-toggle__icon-dark,.theme-toggle .theme-toggle__icon-light,.mobile-menu-btn .material-symbols-outlined{font-size:18px;display:none}html:not(.dark) .theme-toggle .theme-toggle__icon-dark,html.dark .theme-toggle .theme-toggle__icon-light,.mobile-menu-btn .material-symbols-outlined{display:block}html.dark .cube .bg-top,html.dark .cube .bg,html.dark .cube .bg-right{background:#82a2ff}html.dark .cube .bg-inner{background:#0b0f14}html.dark .cube .text{color:#e8edf5}html.dark .cube:hover .bg-inner{background:#82a2ff}html.dark .cube:hover .text{color:#0b0f14}html.dark .cube:hover .bg-top,html.dark .cube:hover .bg,html.dark .cube:hover .bg-right{background:#dbe6ff}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}.scroll-progress-track{z-index:100000;pointer-events:none;background:0 0;width:100%;height:1px;position:fixed;top:0;left:0}.scroll-progress-bar{transform-origin:0;background:#1a3bcc;width:0%;height:100%}.custom-cursor__ring,.custom-cursor__dot{pointer-events:none;z-index:999999;backface-visibility:hidden;position:fixed;top:0;left:0;transform:translateZ(0);opacity:0!important}.custom-cursor.is-visible .custom-cursor__ring,.custom-cursor.is-visible .custom-cursor__dot{opacity:1!important}#hero-separator{opacity:0;transition:opacity .8s cubic-bezier(.16,1,.3,1)}#hero.is-visible #hero-separator{opacity:.2}.custom-cursor__dot{background-color:var(--color-primary,#0024a3);border-radius:50%;width:6px;height:6px;margin-top:-3px;margin-left:-3px}.custom-cursor__ring{border:1.5px solid var(--color-primary,#0024a3);border-radius:50%;width:32px;height:32px;margin-top:-16px;margin-left:-16px;transition:width .3s cubic-bezier(.25,1,.5,1),height .3s cubic-bezier(.25,1,.5,1),margin .3s cubic-bezier(.25,1,.5,1),background-color .3s,border-color .3s}.custom-cursor__ring.is-hovered{border-color:var(--color-primary-container,#0024a3);background-color:#0024a31a;width:56px;height:56px;margin-top:-28px;margin-left:-28px}.custom-cursor__dot.is-hovered{transform:scale(.5)}.custom-cursor__ring.is-clicked{background-color:#0024a333;width:24px;height:24px;margin-top:-12px;margin-left:-12px}.hand-loader{--skin-color:#e4c560;--tap-speed:.6s;--tap-stagger:.1s;width:80px;height:60px;position:relative}.hand-loader:before{content:"";filter:blur(10px);opacity:.3;background-color:#000;border-radius:40px 10px;width:180%;height:75%;display:block;position:absolute;top:70%;right:20%}.hand-loader__palm{background-color:var(--skin-color);border-radius:10px 40px;width:100%;height:100%;display:block;position:absolute;top:0;left:0}.hand-loader__thumb{background-color:var(--skin-color);transform-origin:calc(100% - 20px) 20px;border-bottom:2px solid #0000001a;border-left:2px solid #0000001a;border-radius:30px 20px 20px 10px;width:120%;height:38px;position:absolute;bottom:-18%;right:1%;transform:rotate(-20deg)}.hand-loader__thumb:after{content:"";background-color:#ffffff4d;border-right:2px solid #0000000d;border-radius:60% 10% 10% 30%;width:20%;height:60%;position:absolute;bottom:-8%;left:5px}.hand-loader__finger{background-color:var(--skin-color);transform-origin:100% 20px;width:80%;height:35px;animation-duration:calc(var(--tap-speed) * 2);animation-timing-function:ease-in-out;animation-iteration-count:infinite;position:absolute;bottom:32%;right:64%;transform:rotate(10deg)}.hand-loader__finger:before{content:"";background-color:var(--skin-color);transform-origin:calc(100% - 20px) 20px;border-radius:20px;width:140%;height:30px;position:absolute;bottom:8%;right:65%;transform:rotate(-60deg)}.hand-loader__finger:first-child{animation-delay:0;filter:brightness(70%);--finger-scale:.4;animation-name:tap-upper}.hand-loader__finger:nth-child(2){animation-delay:var(--tap-stagger);filter:brightness(80%);--finger-scale:.6;animation-name:tap-upper}.hand-loader__finger:nth-child(3){animation-delay:calc(var(--tap-stagger) * 2);filter:brightness(90%);--finger-scale:.8;animation-name:tap-upper}.hand-loader__finger:nth-child(4){animation-delay:calc(var(--tap-stagger) * 3);filter:brightness();--finger-scale:1;animation-name:tap-upper}@keyframes tap-upper{0%,50%,to{transform:rotate(10deg) scale(var(--finger-scale))}40%{transform:rotate(50deg) scale(var(--finger-scale))}}@media (pointer:coarse),(prefers-reduced-motion:reduce){.custom-cursor{display:none!important}}.mobile-menu{z-index:99990;pointer-events:none;opacity:0;transition:opacity .3s cubic-bezier(.16,1,.3,1);position:fixed;inset:0}.mobile-menu.is-open{pointer-events:auto;opacity:1}.mobile-menu__backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0006;position:absolute;inset:0}.mobile-menu__panel{background:var(--surface,#f9f9f9);flex-direction:column;width:80vw;max-width:320px;height:100%;transition:transform .4s cubic-bezier(.16,1,.3,1);display:flex;position:absolute;top:0;right:0;transform:translate(100%)}html.dark .mobile-menu__panel{background:#0b0f14}.mobile-menu.is-open .mobile-menu__panel{transform:translate(0)}.mobile-menu__header{border-bottom:1px solid #1a1c1c1f;justify-content:space-between;align-items:center;padding:1.5rem 1.5rem 1rem;display:flex}html.dark .mobile-menu__header{border-bottom-color:#e8edf51f}.mobile-menu__close{cursor:pointer;color:var(--on-background,#1a1c1c);background:0 0;border:none;justify-content:center;align-items:center;padding:.25rem;display:flex}html.dark .mobile-menu__close{color:#e8edf5}.mobile-menu__nav{flex-direction:column;flex:1;gap:0;padding:1.5rem 1.5rem 0;display:flex}.mobile-menu__link{font-family:var(--font-headline-lg-mobile,"Newsreader", serif);font-size:var(--text-headline-lg-mobile,32px);line-height:var(--text-headline-lg-mobile--line-height,38px);font-weight:var(--text-headline-lg-mobile--font-weight,500);color:var(--color-primary,#00156d);border-bottom:1px solid var(--color-on-background,#1a1c1c);padding:1rem 0;text-decoration:none;transition:opacity .2s;display:block}.mobile-menu__link:hover{opacity:.7}html.dark .mobile-menu__link{color:#e8edf5;border-bottom-color:#e8edf529}.mobile-menu__footer{border-top:1px solid #1a1c1c1f;justify-content:center;padding:1rem 1.5rem 1.5rem;display:flex}html.dark .mobile-menu__footer{border-top-color:#e8edf51f}.toast{color:#f9f9f9;letter-spacing:.04em;z-index:100001;opacity:0;pointer-events:none;background:#1a1c1c;border-radius:9999px;padding:.6rem 1.25rem;font-family:JetBrains Mono,monospace;font-size:13px;transition:opacity .3s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);position:fixed;bottom:2rem;left:50%;transform:translate(-50%)translateY(1rem)}.toast.is-visible{opacity:1;pointer-events:none;transform:translate(-50%)translateY(0)}html.dark .toast{color:#0b0f14;background:#e8edf5}#portal-sticky-view{z-index:40;perspective:1000px;justify-content:center;align-items:center;display:flex;overflow:hidden}#portal-viewport-canvas{overflow:visible!important}#scroll-calendar-box{box-sizing:border-box!important;background:#0b0f14!important;border:1px solid #e8edf514!important;border-radius:12px!important;flex-direction:column!important;flex-shrink:0!important;justify-content:center!important;align-items:flex-start!important;width:1100px!important;height:220px!important;padding:24px 32px!important;display:flex!important;position:relative!important;overflow:visible!important}html:not(.dark) #scroll-calendar-box{background:#f3f3f3!important;border-color:#1a1c1c1a!important}.calendar-render-target{opacity:0;flex-shrink:0!important;width:100%!important;transition:opacity .6s ease-in-out!important}.calendar-render-target.calendar-loaded{opacity:1!important}.graph-wrapper{flex-shrink:0!important;width:100%!important;padding-bottom:0!important;overflow:visible!important}.graph-body{align-items:flex-start!important;display:flex!important}#monthsHeader{color:#444654!important;flex-shrink:0!important;grid-template-columns:repeat(53,14px)!important;gap:4px!important;width:950px!important;margin-bottom:6px!important;margin-left:42px!important;font-family:JetBrains Mono,monospace!important;font-size:11px!important;display:grid!important}.days-sidebar{text-align:left!important;color:#444654!important;flex-shrink:0!important;grid-template-rows:repeat(7,14px)!important;gap:4px!important;width:38px!important;padding-right:8px!important;font-family:JetBrains Mono,monospace!important;font-size:11px!important;display:grid!important}.days-sidebar span{height:14px!important;line-height:14px!important}#contributionGrid{image-rendering:crisp-edges;image-rendering:pixelated;shape-rendering:crispedges;transform:translateZ(0);flex-shrink:0!important;width:950px!important;min-width:100%!important;height:122px!important;margin-left:22px!important;overflow:visible!important}#contributionGrid rect{rx:2px;ry:2px;width:14px!important;height:14px!important}.square{cursor:pointer!important;fill:var(--lvl0)!important;background-color:var(--lvl0)!important;stroke:#80808026!important;stroke-width:.5px!important;transition:filter .15s!important}.square:hover{filter:brightness(1.3)!important}.square.level-0{fill:var(--lvl0)!important;background-color:var(--lvl0)!important}.square.level-1{fill:var(--lvl1)!important;background-color:var(--lvl1)!important}.square.level-2{fill:var(--lvl2)!important;background-color:var(--lvl2)!important}.square.level-3{fill:var(--lvl3)!important;background-color:var(--lvl3)!important}.square.level-4{fill:var(--lvl4)!important;background-color:var(--lvl4)!important}.graph-footer{color:#444654!important;justify-content:flex-end!important;align-items:center!important;gap:6px!important;width:950px!important;margin-top:10px!important;margin-left:22px!important;font-family:JetBrains Mono,monospace!important;font-size:11px!important;display:flex!important}.legend-squares{gap:4px!important;display:flex!important}.legend-squares .square{cursor:default!important;border-radius:3px!important;width:14px!important;height:14px!important}.scroll-target-node{outline:2px solid var(--primary,#00156d);outline-offset:1px;stroke:var(--primary,#00156d);stroke-width:2px;filter:drop-shadow(0 0 6px #82a2ff99);animation:2.5s ease-in-out infinite targetPulse}html.dark .scroll-target-node{stroke:#82a2ff;stroke-width:2px;filter:drop-shadow(0 0 6px #82a2ff99);outline:2px solid #82a2ff}@keyframes targetPulse{0%,to{filter:drop-shadow(0 0 3px #82a2ff80)}50%{filter:drop-shadow(0 0 10px #82a2ffcc)}}.fallback-message{color:var(--on-surface-variant,#444654);text-align:center;opacity:.7;padding:12px 0;font-family:JetBrains Mono,monospace;font-size:11px}.fallback-message a{color:var(--primary,#00156d);text-decoration:underline}html.dark .fallback-message a{color:#82a2ff}#scroll-gateway-layer{z-index:10;justify-content:center;align-items:center;transition:opacity .2s linear,visibility .2s linear;display:flex;position:absolute;inset:0}#scroll-workspace-layer{z-index:20;pointer-events:none;position:absolute;inset:0}#calendar-portal-tooltip{color:#e8edf5;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;z-index:99999;background:#0b0f14;border:1px solid #e8edf526;border-radius:6px;padding:6px 10px;font-family:JetBrains Mono,monospace;font-size:11px;transition:opacity .15s,transform 50ms linear;position:fixed;top:0;left:0;transform:translate(-50%,-130%);box-shadow:0 4px 12px #00000080}html.dark #calendar-portal-tooltip{color:#0b0f14;background:#e8edf5;border:1px solid #0b0f1426}@media (pointer:coarse),(width<=767px){#portal-scroll-track{height:auto!important}#portal-sticky-view{min-height:100vh;height:auto!important;position:relative!important;overflow:visible!important}#portal-viewport-canvas{height:auto!important;overflow:visible!important}#scroll-gateway-layer{opacity:1!important;pointer-events:auto!important;position:relative!important}#scroll-calendar-box{-webkit-overflow-scrolling:touch;touch-action:pan-x;width:100%!important;height:auto!important;padding:16px!important;display:none!important;overflow:auto hidden!important;transform:none!important}#scroll-calendar-box>div{width:auto!important;overflow:visible!important}.calendar-render-target{width:100%!important;min-width:0!important}#contributionGrid{width:100%!important;height:auto!important;margin-left:0!important}#contributionGrid rect{width:5px!important;height:5px!important}#monthsHeader{grid-template-columns:repeat(53,minmax(0,1fr))!important;gap:1px!important;width:100%!important;margin-bottom:4px!important;margin-left:0!important;font-size:9px!important}.graph-footer{width:100%!important;margin-left:0!important;font-size:9px!important}.graph-footer .legend-squares .square{width:10px!important;height:10px!important}.days-sidebar{display:none!important}.calendar-mobile-title{display:block!important}#scroll-workspace-layer{opacity:1!important;pointer-events:auto!important;position:relative!important;transform:none!important}#portal-sticky-view>div{height:auto!important}.project-strip{padding:0 1.5rem}.project-strip__card{flex:0 0 85vw;min-height:80vh}.project-strip__content{gap:.75rem;padding-top:1rem}.project-strip__meta{margin-top:auto}#magnetic-cta{-webkit-overflow-scrolling:touch;white-space:nowrap;overflow-x:auto;font-size:clamp(1.3rem,6vw,2.5rem)!important}footer{padding-block:var(--spacing-xl)!important}#contact .flex.justify-center.gap-lg{flex-wrap:wrap;justify-content:center;gap:var(--spacing-md)!important}}@media (width>=768px){nav>a>span:last-child{display:inline!important}#hero h1{font-size:clamp(2.5rem,7vw,5rem)!important;line-height:clamp(2.75rem,7.5vw,5.5rem)!important}#hero p.font-body-lg{font-size:18px!important;line-height:28px!important}#about .font-label-mono>.flex:first-child{display:flex!important}#about .font-label-mono>.flex:not(:first-child){flex-direction:row!important;gap:0!important}#about .font-label-mono>.flex>div{width:50%!important}#about .font-label-mono>.flex>div:last-child{font-size:inherit!important;letter-spacing:inherit!important;text-transform:inherit!important;opacity:1!important;line-height:inherit!important}#contact .flex{flex-wrap:nowrap!important;justify-content:center!important;gap:3rem!important}#contact #magnetic-cta{word-break:normal!important;white-space:nowrap!important;text-align:inherit!important;font-size:clamp(2rem,5vw,5rem)!important;line-height:1.1!important;display:inline-block!important}.project-strip{gap:1.5rem!important;padding:0 6rem!important}.project-strip__card{flex:0 0 60vw!important;min-height:75vh!important}footer{text-align:left!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-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@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-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}
