/*! tailwindcss v4.2.4 | 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-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-outline-style:solid;--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;--spacing:.25rem;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--ease-out:cubic-bezier(0, 0, .2, 1);--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)}}@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{.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.shrink{flex-shrink:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.border{border-style:var(--tw-border-style);border-width:1px}.uppercase{text-transform:uppercase}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.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))}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}}:root{--cream:#fef7dd;--teal:#8be0dd;--coral:#f58f67;--coral-ink:#c0451c;--yellow:#fee394;--ink:#1a1a1a;--ink-soft:#2d2d2d;--ink-mut:#5a5a52;--shadow-sm:0 2px 8px #1a1a1a0f;--shadow:0 8px 24px #1a1a1a14;--shadow-lg:0 18px 44px #1a1a1a1f;--font-display:"Bricolage Grotesque", "Inter", system-ui, sans-serif;--font-body:"Inter", system-ui, sans-serif;--font-mono:"JetBrains Mono", monospace}img{-webkit-user-drag:none;-khtml-user-drag:none;-moz-user-drag:none;-webkit-user-select:none;user-select:none}body{background-color:var(--cream);color:var(--ink-soft);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:100%;overflow-x:clip}.paper-grid{z-index:-1;pointer-events:none;position:fixed;inset:0}.gradient-text{background:0 0;-webkit-background-clip:unset;-webkit-text-fill-color:var(--coral-ink);background-clip:unset;color:var(--coral-ink)}.card{background:#fff;border:1px solid #1a1a1a14;border-radius:20px;transition:transform .25s,box-shadow .25s,border-color .25s}.card:hover{box-shadow:var(--shadow-lg);border-color:#1a1a1a24;transform:translateY(-4px)}.btn-primary{background:var(--coral);color:#fff;cursor:pointer;letter-spacing:.01em;box-shadow:var(--shadow-sm);border:none;border-radius:12px;align-items:center;gap:8px;padding:14px 30px;font-size:15px;font-weight:700;text-decoration:none;transition:background .15s,transform .15s;display:inline-flex}.btn-primary:hover{box-shadow:var(--shadow);background:#ef7a4e;transform:translateY(-2px)}.btn-primary:active{box-shadow:var(--shadow-sm);transform:translateY(0)scale(.98)}.btn-outline{color:var(--ink);border:1.5px solid var(--teal);cursor:pointer;background:0 0;border-radius:12px;align-items:center;gap:8px;padding:14px 30px;font-size:15px;font-weight:500;text-decoration:none;transition:border-color .15s,background .15s;display:inline-flex}.btn-outline:hover{border-color:var(--ink);background:#1a1a1a0a;transform:translateY(-2px)}.btn-outline:active{transform:translateY(0)scale(.98)}.tag{color:#1a1a1a;background:#8be0dd2e;border:1px solid #8be0dd80;border-radius:6px;padding:4px 10px;font-family:JetBrains Mono,monospace;font-size:12px;transition:all .2s}.tag:hover{border-color:var(--teal);background:#8be0dd52}.section-label{color:var(--ink-mut);letter-spacing:3px;text-transform:uppercase;align-items:center;gap:12px;margin-bottom:16px;font-family:JetBrains Mono,monospace;font-size:11px;display:inline-flex}.section-label:before,.section-label:after{content:"";background:var(--teal);border-radius:2px;width:28px;height:2px;display:block}.heading-underline{display:inline-block;position:relative}.heading-underline:after{content:"";background:var(--coral);border-radius:4px;width:56px;height:4px;position:absolute;bottom:-8px;left:0}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@keyframes pulse-glow{0%,to{box-shadow:0 0 4px var(--coral);opacity:.7}50%{box-shadow:0 0 10px var(--coral);opacity:1}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.cursor-blink{animation:1s step-end infinite blink}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:-480px 0}to{background-position:480px 0}}.shimmer{background:linear-gradient(90deg,#0000 0%,#8be0dd40 50%,#0000 100%) 0 0/480px 100%;animation:1.4s ease-in-out infinite shimmer}@keyframes skeleton-load{0%{background-position:100%}to{background-position:0}}.skeleton{background:linear-gradient(90deg,#1a1a1a0f 25%,#1a1a1a21 37%,#1a1a1a0f 63%) 0 0/400% 100%;animation:1.4s infinite skeleton-load}.preview-glow>div{transition:box-shadow .3s,border-color .3s}.preview-glow:hover>div{box-shadow:var(--shadow-lg);border-color:#1a1a1a24}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}.marquee-track{white-space:nowrap;animation:26s linear infinite marquee;display:inline-flex}.marquee-mask{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000);mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000)}@keyframes drift1{0%,to{transform:translate(0)scale(1)}50%{transform:translate(40px,-30px)scale(1.08)}}@keyframes drift2{0%,to{transform:translate(0)scale(1)}50%{transform:translate(-50px,40px)scale(1.12)}}.scroll-progress{transform-origin:0%;background:linear-gradient(90deg, var(--coral), var(--yellow), var(--teal));z-index:200;height:3px;position:fixed;top:0;left:0;right:0}.btn-outline{transition:border-color .15s,background .15s,transform .15s}.display-head{font-family:var(--font-display);text-transform:uppercase;letter-spacing:-.03em;font-optical-sizing:auto;font-weight:800;line-height:.95}@keyframes spark{0%,to{transform:scale(1.05)}50%{transform:scale(.9)}}@keyframes oscillate{0%{transform:rotate(2deg)}to{transform:rotate(-2deg)}}.spark{animation:4s ease-in-out infinite spark}.oscillate{animation:3s ease-in-out infinite alternate oscillate}@keyframes floaty{0%{transform:translateY(0)rotate(-4deg)}50%{transform:translateY(-18px)rotate(4deg)}to{transform:translateY(0)rotate(-4deg)}}.floaty{will-change:transform;animation:4.5s ease-in-out infinite floaty}.sticker{cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;z-index:1;position:absolute}.sticker:active{cursor:grabbing}@media (hover:hover) and (pointer:fine){.cursor-on,.cursor-on *{cursor:none!important}}.cursor-ring,.cursor-dot{pointer-events:none;z-index:2147483647;will-change:transform;border-radius:50%;position:fixed;top:0;left:0;transform:translate(-50%,-50%)}.cursor-ring{border:2px solid var(--teal);width:38px;height:38px;transition:width .18s,height .18s,background .18s,border-color .18s}.cursor-dot{background:var(--coral);width:7px;height:7px}.cursor-ring.is-hover{border-color:var(--coral);background:#f58f672e;width:60px;height:60px}.marquee-track.thin{animation-duration:18s}.contact-dark{color:#fff;background:radial-gradient(60% 50% at 20% 0,#f58f672e,#0000 70%),radial-gradient(50% 50% at 90% 100%,#8be0dd24,#0000 70%),#141414;border-radius:40px 40px 0 0;margin-top:40px;overflow:hidden}.contact-dark .btn-outline{color:#fff;border-color:#ffffff40}.contact-dark .btn-outline:hover{background:#ffffff14;border-color:#fff}.contact-dark input::placeholder,.contact-dark textarea::placeholder{color:#fff6}.section-tint{background:linear-gradient(#ffffff8c,#fff3);border-top:1px solid #1a1a1a0f;border-bottom:1px solid #1a1a1a0f;position:relative}.band-teal{background:#8be0dd}.band-coral{background:#f58f67}.band-color{position:relative;overflow:hidden}.cursor-ring.is-invert{border-color:#1a1a1a}.cursor-dot.is-invert{background:#1a1a1a}@keyframes grid-drift{0%{background-position:0 0}to{background-position:0 400px}}.grid-bg{z-index:0;pointer-events:none;background-image:linear-gradient(#1a1a1a0f 1px,#0000 1px),linear-gradient(90deg,#1a1a1a0f 1px,#0000 1px);background-size:48px 48px;animation:28s linear infinite grid-drift;position:absolute;inset:0;-webkit-mask-image:radial-gradient(80% 70% at 50% 40%,#000 30%,#0000 80%);mask-image:radial-gradient(80% 70% at 50% 40%,#000 30%,#0000 80%)}.diag-banner{z-index:0;pointer-events:none;background:#f58f67;width:120%;padding:10px 0;position:absolute;top:6%;left:-10%;transform:rotate(-5deg);box-shadow:0 8px 24px #f58f674d}@keyframes mascot-bob{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-14px)rotate(3deg)}}.mascot{animation:5s ease-in-out infinite mascot-bob}.hero-shell{align-items:center;width:100%;min-height:100vh;padding:120px 24px 80px;display:flex;position:relative;overflow:hidden}.hero-inner{grid-template-columns:1.15fr .85fr;align-items:center;gap:64px;width:100%;max-width:1180px;margin:0 auto;display:grid}.hero-watermark-wrap{z-index:0;pointer-events:none;-webkit-user-select:none;user-select:none;flex-direction:column;align-items:flex-start;display:flex;position:absolute;bottom:3%;left:2%}.wm-line{line-height:.82;display:flex}.wm-mask{padding-top:.06em;display:inline-block;overflow:hidden}.wm-letter{color:#0000;-webkit-text-stroke:1.8px #1a1a1a14;font-size:clamp(72px,15vw,240px);line-height:.82;display:inline-block}.hero-pill{font-family:var(--font-mono);letter-spacing:.04em;color:var(--ink-soft);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffffb3;border:1px solid #1a1a1a1a;border-radius:100px;align-items:center;gap:9px;margin-bottom:28px;padding:7px 15px;font-size:12px;display:inline-flex}.hero-dot{background:var(--coral);border-radius:50%;width:7px;height:7px;animation:2s ease-in-out infinite pulse-glow;box-shadow:0 0 #f58f6799}.hero-name{color:var(--ink);margin-bottom:22px;font-size:clamp(60px,10vw,132px);line-height:.9}.name-line{vertical-align:top;padding-bottom:.1em;display:inline-block;overflow:hidden}.hero-role{font-family:var(--font-mono);color:var(--ink-soft);align-items:center;gap:4px;height:34px;margin-bottom:26px;font-size:clamp(16px,2.2vw,22px);font-weight:500;display:flex}.hero-bio{color:var(--ink-mut);max-width:500px;margin-bottom:36px;font-size:clamp(16px,1.4vw,18px);line-height:1.75}.hero-social{align-items:center;gap:8px;display:flex}.hero-social-link{color:var(--ink);background:#fff9;border:1px solid #1a1a1a1a;border-radius:12px;justify-content:center;align-items:center;width:42px;height:42px;transition:border-color .2s,color .2s,background .2s;display:flex}.hero-social-link:hover{color:var(--coral-ink);border-color:var(--coral);background:#fff}.hero-scroll{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-mut);z-index:2;flex-direction:column;align-items:center;gap:6px;font-size:11px;text-decoration:none;display:flex;position:absolute;bottom:28px;left:50%;transform:translate(-50%)}.hero-scroll:hover{color:var(--coral-ink)}@media (width<=880px){.hero-shell{min-height:auto;padding:104px 20px 72px}.hero-inner{text-align:left;grid-template-columns:1fr;gap:40px}.hero-inner>div:last-child{order:-1}.hero-bio{max-width:100%}.hero-scroll{display:none}}.proj-metarow{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.proj-year{font-family:var(--font-mono);color:var(--ink-mut);font-size:11px}.proj-featured-tag{font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--coral-ink);background:#f58f6724;border:1px solid #f58f6766;border-radius:6px;padding:3px 9px;font-size:11px;font-weight:700}.proj-badge{font-family:var(--font-mono);border-radius:5px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;display:inline-flex}.proj-badge-ai{background:var(--yellow);border:1px solid var(--ink);color:var(--ink);font-weight:700}.proj-badge-public{color:#1a7a76;background:#8be0dd38;border:1px solid #8be0dd99}.proj-badge-private{color:var(--ink-mut);background:#1a1a1a0f;border:1px solid #1a1a1a26}.proj-name-lg{color:var(--ink);margin-bottom:8px;font-size:clamp(28px,3.6vw,44px);line-height:1}.proj-tagline{color:var(--coral-ink);margin-bottom:14px;font-size:14px;font-weight:600}.proj-desc-lg{color:var(--ink-mut);max-width:460px;margin-bottom:20px;font-size:15.5px;line-height:1.8}.proj-note{color:var(--ink-mut);font-size:12px;font-family:var(--font-mono);gap:6px;max-width:380px;margin-top:16px;line-height:1.6;display:flex}.event-hover{z-index:2;opacity:0;pointer-events:none;transition:opacity .4s,transform .5s cubic-bezier(.22,1,.36,1);position:absolute;inset:0;transform:scale(1.04)}.event-hover img{object-fit:cover;width:100%;height:100%;display:block}.event-hover-name{font-family:var(--font-display);color:#fff;background:linear-gradient(#0000,#000000b3);padding:28px 20px 18px;font-size:20px;font-weight:700;position:absolute;bottom:0;left:0;right:0}.event-card:hover .event-hover{opacity:1;transform:scale(1)}.skill-chip{font-family:var(--font-mono);color:var(--ink);cursor:default;background:#fff;border:1px solid #1a1a1a1a;border-radius:8px;align-items:center;gap:7px;padding:6px 12px;font-size:12px;transition:border-color .2s,box-shadow .2s;display:inline-flex}.skill-chip:hover{border-color:var(--coral);box-shadow:var(--shadow-sm)}.skill-logo{object-fit:contain;flex-shrink:0;display:block}.feat-frame{box-shadow:var(--shadow-lg);background:#fff;border:1px solid #1a1a1a1a;border-radius:16px;overflow:hidden}.feat-bar{background:#8be0dd29;border-bottom:1px solid #1a1a1a14;align-items:center;gap:8px;padding:10px 13px;display:flex}.feat-dot{border-radius:50%;width:11px;height:11px;display:inline-block}.feat-url{font-family:var(--font-mono);color:var(--ink-mut);text-overflow:ellipsis;white-space:nowrap;background:#fff;border:1px solid #1a1a1a14;border-radius:6px;flex:1;margin-left:4px;padding:4px 10px;font-size:11px;overflow:hidden}.feat-body{aspect-ratio:16/10;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.feat-watermark{color:#1a1a1a12;letter-spacing:-.02em;white-space:nowrap;pointer-events:none;justify-content:center;align-items:center;font-size:clamp(40px,7vw,84px);display:flex;position:absolute;inset:0}.feat-emoji{filter:drop-shadow(0 8px 16px #1a1a1a2e);z-index:1;font-size:clamp(60px,9vw,104px);position:relative}.proj-grid{grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:24px;display:grid}.proj-card{flex-direction:column;padding:0;display:flex;overflow:hidden}.proj-card-shot{aspect-ratio:16/10;background:#fff;border-bottom:1px solid #1a1a1a14;position:relative;overflow:hidden}.proj-shot-img{object-fit:cover;object-position:top center;width:100%;height:100%;transition:transform .5s cubic-bezier(.22,1,.36,1);display:block}.proj-card:hover .proj-shot-img{transform:scale(1.05)}.mock-bar{background:#1f2229;border-bottom:1px solid #ffffff0f;align-items:center;gap:10px;padding:9px 12px;display:flex}.term-body{font-family:var(--font-mono);color:#c8cfd8;flex:1;padding:14px 16px;font-size:12px;line-height:1.95}.term-line{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.gantt{flex-direction:column;flex:1;justify-content:center;gap:8px;padding:20px;display:flex}.gantt-row{gap:3px;display:flex}.gantt-block{height:38px;font-family:var(--font-mono);color:#16181d;border-radius:5px;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex}.gantt-axis{font-family:var(--font-mono);color:#ffffff59;justify-content:space-between;font-size:10px;display:flex}.proj-card-badges{gap:6px;display:flex;position:absolute;top:10px;right:10px}.proj-card-featured{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffffe6;position:absolute;top:10px;left:10px}.proj-card-body{flex-direction:column;flex:1;padding:18px 20px 20px;display:flex}.proj-card-titlerow{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:4px;display:flex}.proj-name-sm{color:var(--ink);font-size:22px;line-height:1.05}.proj-desc-sm{color:var(--ink-mut);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-bottom:16px;font-size:14px;line-height:1.65;display:-webkit-box;overflow:hidden}.proj-card-links{gap:8px;margin-top:auto;display:flex}.proj-link{font-family:var(--font-mono);color:var(--ink);border:1px solid #1a1a1a24;border-radius:9px;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:500;text-decoration:none;transition:border-color .2s,background .2s,color .2s,transform .15s;display:inline-flex}.proj-link:hover{border-color:var(--ink);transform:translateY(-2px)}.proj-link-primary{background:var(--coral);color:#fff;border-color:var(--coral)}.proj-link-primary:hover{background:#ef7a4e;border-color:#ef7a4e}.mstack{max-width:680px;margin:0 auto;position:relative}.mstack-card{will-change:transform;margin-bottom:60vh;position:sticky;top:90px}.mstack-card:last-child{margin-bottom:0}.mstack-card .proj-card{box-shadow:var(--shadow-lg)}@media (width<=768px){.wm-letter{-webkit-text-stroke-width:1.4px;font-size:21vw}.hero-watermark-wrap{bottom:6%;left:1%}#hero{padding:88px 16px 60px!important}#about,#projects,#skills,#community{padding:64px 16px!important}#contact{padding:64px 16px 100px!important}}@media (width<=480px){#about,#projects,#skills,#community{padding:48px 16px!important}#contact{padding:48px 16px 80px!important}}.awaken{z-index:10000;background:var(--cream);justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow:hidden}.awaken-dot{background:var(--ink);will-change:transform;border-radius:50%;width:12px;height:12px}.awaken-svg{width:min(560px,80vw);height:auto;overflow:visible}.awaken-stroke{font-family:var(--font-display);fill:var(--ink);stroke:var(--ink);stroke-width:1.2px;stroke-dasharray:1400;letter-spacing:-.02em;font-size:64px;font-weight:800}.awaken-canvas{pointer-events:none;position:absolute;inset:0}.awaken-text-reduced{color:var(--ink);font-size:clamp(32px,7vw,64px)}@media (hover:hover) and (pointer:fine){.cursor-on,.cursor-on *{cursor:none!important}}.comet-canvas{z-index:2147483646;pointer-events:none;position:fixed;inset:0}.comet-dot{background:var(--ink);pointer-events:none;z-index:2147483647;will-change:transform;border-radius:50%;justify-content:center;align-items:center;width:12px;height:12px;display:flex;position:fixed;top:0;left:0;transform:translate(-50%,-50%)}.comet-label{font-family:var(--font-mono);color:#fff;white-space:nowrap;letter-spacing:.04em;font-size:11px;font-weight:700}.comet-glyph{font-size:22px;line-height:1}.slot-card{background:var(--yellow);text-align:center;min-width:92px;box-shadow:var(--shadow-sm);border:1px solid #1a1a1a14;border-radius:12px;padding:16px 20px}.slot-reel{height:34px;color:var(--ink);font-size:28px;font-weight:800;display:inline-flex;overflow:hidden}.slot-strip{flex-direction:column;align-items:center;display:flex}.slot-digit{height:34px;line-height:34px}.proj-shot-img.ken-burns{animation:18s ease-in-out infinite alternate kenburns}@keyframes kenburns{0%{transform:scale(1.05)translate(0)}to{transform:scale(1.14)translate(-2%,-3%)}}.proj-card:hover .proj-shot-img.ken-burns{animation-play-state:paused}.proj-featured-tag.glint{position:relative;overflow:hidden}.proj-featured-tag.glint:after{content:"";background:linear-gradient(110deg,#0000 30%,#ffffffd9 50%,#0000 70%);animation:6s ease-in-out infinite glint;position:absolute;inset:0;transform:translate(-120%)}@keyframes glint{0%,80%,to{transform:translate(-120%)}88%{transform:translate(120%)}}.specimen-board{background:repeating-linear-gradient(0deg,#1a1a1a04 0 1px,#0000 1px 26px),#fff6;position:relative}.skill-chip{transform-origin:top;position:relative}.skill-chip .pin{background:var(--coral);border-radius:50%;width:7px;height:7px;position:absolute;top:-5px;left:50%;transform:translate(-50%);box-shadow:0 1px 2px #0000004d}.skill-chip.crooked{transform:rotate(-4deg)}.skill-chip.incubating{animation:2.4s ease-in-out infinite incubate}@keyframes incubate{0%,to{box-shadow:0 0 #fee39499}50%{box-shadow:0 0 0 6px #fee39400}}.darkroom-lamp{z-index:0;pointer-events:none;mix-blend-mode:screen;position:absolute;inset:0}.neon-flicker.lit{animation:1.4s ease-out forwards neon}@keyframes neon{0%{opacity:.2}8%{opacity:1}12%{opacity:.3}20%{opacity:1}26%{opacity:.4}30%,to{opacity:1}}.progress-rail{z-index:120;background:#1a1a1a1a;border-radius:2px;width:2px;position:fixed;top:12vh;bottom:12vh;right:14px}.progress-dot{background:var(--ink);border-radius:50%;width:10px;height:10px;position:absolute;top:0;left:50%;transform:translate(-50%,-50%)}.progress-name{white-space:nowrap;font-family:var(--font-mono);color:var(--ink-mut);letter-spacing:.1em;text-transform:uppercase;font-size:11px;position:absolute;right:16px}@media (width<=1024px){.progress-rail{display:none}}.hero-orbs{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.hero-orb-wrap{will-change:transform;display:block;position:absolute}.hero-orb{opacity:.5;will-change:transform;border-radius:50%;display:block;position:absolute;inset:0}@keyframes orbA{0%,to{transform:translate(0)scale(1)}50%{transform:translate(26px,-22px)scale(1.08)}}@keyframes orbB{0%,to{transform:translate(0)scale(1)}50%{transform:translate(-30px,24px)scale(1.1)}}.kin-letter{will-change:transform}.kin-letter>span{transition:color .2s}.kin-letter:hover>span{color:var(--coral-ink)}.nav-active-dot{background:var(--yellow);border-radius:3px;width:16px;height:4px;position:absolute;bottom:1px;left:50%;transform:translate(-50%)}.stage-ink{background:var(--ink);color:var(--cream);position:relative}.stage-ink-inner{max-width:1240px;margin:0 auto;padding:120px 24px}.marker-hl{white-space:nowrap;display:inline-block;position:relative}.marker-hl>.marker-ink{background:var(--yellow);transform-origin:0;z-index:0;border-radius:3px;width:104%;height:.42em;position:absolute;bottom:.08em;left:-2%}.marker-hl>.marker-txt{z-index:1;position:relative}.proj-bento{grid-template-columns:repeat(4,1fr);grid-auto-rows:210px;grid-auto-flow:dense;gap:22px;display:grid}.proj-bento>.bento-1{grid-area:span 2/span 1}.proj-bento>.bento-featured{grid-area:span 3/span 2}.proj-bento>.bento-tall{grid-area:span 3/span 1}.card-on-ink{background:var(--cream);border:1px solid #8be0dd40;border-radius:20px;transition:box-shadow .3s,border-color .3s;box-shadow:0 0 0 1px #8be0dd2e,0 18px 44px #00000073}.card-on-ink:hover{border-color:#8be0ddd9;box-shadow:0 0 0 1px #8be0dde6,0 0 28px #8be0dd59,0 22px 54px #0000008c}.proj-bento .proj-card{height:100%}.proj-bento .bento-tall .proj-card-shot{aspect-ratio:auto;flex:1}.proj-bento .bento-tall .proj-card-body{flex:none}.proj-bento .bento-featured .proj-card-shot{aspect-ratio:16/8}.stage-ink .section-label{color:#fef7ddb3}.stage-ink .section-label:before,.stage-ink .section-label:after{background:var(--teal)}@media (width<=1023px){.stage-ink-inner{padding:72px 16px}.proj-bento{display:block}}.stage-teal{background:var(--teal);color:var(--ink);position:relative}.stage-teal-inner{max-width:1100px;margin:0 auto;padding:100px 24px}.stage-teal .section-label{color:var(--ink-soft)}.stage-teal .section-label:before,.stage-teal .section-label:after{background:var(--ink)}.card-sticker{background:var(--cream);border:2px solid var(--ink);border-radius:16px;transition:transform .2s,box-shadow .2s;position:relative;box-shadow:6px 6px #1a1a1a2e}.card-sticker:hover{box-shadow:9px 9px #1a1a1a38}.sticker-pin{background:var(--ink);z-index:4;border-radius:50%;width:9px;height:9px;position:absolute;top:9px;left:50%;transform:translate(-50%);box-shadow:0 1px 3px #0006}@media (width<=1023px){.stage-teal-inner{padding:72px 16px}}.stage-gap{background:0 0;height:72px}@media (width<=768px){.stage-gap{height:40px}}.proof-strip{background:var(--cream);border-top:1px solid #1a1a1a0f;border-bottom:1px solid #1a1a1a0f}.proof-inner{flex-wrap:wrap;justify-content:center;gap:20px;max-width:1000px;margin:0 auto;padding:40px 24px;display:flex}.proof-card{background:var(--yellow);border:2px solid var(--ink);text-align:center;border-radius:16px;flex:1;min-width:200px;max-width:300px;padding:22px 20px;box-shadow:5px 5px #1a1a1a29}.proof-num{color:var(--ink);justify-content:center;align-items:center;font-size:40px;font-weight:800;display:flex}.proof-num .slot-reel{height:46px;font-size:40px}.proof-num .slot-digit{height:46px;line-height:46px}.proof-label{color:var(--ink-soft);font-size:13px;font-family:var(--font-mono);margin-top:6px}.marquee-diagonal{margin:32px 0;transform:rotate(-3deg);box-shadow:0 14px 40px #1a1a1a1f}.dossier{background:var(--cream);border:2px solid var(--ink);border-radius:4px 16px 16px;margin-top:26px;padding:48px 36px 40px;position:relative;box-shadow:10px 12px #1a1a1a2e}.dossier-tab{background:var(--ink);color:var(--cream);font-family:var(--font-mono);letter-spacing:1px;border-radius:8px 8px 0 0;padding:7px 16px;font-size:11px;position:absolute;top:-22px;left:24px}.dossier-grid{align-items:center;gap:40px;display:grid}.dossier-photo-wrap{justify-content:center;display:flex;position:relative}.dossier-photo{object-fit:contain;filter:drop-shadow(0 10px 20px #1a1a1a33);width:100%;height:auto;display:block;transform:rotate(-3deg)}.paperclip{z-index:3;border:3px solid var(--ink-soft);border-radius:12px;width:22px;height:54px;margin-left:-52px;position:absolute;top:-14px;left:50%;transform:rotate(12deg);box-shadow:inset 0 0 0 3px #0000}.paperclip:after{content:"";border:3px solid var(--ink-soft);border-bottom:none;border-radius:8px 8px 0 0;position:absolute;inset:6px 4px 14px}.dossier-text{color:var(--ink-soft);margin-bottom:16px;font-size:16px;line-height:1.85}.stamp{font-family:var(--font-mono);color:var(--coral-ink);letter-spacing:.5px;text-transform:uppercase;border:2px solid var(--coral-ink);opacity:.9;background:#c0451c0d;border-radius:6px;align-items:center;gap:7px;padding:7px 13px;font-size:12px;font-weight:700;display:inline-flex}.passport-stamp{font-family:var(--font-mono);color:var(--coral-ink);border:2.5px solid var(--coral-ink);letter-spacing:1px;background:#c0451c0f;border-radius:6px;flex-shrink:0;margin-left:12px;padding:5px 11px;font-size:15px;font-weight:800}.passport-card .event-hover{border-radius:14px}.micro-footer{background:var(--paper-lite);justify-content:center;align-items:center;width:100%;padding:32px 24px;display:flex}.micro-sig{font-family:var(--font-mono);color:var(--ink-mut);text-align:center;font-size:13px}.hero-panel{background:var(--teal);z-index:0;border-radius:0 40px 40px 0;width:68%;position:absolute;top:12%;bottom:12%;left:-6%;box-shadow:0 30px 80px #1a1a1a24}@media (width<=880px){.hero-panel{border-radius:0 28px 28px 0;width:92%;top:4%;bottom:28%;left:-10%}}.hero-spine{transform-origin:0;font-family:var(--font-mono);letter-spacing:.12em;color:#0000;-webkit-text-stroke:1.4px #1a1a1a29;white-space:nowrap;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:0;font-size:clamp(28px,4vw,56px);font-weight:700;position:absolute;top:50%;left:18px;transform:rotate(-90deg)translateY(-50%)}@media (width<=880px){.hero-spine{display:none}}.hero-asym{grid-template-columns:1.35fr .65fr;gap:24px;margin-left:48px}.hero-asym>div:last-child{margin-right:-8%;justify-content:flex-end!important}.hero-asym>div:last-child .floaty,.hero-asym>div:last-child img{max-width:460px}.hero-asym>div:first-child{margin-right:-10%}@media (width<=880px){.hero-asym{grid-template-columns:1fr;margin-left:0}.hero-asym>div:first-child,.hero-asym>div:last-child{margin:0;justify-content:center!important}}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--yellow);outline-offset:2px}.stage-cream{background:0 0}.stage-cream-inner{max-width:1100px;margin:0 auto;padding:100px 24px}@media (width<=1023px){.stage-cream-inner{padding:64px 16px}}.card-sticker{box-shadow:var(--shadow);border-width:1px}.card-sticker:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px)}.dossier{box-shadow:var(--shadow-lg);border-radius:6px 18px 18px}.stage-cream .card-sticker{border-color:#1a1a1a29}@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-outline-style{syntax:"*";inherits:false;initial-value:solid}@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}:root{--paper:#fef7dd;--paper-lite:#fffbec;--teal:#8be0dd;--coral:#f58f67;--coral-ink:#c0451c;--yellow:#fee394;--ink:#1a1a1a;--ink-soft:#2d2d2d;--ink-mut:#5a5a52;--teal-12:#8be0dd1f;--teal-30:#8be0dd4d;--teal-50:#8be0dd80;--coral-18:#f58f672e;--yellow-55:#fee3948c;--ink-06:#1a1a1a0f;--ink-08:#1a1a1a14;--ink-12:#1a1a1a1f;--paper-90:#fef7ddeb;--shadow-sm:0 2px 8px var(--ink-06);--shadow:0 8px 24px var(--ink-08);--shadow-lg:0 18px 44px var(--ink-12);--shadow-hard:4px 4px 0 var(--ink);--font-display:"Bricolage Grotesque", "Inter", system-ui, sans-serif;--font-body:"Inter", system-ui, sans-serif;--font-mono:"JetBrains Mono", monospace;--section-pad:120px 48px;--measure:62ch;--maxw:1240px;--ease-press:cubic-bezier(.83, 0, .17, 1);--ease-out:cubic-bezier(.22, 1, .36, 1);--cream:var(--paper)}@media (width<=768px){:root{--section-pad:64px 16px}}@media (width<=560px){:root{--section-pad:48px 16px}}*{box-sizing:border-box;margin:0;padding:0}img{-webkit-user-drag:none;-webkit-user-select:none;user-select:none}html{scroll-behavior:smooth;width:100%;overflow-x:clip}body{background-color:var(--paper);color:var(--ink-soft);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:100%;font-size:16px;line-height:1.7;overflow-x:clip}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:var(--paper)}::-webkit-scrollbar-thumb{background:var(--teal);border-radius:10px}::selection{background:var(--yellow);color:var(--ink)}a{color:inherit}:focus-visible{outline:3px solid var(--yellow);outline-offset:2px;border-radius:4px}body[data-press-cursor],body[data-press-cursor] a,body[data-press-cursor] button{cursor:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.display{font-family:var(--font-display);letter-spacing:-.03em;color:var(--ink);font-weight:800;line-height:.92}.h2{font-size:clamp(36px,5.5vw,76px)}.body{max-width:var(--measure);font-size:16px;line-height:1.7}.mono{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--ink-mut);font-size:12px}.plate-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.18em;color:var(--ink-mut);align-items:center;gap:12px;font-size:11px;display:inline-flex}.plate-label:before,.plate-label:after{content:"";background:var(--teal);width:28px;height:1px}.plate-label.on-ink{color:var(--teal)}.scene{padding:var(--section-pad);position:relative;overflow:hidden}.scene-inner{max-width:var(--maxw);margin:0 auto}.scene-paper{background:var(--paper)}.scene-teal{background:var(--teal)}.scene-ink{background:var(--ink);color:var(--paper)}.scene-coral{background:var(--coral)}.band{background:var(--paper);height:clamp(40px,8vh,96px)}.btn{font-family:var(--font-body);border:2px solid var(--ink);cursor:pointer;transition:transform .18s var(--ease-out), background .18s, color .18s;border-radius:10px;align-items:center;gap:8px;padding:13px 26px;font-size:15px;font-weight:600;text-decoration:none;display:inline-flex}.btn-coral{background:var(--coral);color:var(--ink)}.btn-coral:hover{transform:translateY(-2px)}.btn-outline{color:var(--ink);background:0 0}.btn-outline:hover{background:var(--ink);color:var(--paper)}.btn-outline.on-ink{color:var(--paper);border-color:var(--teal-50)}.btn-outline.on-ink:hover{background:var(--teal);color:var(--ink)}.marker{white-space:nowrap;display:inline-block;position:relative}.marker-ink{background:var(--yellow);z-index:0;transform-origin:0;border-radius:2px;height:42%;position:absolute;bottom:6%;left:-4px;right:-4px}.marker-txt{z-index:1;position:relative}.riso-text{line-height:inherit;display:inline-block;position:relative}.riso-layer{mix-blend-mode:multiply;pointer-events:none;will-change:transform;position:absolute;inset:0}.riso-layer-teal{color:var(--teal)}.riso-layer-coral{color:var(--coral)}.riso-ink{z-index:2;color:var(--ink);position:relative}.scene-ink .riso-ink{color:var(--paper)}.crop-mark{pointer-events:none;width:14px;height:14px;color:var(--ink-mut);font-family:var(--font-mono);opacity:.55;position:absolute}.tag{font-family:var(--font-mono);border:1px solid var(--teal);background:var(--teal-12);color:var(--ink);border-radius:5px;padding:3px 9px;font-size:11px}.stamp{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;border:2px solid;border-radius:8px;align-items:center;gap:7px;padding:8px 14px;font-size:12px;display:inline-flex;position:relative;overflow:hidden}.stamp-halftone{opacity:.14;pointer-events:none;background-image:radial-gradient(currentColor 1px,#0000 1.4px);background-size:5px 5px;position:absolute;inset:0}.halftone-field{pointer-events:none;width:100%;height:100%;position:absolute}.press-loader{z-index:1000;background:var(--paper);flex-direction:column;justify-content:center;align-items:center;gap:32px;display:flex;position:fixed;inset:0}.pl-stack{width:clamp(140px,32vw,260px);height:clamp(140px,32vw,260px);position:relative}.pl-plate{mix-blend-mode:multiply;border-radius:14px;position:absolute;inset:0}.pl-counter{letter-spacing:.24em;color:var(--ink-mut);font-size:12px}.pl-crop{font-family:var(--font-mono);color:var(--ink-mut);opacity:.5;position:absolute}.pl-crop-tl{top:28px;left:28px}.pl-crop-tr{top:28px;right:28px}.pl-crop-bl{bottom:28px;left:28px}.pl-crop-br{bottom:28px;right:28px}.h2fx{cursor:default;transition:transform .3s var(--ease-out), text-shadow .3s, letter-spacing .3s, color .3s;display:inline-block}.h2fx-extrude:hover{text-shadow:2px 2px 0 var(--teal), 4px 4px 0 var(--teal), 6px 6px 0 var(--coral);transform:translate(-4px,-4px)}.h2fx-pop:hover{animation:h2-pop .5s var(--ease-press)}@keyframes h2-pop{0%{transform:scale(1)}35%{transform:scale(1.12,.84)}60%{transform:scale(.94,1.08)}to{transform:scale(1)}}.h2fx-wobble:hover{animation:.6s ease-in-out h2-wobble}@keyframes h2-wobble{0%,to{transform:rotate(0)skew(0)}20%{transform:rotate(-2.5deg)skew(3deg)}40%{transform:rotate(2deg)skew(-2deg)}60%{transform:rotate(-1.2deg)skew(1.5deg)}80%{transform:rotate(.6deg)}}.h2fx-spread{position:relative}.h2fx-spread:hover{letter-spacing:.04em;color:var(--coral-ink)}.h2fx-spread:after{content:"";background:var(--coral);transform-origin:0;width:100%;height:5px;transition:transform .4s var(--ease-press);border-radius:4px;position:absolute;bottom:-6px;left:0;transform:scaleX(0)}.h2fx-spread:hover:after{transform:scaleX(1)}.h2fx-neon:hover{animation:.9s step-end forwards h2-neon}@keyframes h2-neon{0%,18%,22%,55%,60%{text-shadow:none;color:#fff}20%,57%{text-shadow:0 0 18px var(--coral);color:var(--coral)}to{text-shadow:0 0 22px var(--coral), 0 0 40px #f58f6780;color:var(--coral)}}@media (prefers-reduced-motion:reduce){.h2fx-extrude:hover,.h2fx-pop:hover,.h2fx-wobble:hover,.h2fx-neon:hover{text-shadow:none;animation:none;transform:none}.h2fx-spread:hover:after{transition:none}}.pl-skel{width:100%;max-width:var(--maxw);padding:0 48px}.pl-skel-inner{grid-template-columns:1.15fr .85fr;align-items:center;gap:56px;display:grid}.pl-skel-copy{flex-direction:column;gap:14px;display:flex}.pl-skel-row{gap:14px;margin-top:14px;display:flex}.pl-skel-bar,.pl-skel-photo{background:linear-gradient(100deg, var(--ink-06) 30%, var(--teal-12) 50%, var(--ink-06) 70%);background-size:200% 100%;border-radius:6px;animation:1.3s linear infinite pl-shimmer;display:block}.pl-skel-photo{aspect-ratio:4/5;border-radius:24px;width:100%;max-width:360px;margin:0 auto}@keyframes pl-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (width<=1024px){.pl-skel-inner{grid-template-columns:1fr}.pl-skel-photo{display:none}}@media (prefers-reduced-motion:reduce){.pl-skel-bar,.pl-skel-photo{animation:none}.riso-layer{display:none}}.nav{z-index:100;background:0 0;border-bottom:1px solid #0000;justify-content:space-between;align-items:center;height:68px;padding:0 24px;transition:background .3s,border-color .3s;display:flex;position:fixed;top:0;left:0;right:0}.nav-solid{background:var(--paper-90);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom-color:var(--ink-08)}.nav-logo{font-family:var(--font-mono);color:var(--ink);align-items:center;gap:2px;font-size:19px;font-weight:700;text-decoration:none;display:inline-flex}.nav-logo-q{margin-left:1px}.nav-links{align-items:center;gap:6px;display:flex}.nav-link-wrap{position:relative}.nav-link{cursor:pointer;font-family:var(--font-body);color:var(--ink-soft);background:0 0;border:none;border-radius:8px;padding:8px 14px 12px;font-size:14px;font-weight:500;transition:background .2s,color .2s}.nav-link:hover{background:var(--yellow-55);color:var(--ink)}.nav-link.active{color:var(--ink);font-weight:600}.nav-pill{background:var(--yellow);border-radius:2px;height:3px;position:absolute;bottom:4px;left:14px;right:14px}.nav-hire{padding:8px 20px;font-size:14px}.nav-burger{cursor:pointer;color:var(--ink);background:0 0;border:none;padding:8px;display:flex}.nav-sheet{background:var(--paper);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border-bottom:1px solid var(--ink-08);flex-direction:column;gap:4px;padding:16px 24px 24px;display:flex;position:absolute;top:68px;left:0;right:0}.nav-sheet-link{cursor:pointer;text-align:left;color:var(--ink-soft);border:none;border-bottom:1px solid var(--ink-08);background:0 0;padding:14px 0;font-size:16px;font-weight:500}.nav-sheet-link:hover{color:var(--coral-ink)}.hero{align-items:center;padding:132px 48px 90px;display:flex;position:relative;overflow:hidden}.hero-halftone{opacity:.5;width:38%;height:46%;top:0;left:auto;right:0;-webkit-mask-image:radial-gradient(closest-side at 80% 20%,#000,#0000 75%);mask-image:radial-gradient(closest-side at 80% 20%,#000,#0000 75%)}.hero-inner{z-index:2;max-width:var(--maxw);grid-template-columns:1.15fr .85fr;align-items:center;gap:56px;width:100%;margin:0 auto;display:grid;position:relative}.hero-copy{z-index:2;position:relative}.hero-pill{border:1.5px solid var(--ink);border-radius:999px;align-items:center;gap:9px;margin-bottom:26px;padding:7px 14px;display:inline-flex}.hero-pill-dot{background:var(--coral);border-radius:50%;width:8px;height:8px;animation:1.8s ease-in-out infinite hero-pulse}@keyframes hero-pulse{0%,to{opacity:1}50%{opacity:.3}}.hero-name{cursor:default;margin:0 0 18px;font-size:clamp(64px,11vw,148px)}.hero-name-2{margin-top:-.08em}.hero-role{letter-spacing:.1em;color:var(--ink-soft);margin-bottom:20px;font-size:15px}.hero-caret{color:var(--coral-ink);animation:1s step-end infinite hero-blink}@keyframes hero-blink{50%{opacity:0}}.hero-bio{color:var(--ink-soft);max-width:56ch;margin-bottom:30px}.hero-bio strong{color:var(--ink);font-weight:700}.hero-cta{flex-wrap:wrap;gap:14px;margin-bottom:30px;display:flex}.hero-social{gap:12px;display:flex}.hero-social-link{border:1.5px solid var(--ink);width:42px;height:42px;color:var(--ink);border-radius:10px;justify-content:center;align-items:center;display:inline-flex}.hero-photo-col{justify-content:center;display:flex}.hero-photo{width:100%;max-width:400px;position:relative}.hero-photo-img{z-index:2;aspect-ratio:4/5;object-fit:cover;object-position:center 20%;border:2.5px solid var(--ink);width:100%;box-shadow:var(--shadow-lg);border-radius:24px;display:block;position:relative}.hero-photo-frame{z-index:1;border:3px solid var(--yellow);border-radius:24px;position:absolute;inset:0;transform:rotate(-2.5deg)}.hero-photo-shadow{z-index:0;opacity:.7;border-radius:24px;position:absolute;inset:0;overflow:hidden}.floaty{animation:6s ease-in-out infinite hero-float}@keyframes hero-float{0%,to{translate:0}50%{translate:0 -10px}}.hero-spine{writing-mode:vertical-rl;font-family:var(--font-mono);letter-spacing:.35em;color:var(--ink-mut);opacity:.4;z-index:1;font-size:12px;position:absolute;top:50%;left:18px;transform:translateY(-50%)rotate(180deg)}@media (width<=1280px){.hero-spine{display:none}}@media (width<=1024px){.hero-inner{grid-template-columns:1fr;gap:32px}.hero-photo-col{order:-1}.hero-photo{max-width:300px}}@media (width<=768px){.hero{padding:100px 16px 48px}}@media (width<=560px){.hero-cta{flex-direction:column;align-items:stretch}.hero-cta .btn{justify-content:center}}@media (prefers-reduced-motion:reduce){.floaty,.hero-pill-dot,.hero-caret{animation:none}}.mq-strip{background:var(--paper);border-top:1px solid var(--ink-12);border-bottom:1px solid var(--ink-12);margin:8px 0;padding:22px 0;position:relative}.mq-mask{position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000);mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000)}.mq-track{white-space:nowrap;animation:26s linear infinite mq-scroll;display:inline-flex}@keyframes mq-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.mq-item{align-items:center;gap:26px;padding-right:26px;display:inline-flex}.mq-strip:hover .mq-track{animation-play-state:paused}.mq-token{cursor:pointer;transition:transform .22s var(--ease-press), background .18s, color .18s, border-color .18s, box-shadow .18s;border:1.5px solid #0000;border-radius:8px;padding:4px 10px;position:relative}.mq-token:hover{background:var(--coral);color:var(--paper);border-color:var(--ink);box-shadow:var(--shadow-hard);transform:translateY(-4px)rotate(-3deg)scale(1.12)}.mq-token{font-family:var(--font-mono);letter-spacing:-.3px;color:var(--ink);font-size:clamp(16px,1.8vw,22px);font-weight:600}.mq-sep{color:var(--teal);font-size:13px}.mq-ink-plate{z-index:2;position:relative}.mq-coral{background:var(--coral);padding:40px 0;overflow:hidden}.mq-track-thin{animation-duration:18s}.mq-phrase{font-family:var(--font-body);letter-spacing:-1px;color:var(--ink);white-space:nowrap;font-size:clamp(36px,8vw,84px);font-weight:200}.mq-sep-phrase{color:var(--yellow);padding:0 36px;font-size:20px}@media (prefers-reduced-motion:reduce){.mq-track{animation:none}}.proof{background:var(--paper);padding:56px 48px}.proof-inner{max-width:var(--maxw);grid-template-columns:repeat(3,1fr);gap:24px;margin:0 auto;display:grid}.proof-card{background:var(--yellow);border:2px solid var(--ink);box-shadow:var(--shadow-hard);text-align:center;border-radius:12px;padding:28px 24px 16px;position:relative}.proof-num{color:var(--ink);margin-bottom:8px;font-size:clamp(44px,6vw,68px);line-height:1}.proof-label{color:var(--ink-soft);margin-bottom:14px;font-size:14px;font-weight:600}.proof-pantone{letter-spacing:.12em;color:var(--ink-mut);border-top:1px solid var(--ink-12);padding-top:10px;font-size:9px}@media (width<=768px){.proof{padding:40px 16px}.proof-inner{grid-template-columns:1fr;gap:16px}}.hx-sr{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.hbh{flex-direction:column;align-items:center;line-height:.95;display:flex}.hbh-line{display:block}.hbh-word{white-space:nowrap;display:inline-block}.hbh-space{width:.28em;display:inline-block}.hbh-letter{display:inline-block;position:relative}.hbh-glyph{display:inline-block}.hbh-coral .hbh-glyph{color:var(--coral)}.hbh-spark{background:radial-gradient(circle, var(--coral) 0%, transparent 70%);opacity:0;pointer-events:none;border-radius:50%;width:10px;height:10px;margin:-5px 0 0 -5px;position:absolute;top:50%;left:50%}.hbh-frag{opacity:0;pointer-events:none;background:currentColor;border-radius:1px;width:4px;height:4px;margin:-2px 0 0 -2px;position:absolute;top:50%;left:50%}.bp{line-height:1;display:inline-block}.bp-word{white-space:nowrap;display:inline-block;position:relative}.bp-space{width:.28em;display:inline-block}.bp-letter{display:inline-block;position:relative}.bp-fill{color:var(--paper);display:inline-block}.bp-outline{color:#0000;-webkit-text-stroke:1px var(--teal);pointer-events:none;display:inline-block;position:absolute;inset:0}.sc{font-family:var(--font-display);letter-spacing:-.02em;flex-wrap:wrap;align-items:baseline;display:inline-flex}.sc-word{display:inline-flex;position:relative}.sc-space{width:.32em;display:inline-block}.sc-letter{font-variation-settings:"wght" 700;font-weight:700;display:inline-block}.sc-hl-bg{background:var(--yellow);z-index:-1;transform-origin:50%;border-radius:3px;height:46%;animation:4s ease-in-out infinite sc-breathe;position:absolute;bottom:8%;left:-6px;right:-6px}@keyframes sc-breathe{0%,to{transform:scaleX(1)}50%{transform:scaleX(1.03)}}@media (prefers-reduced-motion:reduce){.sc-hl-bg{animation:none}}.gh{display:inline-block;position:relative}.gh-text{opacity:0;transition:opacity .4s;display:inline-block}.gh-canvas{pointer-events:none;opacity:1;transition:opacity .4s;position:absolute;top:0;left:0}@media (prefers-reduced-motion:reduce){.gh-text{opacity:1!important}.gh-canvas{display:none}}.bp-marker{z-index:-1;transform-origin:0;height:56%;position:absolute;bottom:4%;left:-6px;right:-6px;overflow:visible}.bp-marker path{fill:var(--yellow);opacity:.92}.projects{background:var(--ink);color:var(--paper);border-radius:40px 40px 0 0;padding:96px 48px 72px}.projects-inner{max-width:var(--maxw);margin:0 auto}.projects-head{margin-bottom:56px}.projects-head .plate-label{width:fit-content;display:flex}.projects-h2{color:var(--paper);margin:14px 0 18px;font-size:clamp(38px,6vw,68px);display:block}.projects-lede{color:#fef7dda8;max-width:520px;font-size:17px}.proj-grid{grid-template-columns:repeat(3,1fr);align-items:stretch;gap:22px;display:grid}.span-2{grid-column:span 2}.proj-card{background:var(--paper);border:1px solid var(--teal-30);border-radius:16px;flex-direction:column;height:100%;transition:border-color .25s;display:flex;overflow:hidden}.proj-card:hover{border-color:var(--teal)}.proj-proof{letter-spacing:.12em;color:var(--ink-mut);border-bottom:1px dashed var(--ink-12);background:var(--paper);padding:8px 14px;font-size:9px;display:block}.proj-media{background:var(--ink);height:200px;position:relative;overflow:hidden}.span-2 .proj-media{height:280px}.proj-shot-img{object-fit:cover;object-position:top center;width:100%;height:100%}.proj-mock{background:#111;flex-direction:column;width:100%;height:100%;display:flex}.proj-badges{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex;position:absolute;top:10px;right:10px}.proj-badge{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;background:var(--paper);color:var(--ink);border-radius:5px;align-items:center;gap:3px;padding:3px 7px;font-size:9px;display:inline-flex}.proj-badge.ai{background:var(--coral)}.proj-badge.priv{background:var(--ink-soft);color:var(--paper)}.proj-badge.feat{background:var(--yellow)}.proj-body{flex-direction:column;flex:1;padding:18px 18px 20px;display:flex}.proj-titlerow{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.proj-name{color:var(--ink);font-size:22px}.proj-year{color:var(--ink-mut);font-size:11px}.proj-tagline{color:var(--coral-ink);margin:6px 0 10px;font-size:13px;font-weight:600}.proj-desc{color:var(--ink-soft);-webkit-line-clamp:4;line-clamp:4;-webkit-box-orient:vertical;min-height:86.4px;margin-bottom:14px;font-size:13.5px;line-height:1.6;display:-webkit-box;overflow:hidden}.proj-tags{flex-wrap:wrap;gap:6px;margin-bottom:16px;display:flex}.proj-links{gap:10px;margin-top:auto;display:flex}.proj-link{border:1.5px solid var(--ink);color:var(--ink);border-radius:8px;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}.proj-link.primary{background:var(--coral)}.mock-bar{border-bottom:1px solid #ffffff14;align-items:center;gap:10px;padding:8px 12px;display:flex}.mock-dots{gap:5px;display:flex}.mock-dots span{border-radius:50%;width:9px;height:9px;display:block}.mock-title{font-family:var(--font-mono);color:#fef7dd99;font-size:11px}.term-body{font-family:var(--font-mono);color:var(--teal);flex:1;padding:12px 14px;font-size:12px;overflow:hidden}.term-line{white-space:nowrap;line-height:1.7}.term-cursor{color:var(--coral);animation:1s step-end infinite term-blink}@keyframes term-blink{50%{opacity:0}}.gantt{flex:1;padding:16px 16px 0;position:relative}.gantt-row{gap:3px;height:44px;display:flex}.gantt-block{font-family:var(--font-mono);color:var(--ink);border-radius:5px;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.gantt-playhead{background:#ffffffb3;width:2px;position:absolute;top:16px;bottom:38px}.gantt-axis{font-family:var(--font-mono);color:#fef7dd80;justify-content:space-between;margin-top:8px;font-size:11px;display:flex}.projects-cta{justify-content:center;margin-top:56px;padding-bottom:24px;display:flex}.mstack{position:relative}.mstack-card{margin-bottom:24px;position:sticky;top:90px}@media (width<=1024px){.projects{border-radius:28px 28px 0 0}}@media (width<=768px){.projects{padding:64px 16px 56px}.span-2{grid-column:auto}}.cw{--cw-cream:#fdf6ec;--cw-teal:#1fb6a6;--cw-teal-deep:#0e8b7f;--cw-coral:#ff6b5c;--cw-ink:#1c2b2a;--cw-line:#1c2b2a1f}.cw-orb{z-index:2000;cursor:pointer;background:var(--cw-ink);border:none;border-radius:50%;width:62px;height:62px;padding:0;position:fixed;bottom:24px;right:24px;overflow:hidden;box-shadow:0 0 0 1.5px #1c2b2a26,0 8px 28px #1c2b2a59}.cw-orb:after{content:"";pointer-events:none;border-radius:50%;animation:2.6s ease-in-out infinite cw-pulse;position:absolute;inset:-6px;box-shadow:0 0 0 2px #1fb6a680}@keyframes cw-pulse{0%,to{opacity:.5;transform:scale(1)}50%{opacity:0;transform:scale(1.18)}}.cw-orb-aurora{filter:blur(4px);background:radial-gradient(60% 60% at 30% 30%,#1fb6a6f2,#0000 70%),radial-gradient(55% 55% at 70% 65%,#ff6b5cd9,#0000 70%),radial-gradient(50% 50% at 55% 40%,#fee394b3,#0000 70%);border-radius:50%;animation:6s ease-in-out infinite cw-aurora;position:absolute;inset:0}@keyframes cw-aurora{0%,to{transform:scale(1)rotate(0)}50%{transform:scale(1.15)rotate(18deg)}}.cw-orb-glass{background:radial-gradient(circle at 38% 30%,#ffffff4d 0%,#ffffff0d 50%,#0000 70%);border-radius:50%;position:absolute;inset:0}.cw-orb-icon{z-index:3;color:#fffffff5;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.cw-panel{z-index:2000;background:var(--cw-cream);border:1px solid var(--cw-line);border-radius:22px;flex-direction:column;width:360px;max-width:calc(100vw - 36px);height:540px;max-height:calc(100vh - 120px);display:flex;position:fixed;bottom:24px;right:24px;overflow:hidden;box-shadow:0 30px 80px #1c2b2a4d}.cw-aurora-sweep{z-index:0;pointer-events:none;mix-blend-mode:multiply;background:linear-gradient(120deg,#1fb6a62e,#ff6b5c29 60%,#0000);position:absolute;inset:0}.cw-head{z-index:2;background:linear-gradient(135deg, var(--cw-teal), var(--cw-teal-deep));flex-shrink:0;justify-content:space-between;align-items:center;padding:15px 16px;display:flex;position:relative;box-shadow:0 6px 16px #0e8b7f47}.cw-head-l{align-items:center;gap:10px;display:flex}.cw-avatar{background:var(--cw-cream);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:17px;display:flex}.cw-title{color:#fff;font-size:14px;font-weight:700}.cw-status{color:#ffffffe6;align-items:center;gap:5px;font-size:11px;display:flex}.cw-dot-online{background:#34d399;border-radius:50%;width:7px;height:7px;animation:2s ease-in-out infinite cw-online;display:inline-block;box-shadow:0 0 #34d399b3}@keyframes cw-online{0%{box-shadow:0 0 #34d39999}70%{box-shadow:0 0 0 6px #34d39900}to{box-shadow:0 0 #34d39900}}.cw-close{cursor:pointer;color:#fff;background:#ffffff2e;border:1px solid #ffffff40;border-radius:9px;padding:6px;transition:background .2s;display:flex}.cw-close:hover{background:#ffffff52}.cw-body{z-index:1;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#1fb6a699 transparent;flex-direction:column;flex:1;gap:12px;padding:16px;display:flex;position:relative;overflow-y:auto}.cw-row{flex-direction:column;display:flex}.cw-row.user{align-items:flex-end}.cw-row.assistant{align-items:flex-start}.cw-bubble{max-width:84%;padding:10px 14px;font-size:13px;line-height:1.6}.cw-bubble.user{background:var(--cw-coral);color:#fff;border-radius:16px 16px 4px}.cw-bubble.assistant{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--cw-line);color:var(--cw-ink);background:#ffffffb3;border-radius:16px 16px 16px 4px}.cw-section-btn{border:1px solid var(--cw-teal);cursor:pointer;color:var(--cw-ink);background:#1fb6a629;border-radius:20px;align-items:center;gap:5px;margin-top:6px;padding:6px 14px;font-family:inherit;font-size:12px;font-weight:500;transition:all .2s;display:flex}.cw-section-btn:hover{border-color:var(--cw-coral);background:#ff6b5c29}.cw-typing{border:1px solid var(--cw-line);background:#ffffffb3;border-radius:16px 16px 16px 4px;align-items:center;gap:4px;padding:12px 14px;display:inline-flex}.cw-typing span{background:var(--cw-teal);border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite cw-typing}.cw-typing span:nth-child(2){animation-delay:.18s}.cw-typing span:nth-child(3){animation-delay:.36s}@keyframes cw-typing{0%,60%,to{opacity:.5;transform:translateY(0)}30%{opacity:1;transform:translateY(-5px)}}.cw-suggest-label{color:var(--cw-ink);opacity:.6;font-family:JetBrains Mono,monospace;font-size:11px}.cw-suggest{text-align:left;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--cw-line);color:var(--cw-ink);background:#ffffffa6;border-left:3px solid #0000;border-radius:10px;padding:9px 12px;font-family:inherit;font-size:12px;transition:transform .18s,box-shadow .18s,border-left-color .18s,border-left-width .18s;position:relative}.cw-suggest:hover{border-left:3px solid var(--cw-coral);transform:translateY(-2px);box-shadow:0 6px 16px #1c2b2a1f}.cw-input-row{z-index:2;border-top:1px solid var(--cw-line);flex-shrink:0;align-items:center;gap:8px;padding:12px 14px;display:flex;position:relative}.cw-input{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--cw-line);color:var(--cw-ink);background:#ffffffbf;border-radius:12px;outline:none;flex:1;padding:10px 14px;font-family:inherit;font-size:13px;transition:border-color .2s}.cw-input:focus{border-color:var(--cw-teal)}.cw-send{border:none;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;transition:background .2s,transform .15s;display:flex}.cw-send.active{background:var(--cw-coral);color:#fff;cursor:pointer}.cw-send.idle{color:#9a9a92;cursor:default;background:#1c2b2a14}@media (prefers-reduced-motion:reduce){.cw-orb:after,.cw-orb-aurora,.cw-dot-online,.cw-typing span{animation:none}}
