/*! tailwindcss v4.3.2 | 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-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}}}@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;--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{.grid{display:grid}.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}.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,)}}:root{--bg:#eef6ff;--bg-2:#fff7ed;--text:#172033;--muted:#64718a;--card:#ffffffad;--card-strong:#ffffffe0;--line:#1e2d4b24;--accent:#15c8a8;--accent-2:#7c5cff;--accent-3:#ff9f43;--shadow:0 24px 90px #3948672e;--radius:30px;--font-title:"Space Grotesk", system-ui, sans-serif;--font-mono:"JetBrains Mono", monospace;--header-h:82px}body.light{--bg:#fff8f0;--bg-2:#edf7ff;--text:#141a2b;--muted:#63708a;--card:#ffffffb8;--card-strong:#fffffff0;--line:#1e2d4b21;--shadow:0 24px 90px #39486729}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:var(--header-h)}body{background:radial-gradient(circle at 18% 16%, #15c8a833, transparent 30%), radial-gradient(circle at 82% 12%, #7c5cff26, transparent 28%), radial-gradient(circle at 78% 88%, #ff9f4329, transparent 30%), linear-gradient(135deg, var(--bg), var(--bg-2));min-height:100vh;color:var(--text);font-family:var(--font-title);margin:0;overflow-x:hidden}body.menu-open{overflow:hidden}a{color:inherit}img,video{max-width:100%;display:block}button,input,textarea{font:inherit}.skip-link{background:var(--accent);color:#071713;z-index:1000;border-radius:24px;padding:10px 14px;position:fixed;top:10px;left:10px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.noise{pointer-events:none;z-index:-1;opacity:.32;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='256' height='256' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E");position:fixed;inset:0}.orb{filter:blur(50px);opacity:.28;pointer-events:none;z-index:-2;border-radius:50%;width:440px;height:440px;animation:12s ease-in-out infinite alternate floatOrb;position:fixed}.orb-one{background:var(--accent);top:18%;left:-140px}.orb-two{background:var(--accent-2);animation-delay:-5s;bottom:5%;right:-150px}#matrixCanvas{z-index:-1;pointer-events:none;opacity:.32;position:fixed;inset:0}.site-header{z-index:300;border:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);height:64px;box-shadow:var(--shadow);background:#ffffffb8;border-radius:999px;justify-content:space-between;align-items:center;padding:10px 12px;display:flex;position:fixed;inset:18px 22px auto}body.light .site-header{background:#ffffffbd}.brand{z-index:310;align-items:center;gap:12px;min-width:0;text-decoration:none;display:flex;position:relative}.brand-mark{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#06100d;border-radius:50%;flex:0 0 42px;place-items:center;width:42px;height:42px;font-weight:800;display:grid}.brand-text{line-height:1.1;display:grid}.brand-text strong{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.brand-text small{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;max-width:280px;overflow:hidden}.main-nav{align-items:center;gap:6px;display:flex}.main-nav a{color:var(--muted);border-radius:999px;padding:10px 13px;text-decoration:none;transition:all .22s}.main-nav a:hover{color:var(--text);background:var(--card)}.menu-toggle{background:var(--card);width:46px;height:46px;color:var(--text);cursor:pointer;z-index:310;border:0;border-radius:50%;place-items:center;display:none;position:relative}.menu-toggle span{background:currentColor;border-radius:10px;width:20px;height:2px;margin:3px auto;transition:transform .22s,opacity .22s;display:block}body.menu-open .menu-toggle span:first-child{transform:translateY(5px)rotate(45deg)}body.menu-open .menu-toggle span:nth-child(2){opacity:0}body.menu-open .menu-toggle span:nth-child(3){transform:translateY(-5px)rotate(-45deg)}.quick-contact{z-index:90;gap:10px;display:grid;position:fixed;top:50%;right:22px;transform:translateY(-50%)}.quick-contact a,.quick-contact button{border:1px solid var(--line);width:48px;height:48px;color:var(--text);cursor:pointer;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffbd;border-radius:16px;place-items:center;text-decoration:none;transition:transform .22s,background .22s;display:grid;position:relative;box-shadow:0 10px 40px #0000002e}.quick-contact a:before,.quick-contact button:before{content:attr(data-tooltip);border:1px solid var(--line);min-width:max-content;max-width:280px;min-height:42px;color:var(--text);white-space:nowrap;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);opacity:0;pointer-events:none;background:#ffffffe6;border-radius:999px;justify-content:center;align-items:center;padding:0 16px;font-size:.92rem;font-weight:700;transition:opacity .22s,transform .22s;display:inline-flex;position:absolute;top:50%;right:calc(100% + 14px);transform:translateY(-50%)translate(10px);box-shadow:0 14px 45px #0f172a29}.quick-contact a:after,.quick-contact button:after{content:"";background:var(--line);opacity:0;transform-origin:100%;width:14px;height:1px;transition:opacity .22s,transform .22s;position:absolute;top:50%;right:100%;transform:translateY(-50%)scaleX(0)}.quick-contact a:hover,.quick-contact button:hover,.quick-contact a:focus-visible,.quick-contact button:focus-visible{background:var(--card-strong);transform:translate(-4px)}.quick-contact a:hover:before,.quick-contact button:hover:before,.quick-contact a:focus-visible:before,.quick-contact button:focus-visible:before{opacity:1;transform:translateY(-50%)translate(0)}.quick-contact a:hover:after,.quick-contact button:hover:after,.quick-contact a:focus-visible:after,.quick-contact button:focus-visible:after{opacity:1;transform:translateY(-50%)scaleX(1)}.section{min-height:100vh;padding:130px clamp(22px,6vw,92px) 90px}.hero{grid-template-columns:minmax(280px,.82fr) minmax(0,1.08fr);align-items:center;gap:clamp(34px,6vw,90px);padding-bottom:150px;display:grid;position:relative;overflow:hidden}.hero>*{min-width:0}.hero-visual{width:100%;min-width:0}.hero-copy{border:1px solid var(--line);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:linear-gradient(135deg,#ffffffd1,#ffffff7a);border-radius:38px;min-width:0;padding:clamp(24px,4vw,46px);position:relative}.hero-copy:before{content:"";pointer-events:none;border:1px dashed #15c8a83d;border-radius:28px;position:absolute;inset:16px}.eyebrow,.section-kicker{color:var(--accent);text-transform:uppercase;letter-spacing:.12em;font-size:.82rem;font-weight:700}.eyebrow{border:1px solid var(--line);background:var(--card);border-radius:999px;align-items:center;gap:10px;padding:9px 12px;display:inline-flex}.pulse{background:var(--accent);border-radius:50%;flex:0 0 9px;width:9px;height:9px;animation:1.8s infinite pulse;box-shadow:0 0 #7cf7d4e6}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.04em;margin-bottom:22px;font-size:clamp(2rem,5vw,4.5rem);line-height:1}h1 em{color:#0000;background:linear-gradient(90deg, var(--accent), var(--accent-2), var(--accent-3));-webkit-background-clip:text;background-clip:text;font-style:normal;display:block}h2{letter-spacing:-.055em;margin-bottom:22px;font-size:clamp(2.2rem,5vw,5rem);line-height:.95}h3{margin-bottom:12px;font-size:1.45rem}.hero-text,.section-head p,.content-card p,.contact-card p,.project-card p{color:var(--muted);font-size:clamp(1.04rem,1.4vw,1.25rem);line-height:1.65}.hero-actions{flex-wrap:wrap;gap:14px;margin-top:30px;display:flex}.btn{border:1px solid var(--line);border-radius:999px;justify-content:center;align-items:center;min-height:52px;padding:0 22px;text-decoration:none;transition:all .22s;display:inline-flex}.btn.primary{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#06100d;border:0;font-weight:800}.btn.ghost{background:var(--card);color:var(--text)}.btn.cv{background:var(--card-strong);color:var(--text);border:1px solid var(--line);font-weight:700}.btn.cv:before{content:"↗";color:var(--accent);margin-right:8px}.btn:hover{filter:brightness(1.08)}.portrait-card{width:min(100%,480px);max-width:480px;transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transform-style:preserve-3d;background:linear-gradient(var(--card-strong), var(--card)) padding-box, linear-gradient(135deg, var(--accent), var(--accent-3), var(--accent-2)) border-box;box-shadow:var(--shadow);border:1px solid #0000;border-radius:52px 28px;margin-inline:auto;padding:24px;transition:transform .14s;position:relative}.portrait-card img{z-index:2;aspect-ratio:1/1.12;object-fit:cover;object-position:center top;filter:drop-shadow(0 28px 40px #00000059);border-radius:24px;width:100%;position:relative}.portrait-ring{border:1px solid #fff3;border-radius:40%;animation:18s linear infinite slowSpin;position:absolute;inset:12%}.code-bubble{z-index:3;border:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:var(--shadow);color:var(--accent);background:#ffffffc7;border-radius:16px;padding:12px 14px;position:absolute}body.light .code-bubble{background:#ffffffbf}.bubble-one{top:16%;right:-20px}.bubble-two{bottom:18%;left:-24px}.mono{font-family:var(--font-mono)}.tech-marquee{border-top:1px solid var(--line);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:4;background:#ffffff75;position:absolute;bottom:54px;left:0;right:0;overflow:hidden}.tech-marquee:before,.tech-marquee:after{content:"";z-index:2;pointer-events:none;width:140px;height:100%;position:absolute;top:0}.tech-marquee:before{background:linear-gradient(90deg, var(--bg), transparent);left:0}.tech-marquee:after{background:linear-gradient(270deg, var(--bg), transparent);right:0}.tech-marquee-track{width:max-content;animation:26s linear infinite techMarquee;display:flex}.tech-marquee-track span{color:var(--muted);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;flex:none;padding:18px 42px;font-size:clamp(.85rem,1.2vw,1.05rem)}.tech-marquee:hover .tech-marquee-track{animation-play-state:paused}.scroll-indicator{border:1px solid var(--line);border-radius:999px;justify-content:center;width:28px;height:46px;padding-top:8px;display:grid;position:absolute;bottom:18px;left:50%}.scroll-indicator span{background:var(--accent);border-radius:50%;width:5px;height:5px;animation:1.5s infinite scrollDot}.split{grid-template-columns:.35fr 1fr;align-items:start;gap:40px;display:grid}.content-card,.contact-card{border:1px solid var(--line);background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);padding:clamp(24px,4vw,54px)}.section-head{max-width:850px;margin-bottom:38px}.skills-grid,.project-grid{gap:18px;display:grid}.skills-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.skills-grid .skill-card{grid-column:span 2}.skills-grid .skill-card:first-child,.skills-grid .skill-card:nth-child(4){grid-column:span 3}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-grid .project-card:first-child{grid-column:span 2}.skill-card,.project-card{border:1px solid var(--line);background:var(--card);border-radius:var(--radius);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 20px 70px #0000002e}.skill-card{min-height:225px;padding:24px}.skill-number{color:var(--accent);margin-bottom:26px}.tag-list{flex-wrap:wrap;gap:8px;margin-top:18px;display:flex}.tag-list span{border:1px solid var(--line);color:var(--muted);background:#ffffff0f;border-radius:999px;padding:7px 10px;font-size:.9rem;display:inline-flex}.project-card{min-height:330px;transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .14s,background .22s;position:relative;overflow:hidden}.project-card:before{content:"";opacity:0;pointer-events:none;background:linear-gradient(135deg,#7cf7d42e,#0000 50%,#8e7cff2e);transition:all .22s;position:absolute;inset:-1px}.project-card:hover:before{opacity:1}.project-top{color:var(--muted);justify-content:space-between;align-items:center;margin-bottom:60px;display:flex;position:relative}.project-arrow{background:var(--card-strong);width:46px;height:46px;color:var(--text);border-radius:50%;place-items:center;text-decoration:none;display:grid}.project-card-visual{grid-template-columns:minmax(280px,.95fr) minmax(0,1.05fr);align-items:stretch;gap:26px;min-height:360px;padding:18px;display:grid}.project-card-visual:first-child{min-height:420px}.project-preview{border:1px solid var(--line);background:radial-gradient(circle at 18% 18%,#15c8a838,#0000 34%),radial-gradient(circle at 82% 82%,#7c5cff33,#0000 36%),#ffffff80;border-radius:24px;min-height:260px;text-decoration:none;display:block;position:relative;overflow:hidden}.project-preview img{object-fit:cover;object-position:top center;width:100%;height:100%;min-height:260px;transition:transform .35s,filter .35s;transform:scale(1.01)}.project-preview:hover img{filter:brightness(.96)saturate(1.08);transform:scale(1.045)}.project-preview:after{content:"";pointer-events:none;background:linear-gradient(#0000 45%,#0f172a4d),linear-gradient(135deg,#15c8a81a,#7c5cff1a);position:absolute;inset:0}.project-preview-badge{z-index:2;min-height:40px;color:var(--text);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffe0;border-radius:999px;justify-content:center;align-items:center;padding:0 14px;font-weight:800;display:inline-flex;position:absolute;bottom:14px;right:14px;box-shadow:0 14px 40px #0f172a29}.project-preview-placeholder{text-align:center;height:100%;min-height:260px;color:var(--muted);place-items:center;padding:24px;display:grid}.project-content{flex-direction:column;padding:10px 8px 8px;display:flex}.project-content .project-top{margin-bottom:34px}.project-content .tag-list{margin-top:auto;padding-top:22px}.private-project-grid{align-items:stretch}.private-project-card{gap:26px;padding:18px;display:grid}.private-project-card:first-child,.private-project-card:nth-child(2){grid-column:span 2;grid-template-columns:minmax(280px,.95fr) minmax(0,1.05fr);align-items:stretch;min-height:420px}.private-project-card:nth-child(n+3){padding:24px}.private-project-media{border:1px solid var(--line);background:#000;border-radius:24px;height:100%;min-height:260px;position:relative;overflow:hidden}.private-project-media video{object-fit:cover;object-position:top center;width:100%;height:100%;min-height:260px;display:block}.private-project-content{flex-direction:column;padding:10px 8px 8px;display:flex}.private-project-content .project-top{margin-bottom:34px}.private-project-content .tag-list{margin-top:auto;padding-top:22px}.contact-section{place-items:center;min-height:70vh;display:grid}.contact-card{text-align:center;width:min(100%,960px)}.contact-links{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:28px;display:flex}.contact-links a{border:1px solid var(--line);background:var(--card-strong);color:var(--text);border-radius:999px;padding:12px 15px;text-decoration:none}.footer{color:var(--muted);border-top:1px solid var(--line);justify-content:space-between;gap:20px;padding:28px clamp(22px,6vw,92px);display:flex}.reveal{opacity:0;transition:opacity .7s,transform .7s;transition-delay:var(--delay,0s);transform:translateY(22px)}.reveal.is-visible{opacity:1;transform:translateY(0)}@keyframes pulse{50%{opacity:.5}}@keyframes slowSpin{to{transform:rotate(360deg)}}@keyframes floatOrb{to{transform:translate(80px,-50px)scale(1.1)}}@keyframes techMarquee{0%{transform:translate(0)}to{transform:translate(-33.333%)}}@keyframes scrollDot{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(22px)}}@media (width<=980px){html{scroll-padding-top:92px}.site-header{height:64px;padding:9px 10px;inset:12px 14px auto}.brand{gap:10px}.brand-mark{flex:0 0 42px;width:42px;height:42px}.brand-text strong,.brand-text small{max-width:180px}.menu-toggle{display:block}.main-nav{z-index:250;-webkit-backdrop-filter:blur(26px);backdrop-filter:blur(26px);opacity:0;pointer-events:none;background:radial-gradient(circle at 20% 20%,#15c8a83d,#0000 32%),radial-gradient(circle at 80% 75%,#7c5cff3d,#0000 34%),#eff6ffe6;place-content:center;gap:18px;padding:120px 24px 80px;transition:transform .32s,opacity .32s;display:grid;position:fixed;inset:0;transform:translateY(-100%)}body.light .main-nav{background:radial-gradient(circle at 20% 20%,#15c8a82e,#0000 32%),radial-gradient(circle at 80% 75%,#7c5cff2e,#0000 34%),#fff8f0eb}.main-nav.is-open{opacity:1;pointer-events:auto;transform:translateY(0)}.main-nav a{border:1px solid var(--line);min-width:min(76vw,420px);min-height:58px;color:var(--text);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffffad;border-radius:999px;justify-content:center;align-items:center;padding:0 26px;font-size:clamp(1.08rem,4vw,1.45rem);font-weight:800;display:flex;box-shadow:0 16px 50px #0f172a1c}.main-nav a:hover,.main-nav a:focus-visible{background:var(--card-strong);transform:translateY(-2px)}.section{min-height:auto;padding-inline:20px}.hero{grid-template-columns:1fr;gap:34px;padding-top:122px;padding-bottom:112px}.hero-visual,.hero-copy{width:100%;max-width:100%}.hero-visual{order:1}.hero-copy{border-radius:32px;order:2;padding:30px 24px}.hero-copy:before{border-radius:24px;inset:10px}.portrait-card{border-radius:40px 24px;width:min(100%,420px);max-width:420px;padding:20px}h1{font-size:clamp(2.85rem,10vw,4.4rem)}h2{font-size:clamp(2.35rem,9vw,4rem)}.hero-actions{grid-template-columns:1fr;display:grid}.btn{width:100%}.split,.skills-grid,.project-grid{grid-template-columns:1fr}.skills-grid .skill-card,.skills-grid .skill-card:first-child,.skills-grid .skill-card:nth-child(4),.project-grid .project-card:first-child,.private-project-card:first-child,.private-project-card:nth-child(2){grid-column:span 1}.project-card-visual,.project-card-visual:first-child,.private-project-card:first-child,.private-project-card:nth-child(2){grid-template-columns:1fr;min-height:auto}.project-preview,.project-preview img,.project-preview-placeholder,.private-project-media,.private-project-media video{min-height:240px}.private-project-media{border-radius:22px}.quick-contact{justify-content:center;gap:10px;display:flex;inset:auto 14px 14px;transform:none}.quick-contact a,.quick-contact button{width:46px;height:46px}.quick-contact a:before,.quick-contact button:before,.quick-contact a:after,.quick-contact button:after{display:none}.footer{padding-bottom:86px}}@media (width<=640px){.site-header{border-radius:999px;height:60px;inset:10px 10px auto}.brand-mark{flex-basis:40px;width:40px;height:40px;font-size:.92rem}.brand-text strong{max-width:145px;font-size:.96rem}.brand-text small{display:none}.menu-toggle{width:42px;height:42px}.main-nav{gap:14px;padding:104px 18px 86px}.main-nav a{min-width:min(84vw,380px);min-height:54px;font-size:1.08rem}.section{padding:104px 16px 70px}.hero{gap:28px;padding-top:108px;padding-bottom:106px}.hero-copy{border-radius:28px;padding:24px 18px}.eyebrow{align-items:center;width:100%;font-size:.72rem;line-height:1.35}h1{letter-spacing:-.055em;font-size:clamp(2.35rem,13vw,3.75rem);line-height:.95}h2{font-size:clamp(2.1rem,12vw,3.4rem);line-height:.96}h3{font-size:1.28rem}.hero-text,.section-head p,.content-card p,.contact-card p,.project-card p{font-size:1.02rem;line-height:1.58}.portrait-card{border-radius:30px;width:min(100%,330px);max-width:330px;padding:16px}.portrait-card img{aspect-ratio:1/1.08;border-radius:20px;width:100%}.code-bubble{text-align:left;width:100%;margin-top:12px;font-size:.82rem;position:static}.bubble-one,.bubble-two{inset:auto}.tech-marquee{background:#ffffff59;bottom:58px}.tech-marquee:before,.tech-marquee:after{width:70px}.tech-marquee-track span{padding:14px 24px;font-size:.78rem}.scroll-indicator{display:none}.content-card,.contact-card{border-radius:26px;padding:24px 18px}.section-head{margin-bottom:28px}.skill-card,.project-card{border-radius:24px}.skill-card{min-height:auto;padding:20px}.project-card-visual,.private-project-card{gap:18px;padding:14px}.project-preview,.project-preview img,.project-preview-placeholder,.private-project-media,.private-project-media video{border-radius:20px;min-height:210px}.project-preview-badge{font-size:.9rem;bottom:12px;left:12px;right:12px}.project-content,.private-project-content{min-height:auto;padding:4px 2px 2px}.project-top,.project-content .project-top,.private-project-content .project-top{margin-bottom:24px}.project-arrow{width:42px;height:42px}.tag-list{gap:7px}.tag-list span{padding:6px 9px;font-size:.82rem}.contact-links{gap:10px;display:grid}.contact-links a{overflow-wrap:anywhere;width:100%}.footer{text-align:center;justify-content:center;padding-bottom:90px;display:grid}}@media (width<=390px){.brand-text strong{max-width:120px}.main-nav a{min-width:86vw}h1{font-size:2.35rem}.hero-copy{padding:22px 16px}.portrait-card{width:min(100%,300px);max-width:300px}.quick-contact{gap:8px}.quick-contact a,.quick-contact button{width:43px;height:43px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}#matrixCanvas{display:none}.tech-marquee-track{animation:none!important}@media (width<=640px){.hero{gap:22px;padding-top:104px;padding-bottom:150px}.portrait-card{border-radius:28px;width:min(100%,300px);max-width:300px;padding:14px}.portrait-card img{aspect-ratio:1/1.05;border-radius:18px}.code-bubble{border-radius:14px;padding:11px 13px;font-size:.8rem}.hero-copy{border-radius:26px;padding:22px 16px}.hero-copy:before{border-radius:20px;inset:9px}.eyebrow{letter-spacing:.1em;padding:8px 10px;font-size:.68rem}h1{letter-spacing:-.055em;margin-bottom:16px;font-size:clamp(2rem,11vw,2.85rem);line-height:.96}.hero-text{font-size:.98rem;line-height:1.55}.hero-actions{margin-top:22px}.tech-marquee{bottom:64px}.quick-contact{bottom:12px}}@media (width<=390px){.portrait-card{width:min(100%,280px);max-width:280px}h1{font-size:2rem}.hero-copy{padding:20px 15px}}@media (width<=980px){.split{grid-template-columns:1fr;gap:18px}#bio{padding-top:92px}#bio .section-kicker{margin-bottom:0}.content-card{width:100%;max-width:100%}}@media (width<=640px){#bio{padding-top:82px;padding-bottom:64px}#bio .section-kicker{letter-spacing:.11em;font-size:.74rem}.content-card{border-radius:26px;padding:24px 18px}.content-card h2{letter-spacing:-.05em;margin-bottom:20px;font-size:clamp(2rem,11vw,3rem);line-height:.98}.content-card p{margin-bottom:16px;font-size:1rem;line-height:1.62}.content-card p:last-child{margin-bottom:0}}@media (width<=390px){.content-card{padding:22px 16px}.content-card h2{font-size:1.9rem}.content-card p{font-size:.96rem}}@media (width<=980px){#projets{padding-top:90px}#projets .section-head{margin-bottom:26px}.project-card-visual,.project-card-visual:first-child{grid-column:span 1;grid-template-columns:1fr;gap:20px;min-height:auto;padding:16px}.project-preview{border-radius:24px;width:100%;min-height:260px}.project-preview img{border-radius:24px;min-height:260px}.project-content{padding:4px 2px 2px}.project-content .project-top{margin-bottom:24px}.project-content h3{margin-bottom:10px;font-size:1.45rem}.project-content p{font-size:1rem;line-height:1.58}}@media (width<=640px){#projets{padding-top:82px;padding-bottom:70px}#projets .section-head{margin-bottom:24px}#projets .section-head h2{margin-bottom:16px;font-size:clamp(2.25rem,13vw,3.5rem);line-height:.96}#projets .section-head p{font-size:1rem;line-height:1.55}.project-grid{gap:18px}.project-card-visual,.project-card-visual:first-child{border-radius:26px;gap:18px;padding:14px}.project-preview,.project-preview img,.project-preview-placeholder{border-radius:20px;min-height:220px}.project-preview-badge{min-height:38px;font-size:.9rem;bottom:12px;left:12px;right:12px}.project-content .project-top{margin-bottom:18px}.project-content h3{margin-bottom:10px;font-size:1.28rem}.project-content p{font-size:.98rem;line-height:1.56}.project-content .tag-list{margin-top:0;padding-top:16px}}@media (width<=390px){.project-preview,.project-preview img,.project-preview-placeholder{min-height:190px}.project-content h3{font-size:1.2rem}.project-content p{font-size:.95rem}}@media (width<=980px){#captures{padding-top:90px}#captures .section-head{margin-bottom:26px}.private-project-grid{gap:18px}.private-project-card,.private-project-card:first-child,.private-project-card:nth-child(2){grid-column:span 1;grid-template-columns:1fr;gap:20px;min-height:auto;padding:16px}.private-project-media{aspect-ratio:16/9;border-radius:24px;width:100%;height:auto;min-height:260px}.private-project-media video{object-fit:cover;border-radius:24px;width:100%;height:100%;min-height:260px}.private-project-content{padding:4px 2px 2px}.private-project-content .project-top{margin-bottom:24px}.private-project-content h3{margin-bottom:10px;font-size:1.45rem}.private-project-content p{font-size:1rem;line-height:1.58}}@media (width<=640px){#captures{padding-top:82px;padding-bottom:70px}#captures .section-head{margin-bottom:24px}#captures .section-head h2{margin-bottom:16px;font-size:clamp(2.2rem,12vw,3.4rem);line-height:.96}#captures .section-head p{font-size:1rem;line-height:1.55}.private-project-card,.private-project-card:first-child,.private-project-card:nth-child(2){border-radius:26px;gap:18px;padding:14px}.private-project-media,.private-project-media video{border-radius:20px;min-height:210px}.private-project-content .project-top{margin-bottom:18px}.private-project-content h3{margin-bottom:10px;font-size:1.28rem}.private-project-content p{font-size:.98rem;line-height:1.56}.private-project-content .tag-list{margin-top:0;padding-top:16px}}@media (width<=390px){.private-project-media,.private-project-media video{min-height:190px}.private-project-content h3{font-size:1.2rem}.private-project-content p{font-size:.95rem}}@media (width<=980px){#competences{padding-top:90px}#competences .section-head{margin-bottom:26px}.skills-grid{grid-template-columns:1fr;gap:18px}.skills-grid .skill-card,.skills-grid .skill-card:first-child,.skills-grid .skill-card:nth-child(4){grid-column:span 1}.skill-card{min-height:auto;padding:24px}.skill-number{margin-bottom:18px}.skill-card h3{margin-bottom:14px}}@media (width<=640px){#competences{padding-top:82px;padding-bottom:72px}#competences .section-head{margin-bottom:24px}#competences .section-head h2{margin-bottom:16px;font-size:clamp(2.25rem,13vw,3.5rem);line-height:.96}#competences .section-head p{font-size:1rem;line-height:1.55}.skills-grid{gap:16px}.skill-card{border-radius:24px;padding:20px}.skill-number{margin-bottom:16px;font-size:.82rem}.skill-card h3{margin-bottom:12px;font-size:1.26rem}.skill-card .tag-list{gap:7px;margin-top:12px}.skill-card .tag-list span{padding:6px 9px;font-size:.82rem;line-height:1.2}}@media (width<=390px){.skill-card{padding:18px}.skill-card h3{font-size:1.18rem}.skill-card .tag-list span{padding:6px 8px;font-size:.78rem}}@media (width<=980px){.quick-contact{z-index:260;border:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffff9e;border-radius:999px;padding:8px 10px;box-shadow:0 16px 50px #0f172a29}body.menu-open .quick-contact{display:none}#bio,#projets,#captures,#competences,#contact{padding-bottom:120px}.contact-section{min-height:auto;padding-top:90px}.contact-card{width:100%;max-width:100%}}@media (width<=640px){.quick-contact{gap:8px;width:max-content;max-width:calc(100vw - 28px);bottom:12px;left:auto;right:50%;transform:translate(50%)}.quick-contact a,.quick-contact button{border-radius:15px;width:44px;height:44px;font-size:.9rem}#bio,#projets,#captures,#competences{padding-bottom:118px}#contact{padding-top:82px;padding-bottom:126px}.contact-card{border-radius:28px;padding:26px 18px}.contact-card h2{margin-bottom:18px;font-size:clamp(2.15rem,12vw,3.4rem);line-height:.96}.contact-card p{font-size:1rem;line-height:1.58}.contact-links{gap:10px;margin-top:24px;display:grid}.contact-links a{overflow-wrap:anywhere;text-align:center;justify-content:center;align-items:center;width:100%;min-height:48px;display:inline-flex}}@media (width<=390px){.quick-contact{gap:7px;padding:7px 8px}.quick-contact a,.quick-contact button{border-radius:14px;width:42px;height:42px}.contact-card{padding:24px 16px}.contact-card h2{font-size:2.05rem}}@media (width<=980px){html,body,main{width:100%;max-width:100%;overflow-x:hidden}.section{width:100%;max-width:100%}.hero-copy,.content-card,.contact-card,.skill-card,.project-card{max-width:100%}.footer{text-align:center;justify-content:center;gap:8px;padding-top:24px;padding-bottom:104px;display:grid}}@media (width<=640px){body{background:radial-gradient(circle at 12% 8%, #15c8a83d, transparent 28%), radial-gradient(circle at 90% 28%, #7c5cff29, transparent 30%), radial-gradient(circle at 70% 95%, #ff9f4324, transparent 28%), linear-gradient(135deg, var(--bg), var(--bg-2))}.section{padding-left:16px;padding-right:16px}.section-kicker{letter-spacing:.11em;font-size:.72rem}.section-head h2,.content-card h2,.contact-card h2{overflow-wrap:anywhere}#bio .content-card h2{font-size:clamp(2rem,10.5vw,2.85rem);line-height:.98}.content-card p,.project-card p,.skill-card p,.contact-card p{max-width:100%}.project-card,.skill-card,.content-card,.contact-card{box-shadow:0 18px 55px #0f172a24}.tag-list{max-width:100%}.tag-list span{overflow-wrap:anywhere;max-width:100%}.footer{padding-bottom:104px;padding-left:16px;padding-right:16px;font-size:.92rem}}@media (width<=390px){.section{padding-left:14px;padding-right:14px}.site-header{left:8px;right:8px}.brand-text strong{max-width:118px}#bio .content-card h2{font-size:1.85rem}.section-head h2{font-size:2rem}.footer{font-size:.86rem}}}@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-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}
