@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-cyrillic-ext-wght-normal-d45eAU9y.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-cyrillic-wght-normal-BAAhND-U.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-greek-wght-normal-CmyJS8uq.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-vietnamese-wght-normal-Dg1JeJN0.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-latin-ext-wght-normal-CIII54If.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-latin-wght-normal-IvpUvPa2.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff)format("woff")}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){:root,:host{--lx:.5;--ly:.5;--uv-r:0px;--uv-x:50%;--uv-y:50%;--rule-level:#a78bfa}*,: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:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-navy:#121a28;--font-display:"IBM Plex Sans Variable", system-ui, sans-serif;--font-body:"IBM Plex Sans Variable", system-ui, sans-serif}@media print{[role=tabpanel][hidden]{display:block!important}}}@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,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, 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:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fixed{position:fixed}.static{position:static}.sticky{position:sticky}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.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}.flex-wrap{flex-wrap:wrap}.border{border-style:var(--tw-border-style);border-width:1px}.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)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.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{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:var(--font-body);background:var(--bg);color:var(--text);--text:#eef1f6;--text-body:#c5ccd8;--text-2:#a6afbf;--text-3:#8a94a6;--accent:#d8b878;--accent-soft:#ebd3a3;--violet:#9fb2cc;--violet-soft:#cbd7e8;--ok:#7fc8a5;--ok-soft:#b5dec9;--bad:#ef6a5b;--ember:#e08a52;--ember-soft:#efb48c;--paper:#e8e9e3;--paper-ink:#1c2024;--paper-muted:#5d6660;--guilloche:#5f7d74;--bg:#0a0e17;--bg-alt:#0d121d;--bg-deep:#070a11;--surface:#121a28;--surface-2:#182234;--well:#060910;--on-accent:#0a0e17;--line:#becde61c;--line-strong:#becde638;--card:var(--surface);--shadow-card:0 24px 48px -34px #000000d9;--nav-height:76px;--gutter:clamp(18px, 4vw, 56px);--shell:76rem;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-height) + 24px);scrollbar-color:#273246 var(--bg)}body{background:var(--bg);min-width:280px;color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;overflow-x:clip}main{overflow-x:clip}body,button,a{-webkit-tap-highlight-color:transparent}button,a{cursor:pointer}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}img{max-width:100%;display:block}p,li,dd,blockquote{text-wrap:pretty}::selection{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){::selection{background:color-mix(in srgb, var(--accent) 33%, transparent)}}::selection{color:#fff}:focus-visible{outline:2px solid var(--accent);outline-offset:4px}@view-transition{navigation:auto}.site-nav{view-transition-name:site-nav}::view-transition-old(root){animation:.16s ease-in both page-out}::view-transition-new(root){animation:.34s cubic-bezier(.22,1,.36,1) both page-in}::view-transition-group(site-nav){animation:none}::view-transition-old(site-nav){display:none}::view-transition-new(site-nav){animation:none}::view-transition-group(project-shot){z-index:2;animation-duration:.62s;animation-timing-function:cubic-bezier(.22,1,.36,1)}::view-transition-old(project-shot){animation-duration:.62s}::view-transition-new(project-shot){animation-duration:.62s}@keyframes page-out{to{opacity:0}}@keyframes page-in{0%{opacity:0}}@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.page-shell{width:min(100% - 2 * max(var(--gutter), env(safe-area-inset-left) + 8px, env(safe-area-inset-right) + 8px), var(--shell));margin-inline:auto}:is(.cert-card,.course-card,.project-card,.additional-project,.rules-viewer,.run,.article-card,.not-found-card,.achievement,.contact-panel,.learning-path-list a,.case-next,.case-metrics>div,.stat-grid>div){--ring:linear-gradient(var(--ring-line,var(--line-strong)), var(--ring-line,var(--line-strong)))}:is(.cert-card,.course-card,.project-card,.additional-project,.article-card,.achievement,.contact-panel,.learning-path-list a).is-hovering,.learning-path-list a:hover{--ring-line:var(--accent)}@supports (color:color-mix(in lab, red, red)){:is(.cert-card,.course-card,.project-card,.additional-project,.article-card,.achievement,.contact-panel,.learning-path-list a).is-hovering,.learning-path-list a:hover{--ring-line:color-mix(in srgb, var(--accent) 55%, var(--line-strong))}}.icon{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:16px;height:16px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:101;background:var(--text);color:var(--bg);border-radius:8px;padding:12px 16px;position:fixed;top:-70px;left:16px}.skip-link:focus{top:12px}.line-mask{perspective:900px;margin-block:-.08em -.12em;padding-block:.08em .12em;display:block;overflow:hidden}.line{text-wrap:balance;transform-origin:50% 100%;display:block}.button{isolation:isolate;border-radius:var(--radius-sm);letter-spacing:-.01em;white-space:nowrap;min-height:52px;transition:background-color .3s var(--ease-out), border-color .3s var(--ease-out), box-shadow .3s var(--ease-out), color .3s var(--ease-out), filter .3s var(--ease-out);justify-content:center;align-items:center;gap:10px;padding:0 24px;font-size:.92rem;font-weight:600;display:inline-flex;position:relative;overflow:hidden}.button svg{flex:none}.button-primary,.nav-contact,.dock-contact{background:linear-gradient(180deg, var(--accent), var(--accent) 52%, var(--accent))}@supports (color:color-mix(in lab, red, red)){.button-primary,.nav-contact,.dock-contact{background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 84%, white), var(--accent) 52%, color-mix(in srgb, var(--accent) 90%, black))}}.button-primary,.nav-contact,.dock-contact{color:var(--on-accent);box-shadow:inset 0 1px #fff6,inset 0 -1px #0000001f,0 1px 2px #00000080,0 8px 18px -12px #000c}.button-primary:active,.nav-contact:active,.dock-contact:active{filter:brightness(.95)}.button-outline{border:1px solid var(--line-strong);color:var(--text);background:0 0}.button-small{border:1px solid var(--accent);min-height:44px;padding:0 18px}@supports (color:color-mix(in lab, red, red)){.button-small{border:1px solid color-mix(in srgb, var(--accent) 36%, transparent)}}.button-small{color:var(--accent);background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.button-small{background:color-mix(in srgb, var(--accent) 5%, transparent)}}.button-small{font-size:.86rem}.text-link{width:fit-content;color:var(--accent);text-underline-offset:5px;transition:text-decoration-color .25s var(--ease-out);align-items:center;gap:7px;font-size:.9rem;font-weight:600;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;display:inline-flex}@media (hover:hover) and (pointer:fine){.button-primary:hover{filter:brightness(1.07)}.button-outline:hover{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.button-outline:hover{border-color:color-mix(in srgb, var(--accent) 50%, transparent)}}.button-outline:hover{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.button-outline:hover{background:color-mix(in srgb, var(--accent) 6%, transparent)}}.button-small:hover{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.button-small:hover{border-color:color-mix(in srgb, var(--accent) 67%, transparent)}}.button-small:hover{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.button-small:hover{background:color-mix(in srgb, var(--accent) 10%, transparent)}}.text-link:hover{text-decoration-color:currentColor}}.site-nav{z-index:50;height:var(--nav-height);transition:background-color .4s var(--ease-out), border-color .4s var(--ease-out), box-shadow .4s var(--ease-out);border-bottom:1px solid #0000;position:sticky;top:0}.site-nav.is-scrolled{background:var(--bg)}@supports (color:color-mix(in lab, red, red)){.site-nav.is-scrolled{background:color-mix(in srgb, var(--bg) 95%, transparent)}}.site-nav.is-scrolled{border-color:var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.scroll-progress{background:var(--accent);transform-origin:0;opacity:0;height:2px;transition:opacity .4s var(--ease-out);position:absolute;bottom:-1px;left:0;right:0}.is-scrolled .scroll-progress{opacity:1}.nav-inner{align-items:center;gap:32px;height:100%;display:flex}.brand{white-space:nowrap;font-family:var(--font-display);letter-spacing:-.01em;align-items:center;gap:12px;font-weight:600;display:flex}.brand-mark{border:1px solid var(--line-strong);border-radius:50%;flex:none;width:40px;height:40px;padding:2px;display:block;position:relative}.brand-mark:after{content:"";border:1px solid var(--accent);border-radius:inherit;opacity:0;transition:opacity .3s var(--ease-out);position:absolute;inset:-1px}.brand-avatar{object-fit:cover;background:var(--color-navy);border-radius:50%;width:100%;height:100%;display:block}.brand-name{font-size:1rem}.nav-menu{align-items:center;gap:2px;margin-inline:auto;display:flex}.nav-menu>a{white-space:nowrap;color:var(--text-2);transition:color .25s var(--ease-out);border-radius:999px;padding:8px 17px;font-size:.85rem;font-weight:550;position:relative}.nav-menu>a>span:not(.nav-pill){position:relative}.nav-menu>a.is-active{color:var(--text)}.nav-pill{background:var(--accent);border-radius:2px;height:2px;position:absolute;bottom:1px;left:14px;right:14px}.nav-actions{white-space:nowrap;align-items:center;gap:10px;display:flex}.lang-switch{border:1px solid var(--line);background:var(--bg);border-radius:999px;align-items:center;gap:2px;padding:3px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.lang-switch{background:color-mix(in srgb, var(--bg) 60%, transparent)}}.lang-switch a{min-width:40px;height:34px;color:var(--text-3);letter-spacing:.06em;transition:color .25s var(--ease-out);background:0 0;border:0;border-radius:999px;place-items:center;padding:0 10px;font-size:.8rem;font-weight:600;display:inline-grid;position:relative}.lang-switch a[aria-current]{color:var(--text)}.lang-code{position:relative}.lang-pill{border-radius:inherit;box-shadow:inset 0 0 0 1px var(--line-strong);background:#ffffff14;position:absolute;inset:0}.resume-link{color:var(--text-body);align-items:center;gap:8px;padding:10px;font-size:.85rem;font-weight:550;transition:color .2s;display:inline-flex}.nav-contact{border-radius:var(--radius-sm);min-height:42px;transition:filter .25s var(--ease-out);border:0;align-items:center;padding-inline:18px;font-size:.85rem;font-weight:600;display:inline-flex}.nav-toggle{border:1px solid var(--line-strong);border-radius:var(--radius-sm);width:46px;height:46px;color:var(--text);background:#ffffff08;justify-content:center;align-items:center;display:none}.nav-search{border:1px solid var(--line);background:var(--bg);border-radius:999px;align-items:center;gap:9px;height:40px;padding:0 8px 0 12px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.nav-search{background:color-mix(in srgb, var(--bg) 60%, transparent)}}.nav-search{color:var(--text-2);transition:color .2s,border-color .2s}.nav-search kbd{border:1px solid var(--line);color:var(--text-3);letter-spacing:.02em;background:#ffffff08;border-radius:6px;padding:3px 7px;font-family:inherit;font-size:.74rem;font-weight:600}@media (hover:hover) and (pointer:fine){.nav-search:hover{border-color:var(--line-strong);color:var(--text)}.brand:hover .brand-mark:after{content:"";border:1px solid var(--accent);border-radius:inherit;opacity:0;transition:opacity .3s var(--ease-out);position:absolute;inset:-1px}.nav-menu>a:hover,.lang-switch a:hover{color:var(--text)}.resume-link:hover{color:var(--accent)}.nav-contact:hover{filter:brightness(1.07)}}.to-top{z-index:59;right:max(18px, env(safe-area-inset-right) + 10px);bottom:max(18px, env(safe-area-inset-bottom) + 10px);background:var(--surface);border:0;border-radius:50%;place-items:center;width:50px;height:50px;padding:0;display:grid;position:fixed}@supports (color:color-mix(in lab, red, red)){.to-top{background:color-mix(in srgb, var(--surface) 90%, transparent)}}.to-top{color:var(--text);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 16px 36px -12px #000000d9,inset 0 1px #ffffff14}.to-top-ring{width:100%;height:100%;position:absolute;inset:0;transform:rotate(-90deg)}.to-top-ring circle{fill:none;stroke-width:2px}.to-top-track{stroke:var(--text-2)}@supports (color:color-mix(in lab, red, red)){.to-top-track{stroke:color-mix(in srgb, var(--text-2) 20%, transparent)}}.to-top-fill{stroke:var(--accent);stroke-linecap:round}@media (hover:hover) and (pointer:fine){.to-top:hover{color:var(--accent)}}.sheet-backdrop{z-index:90;background:var(--well);position:fixed;inset:0}@supports (color:color-mix(in lab, red, red)){.sheet-backdrop{background:color-mix(in srgb, var(--well) 82%, transparent)}}.menu-sheet{z-index:91;left:8px;right:8px;bottom:max(8px, env(safe-area-inset-bottom));border:1px solid var(--line-strong);background:var(--surface);border-radius:28px;max-width:560px;margin-inline:auto;padding:10px 20px 20px;position:fixed;box-shadow:0 -24px 70px #000000b0,inset 0 1px #ffffff14}.sheet-handle{background:var(--text-2);border-radius:99px;width:42px;height:5px;margin:0 auto 10px}@supports (color:color-mix(in lab, red, red)){.sheet-handle{background:color-mix(in srgb, var(--text-2) 40%, transparent)}}.sheet-top{color:var(--text-3);justify-content:space-between;align-items:center;font-size:.85rem;display:flex}.sheet-close{width:44px;height:44px;color:var(--text);background:#ffffff0d;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.sheet-links{margin-top:4px;display:grid}.sheet-links a{border-bottom:1px solid var(--line);min-height:64px;font-family:var(--font-display);letter-spacing:-.028em;align-items:center;font-size:1.6rem;font-weight:600;display:flex}.sheet-links a.is-active{color:var(--accent)}.sheet-actions{grid-template-columns:1.3fr 1fr;gap:10px;margin-top:20px;display:grid}.sheet-actions .button{min-height:54px;padding-inline:16px;font-size:.88rem}.mobile-dock{z-index:60;left:16px;right:16px;bottom:max(16px, env(safe-area-inset-bottom));border:1px solid var(--line-strong);background:var(--surface);border-radius:999px;gap:6px;width:fit-content;margin-inline:auto;padding:6px;display:none;position:fixed}@supports (color:color-mix(in lab, red, red)){.mobile-dock{background:color-mix(in srgb, var(--surface) 92%, transparent)}}.mobile-dock{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 18px 40px -10px #000000d0,inset 0 1px #ffffff12}.dock-contact{border-radius:999px;align-items:center;gap:8px;min-height:48px;padding-inline:20px;font-size:.9rem;font-weight:600;display:inline-flex}.hero-section{margin-top:calc(var(--nav-height) * -1);padding:calc(var(--nav-height) + clamp(32px, 4.5vw, 72px)) 0 clamp(48px, 5vw, 76px);border-bottom:1px solid var(--line);background:var(--bg);position:relative}.hero-grid{grid-template-columns:minmax(0,1.12fr) minmax(320px,.88fr);grid-template-areas:"copy card";align-items:center;gap:clamp(40px,6vw,96px);display:grid}.hero-copy{grid-area:copy;min-width:0}@keyframes hero-line{0%{opacity:0;transform:translateY(70%)}}@keyframes hero-rise{0%{opacity:0;transform:translateY(16px)}}@keyframes hero-fade{0%{opacity:.01}}.hero-card{grid-area:card;justify-self:end;width:100%;min-width:0;max-width:29.375rem;animation:.9s cubic-bezier(.22,1,.36,1) .15s both hero-fade}.hero-line{animation:1s cubic-bezier(.16,1,.3,1) both hero-line;animation-delay:calc(.1s + var(--step) * 80ms)}.hero-rise{animation:.9s cubic-bezier(.22,1,.36,1) both hero-rise;animation-delay:calc(.1s + var(--step) * 80ms)}@media (prefers-reduced-motion:reduce){.hero-line,.hero-rise{animation-name:hero-fade;animation-duration:.5s}}.hero-title{font-family:var(--font-display);letter-spacing:-.035em;font-size:clamp(2.7rem,5vw,4.6rem);font-weight:600;line-height:.98}.hero-role{max-width:35rem;color:var(--text);font-family:var(--font-display);letter-spacing:-.01em;margin-top:28px;font-size:clamp(1.2rem,1.8vw,1.5rem);font-weight:500;line-height:1.35}.hero-role .role-credential{white-space:nowrap}.hero-value{max-width:32.5rem;color:var(--text-2);margin-top:14px;font-size:1.04rem;line-height:1.7}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:34px;display:flex}.hero-proof{border-top:1px solid var(--line);align-items:center;gap:18px;max-width:32.5rem;margin-top:36px;padding-top:26px;display:flex}.hero-medal,.hero-medal-tilt{flex:none;display:block}.hero-badge{filter:drop-shadow(0 10px 14px #00000080);width:clamp(76px,7vw,92px);height:auto;display:block}.hero-proof-text{gap:3px;margin:0;display:grid}.hero-proof-text strong{color:var(--text);font-size:1.02rem;font-weight:600}.hero-proof-text span{color:var(--text-2);font-size:.92rem}.hero-proof-text a{color:var(--accent-soft);text-underline-offset:4px;justify-self:start;align-items:center;gap:6px;margin-top:4px;font-size:.9rem;font-weight:600;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;transition:text-decoration-color .2s;display:inline-flex}@media (hover:hover) and (pointer:fine){.hero-proof-text a:hover{text-decoration-color:currentColor}}@media (pointer:coarse){.hero-proof-text a{margin-block:-7px -11px;padding-block:11px}}@property --lx{syntax:"<number>";inherits:true;initial-value:.5}@property --ly{syntax:"<number>";inherits:true;initial-value:.5}.credential{--lx:.5;--ly:.5;--ink:#0e1420;--foil:linear-gradient(100deg, #a8844a, #f1dca4 20%, #b89254 38%, #f3e1ad 56%, #a8844a 74%, #e9d196 90%, #b89254);--uv-x:50%;--uv-y:50%;transition:--lx .6s var(--ease-out), --ly .6s var(--ease-out);color:var(--ink);background:url(/assets/guilloche-CxExI8_9.svg) 50%/cover no-repeat,linear-gradient(135deg,#f8f6f0 0%,#ece8de 44%,#f6f3ec 56%,#e4dfd3 100%);border-radius:18px;margin:0;padding:30px 24px 18px;position:relative;box-shadow:inset 0 0 0 1px #ffffffc0,0 0 0 1px #0000002b,0 2px 3px -1px #00000040,0 22px 34px -20px #000000a6,0 60px 90px -46px #000000d9}.credential:after{content:"";pointer-events:none;border:1px solid #5f7d7440;border-radius:12px;position:absolute;inset:9px}.credential-slot{background:var(--bg);border-radius:6px;width:58px;height:10px;margin-left:-29px;position:absolute;top:12px;left:50%;box-shadow:inset 0 1px 3px #000000b3,0 0 0 2px #d9dce0,0 0 0 3px #8e949b,0 1px 3px 3px #00000026}.credential-band{z-index:1;background:linear-gradient(180deg, #1b2435, var(--ink));border-radius:7px;justify-content:space-between;align-items:center;gap:12px;margin:8px 0 18px;padding:10px 12px 10px 14px;display:flex;position:relative;box-shadow:inset 0 1px #ffffff14}.credential-band>span:first-child{background:var(--foil) calc(var(--lx) * 100%) 50% / 260% 100%;color:#0000;letter-spacing:.04em;-webkit-background-clip:text;background-clip:text;font-size:.86rem;font-weight:600}.credential-foil{background:repeating-linear-gradient(115deg, #ffffff47 0 1px, transparent 1px 3px), linear-gradient(110deg, #c9b37e, #eee6cc 12%, #9fd0c1 24%, #c6b6e4 36%, #f1daa2 48%, #9fd0c1 60%, #c6b6e4 72%, #eee6cc 84%, #b3a06c) calc(var(--lx) * 100%) 0 / 320% 100%;width:54px;height:16px;filter:hue-rotate(calc((var(--ly) - .5) * 110deg)) saturate(1.15);border-radius:3px;flex:none;box-shadow:inset 0 0 0 1px #fff6}.credential-body{grid-template-columns:38% minmax(0,1fr);align-items:start;gap:18px;display:grid;position:relative}.credential-photo{z-index:3;aspect-ratio:4/5;object-fit:cover;object-position:center 22%;background:#d6d3ca;border:3px solid #fbfaf6;border-radius:8px;width:100%;display:block;position:relative;box-shadow:0 0 0 1px #0e14202e,0 8px 16px -10px #00000080}.credential-fields{z-index:1;gap:11px;min-width:0;padding-top:2px;display:grid;position:relative}.credential-fields dt{color:#6a7068;letter-spacing:.07em;font-size:.74rem;font-weight:600}.credential-fields dd{color:var(--ink);margin:2px 0 0;font-size:.88rem;font-weight:500;line-height:1.3}.credential-fields .credential-name{font-family:var(--font-display);letter-spacing:-.012em;font-size:1.24rem;font-weight:600}.credential-id{font-family:var(--font-mono);letter-spacing:.05em;font-size:.86rem!important}.credential-foot{justify-content:space-between;align-items:center;gap:12px;margin-top:18px;display:flex;position:relative}.credential-verify{color:#1f4e3d;letter-spacing:.01em;text-underline-offset:3px;transition:color .35s var(--ease-out), text-decoration-color .2s ease;align-items:center;gap:9px;font-size:.86rem;font-weight:600;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;display:inline-flex}.credential-seal{background:conic-gradient(from calc(30deg + (var(--lx) - .5) * 300deg), #cfe5da, #eadcb2, #d9cbec, #bfe2d6, #f0e1b9, #cfe5da);color:#1f4e3d;border-radius:50%;place-items:center;width:28px;height:28px;display:grid;box-shadow:inset 0 0 0 1px #ffffffb3,0 1px 3px #0000004d}.credential-chip{background:linear-gradient(115deg, transparent calc(var(--lx) * 140% - 45%), #ffffffc0 calc(var(--lx) * 140% - 20%), transparent calc(var(--lx) * 140% + 5%)), linear-gradient(90deg, transparent 32%, #7a5f2e59 32% 34%, transparent 34% 66%, #7a5f2e59 66% 68%, transparent 68%), linear-gradient(0deg, transparent 46%, #7a5f2e59 46% 54%, transparent 54%), linear-gradient(135deg, #b8955a, #f2dfa8 40%, #c9a766 70%, #e8d198);border-radius:6px;flex:none;width:40px;height:30px;box-shadow:inset 0 0 0 1px #7a5f2e66,0 1px 2px #0003}.credential-line{z-index:1;color:#0e14208c;font-family:var(--font-mono);letter-spacing:.16em;white-space:nowrap;text-overflow:clip;border-top:1px solid #0e14201f;margin-top:14px;padding-top:10px;font-size:.72rem;position:relative;overflow:hidden}@media (hover:hover) and (pointer:fine){.credential-verify:hover{text-decoration-color:currentColor}}.credential-verify:focus-visible{outline-color:#1f4e3d}@property --uv-r{syntax:"<length>";inherits:true;initial-value:0}@property --uv-x{syntax:"<length-percentage>";inherits:true;initial-value:50%}@property --uv-y{syntax:"<length-percentage>";inherits:true;initial-value:50%}.credential{isolation:isolate;--uv-r:0px;--uv-at:var(--uv-x) var(--uv-y)}.credential[data-lamp]{--uv-r:118px;transition:--lx .6s var(--ease-out), --ly .6s var(--ease-out), --uv-r .45s var(--ease-out)}.credential.is-uv{--uv-r:760px;--uv-at:50% 40%}.credential-band,.credential-slot{z-index:3}.credential-seal,.credential-chip{z-index:3;position:relative}.credential-uv-dark,.credential-uv-tint,.credential-uv-ink{z-index:2;border-radius:inherit;pointer-events:none;-webkit-mask-image:radial-gradient(circle var(--uv-r) at var(--uv-at), #000 calc(100% - 1px), #0000 100%);-webkit-mask-image:radial-gradient(circle var(--uv-r) at var(--uv-at), #000 calc(100% - 1px), #0000 100%);-webkit-mask-image:radial-gradient(circle var(--uv-r) at var(--uv-at), #000 calc(100% - 1px), #0000 100%);-webkit-mask-image:radial-gradient(circle var(--uv-r) at var(--uv-at), #000 calc(100% - 1px), #0000 100%);mask-image:radial-gradient(circle var(--uv-r) at var(--uv-at), #000 calc(100% - 1px), #0000 100%);position:absolute;inset:0}.credential-uv-dark{mix-blend-mode:difference;background:#fff}.credential-uv-tint{mix-blend-mode:screen;background:radial-gradient(120% 90% at 50% 35%,#3d2c96,#2a1d6e)}.credential-uv-ink{mix-blend-mode:screen;background:radial-gradient(circle var(--uv-r) at var(--uv-at), #0000 calc(100% - 10px), #9b7bff40 calc(100% - 3px), #cbbcff 100%)}.credential-uv-glow,.credential-uv-print,.credential-uv-frame,.credential-uv-fibres{width:100%;height:100%;position:absolute;inset:0}.credential-uv-glow{-webkit-mask:none 0 0/100% 100% no-repeat;mask:none 0 0/100% 100% no-repeat}.credential-uv-print{background:linear-gradient(115deg,#74ffd0,#6fd3ff 35%,#c6a6ff 62%,#ff9bdc 88%);-webkit-mask:url(/assets/uv-guilloche-Bn37Qf1b.svg) 50%/cover no-repeat;mask:url(/assets/uv-guilloche-Bn37Qf1b.svg) 50%/cover no-repeat}.credential-uv-frame{background:0 0/100% 100% no-repeat}.credential-fields dt,.credential-line{transition:color .35s var(--ease-out)}.credential:is(.is-uv,[data-lamp],[data-pass]) .credential-fields dt{color:#353a34}.credential:is(.is-uv,[data-lamp],[data-pass]) .credential-line{color:#0e1420cc}.credential.is-uv .credential-verify{color:#781e4b}.credential.is-uv:after{opacity:0}.credential:after{transition:opacity .35s var(--ease-out)}.credential.is-uv :is(.credential-uv-dark,.credential-uv-tint,.credential-uv-ink){animation:.7s linear both uv-on;-webkit-mask-image:none;mask-image:none}.credential-uv-fibres{will-change:opacity}.credential.is-uv .credential-uv-fibres{animation:uv-fibre .6s calc(.4s + var(--wave) * .22s) both}@keyframes uv-on{0%{opacity:0}9%{opacity:.85}16%{opacity:.2}27%{opacity:1}35%{opacity:.6}46%,to{opacity:1}}@keyframes uv-fibre{0%{opacity:0}35%{opacity:1}55%{opacity:.35}to{opacity:1}}.hero-card{isolation:isolate;position:relative}.hero-card:before{content:"";z-index:-1;opacity:0;pointer-events:none;transition:opacity .8s var(--ease-out);background:radial-gradient(closest-side,#6d4dff4d,#6d4dff17 62%,#6d4dff00);position:absolute;inset:-12% -16%}.hero-card:has(.credential.is-uv):before{opacity:1}.credential-uv-toggle{border:1px solid var(--line-strong);width:fit-content;min-height:40px;color:var(--text-2);transition:color .25s var(--ease-out), border-color .25s var(--ease-out), background-color .25s var(--ease-out);background:0 0;border-radius:999px;align-items:center;gap:8px;margin:14px 0 0 auto;padding:0 15px;font-size:.84rem;font-weight:600;display:flex}.credential-uv-toggle svg{color:#b5a2ff;transition:color .25s var(--ease-out), filter .25s var(--ease-out)}.credential-uv-toggle[aria-pressed=true]{color:var(--text);background:#8e6bff1f;border-color:#8e6bff8c}.credential-uv-toggle[aria-pressed=true] svg{color:#ddd2ff;filter:drop-shadow(0 0 5px #9b7bff)}@media (hover:hover) and (pointer:fine){.credential-uv-toggle:hover{color:var(--text);border-color:#8e6bff8c}}@media (prefers-reduced-motion:reduce){.credential,.credential[data-lamp]{transition:none}.credential.is-uv :is(.credential-uv-dark,.credential-uv-tint,.credential-uv-ink,.credential-uv-fibres){animation:none}}@media (forced-colors:active){.credential-uv-dark,.credential-uv-tint,.credential-uv-ink,.credential-uv-toggle{display:none}}.section{padding-block:clamp(44px,5vw,68px);position:relative}:is(.certifications-section,.work-section,.writing-section,.about-section,.contact-section,.site-footer){content-visibility:auto;contain-intrinsic-size:auto 1400px}@media print{:is(.certifications-section,.work-section,.writing-section,.about-section,.contact-section,.site-footer){content-visibility:visible}}.section-heading{margin-bottom:clamp(24px,3vw,40px)}.section-heading h2,.about-heading h2,.contact-panel h2{font-family:var(--font-display);letter-spacing:-.028em;font-size:clamp(2.4rem,4.4vw,4.3rem);font-weight:600;line-height:1.02}.section-heading>p{max-width:60ch;color:var(--text-2);margin-top:14px;font-size:.98rem;line-height:1.65}:where([data-spotlight]>:not(.spotlight)){position:relative}.spotlight{border-radius:inherit;pointer-events:none;position:absolute;inset:0;overflow:hidden}.spotlight-glow{display:none}.zoom-hint{background:var(--well);border:1px solid #ffffff24;border-radius:999px;align-items:center;gap:8px;padding:8px 13px;display:inline-flex;position:absolute;bottom:12px;right:12px}@supports (color:color-mix(in lab, red, red)){.zoom-hint{background:color-mix(in srgb, var(--well) 88%, transparent)}}.zoom-hint{color:var(--text);opacity:0;transition:opacity .3s var(--ease-out), transform .45s var(--ease-out);font-size:.84rem;font-weight:600;transform:translateY(6px)}:is(button,a):hover .zoom-hint,:is(button,a):focus-visible .zoom-hint{opacity:1;transform:none}@media (hover:none){.zoom-hint{opacity:1;padding:9px;transform:none}.zoom-hint>span{display:none}}.certifications-section{border-top:1px solid var(--line);background:var(--bg);padding-top:clamp(56px,6vw,88px)}.cert-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.learning-paths{margin-top:28px}.learning-paths h3{color:var(--text-2);font-family:var(--font-display);margin:0 0 14px;font-size:1.08rem;font-weight:600}.learning-path-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.learning-path-list a{--edge:var(--ok);border-radius:var(--radius-md);background:linear-gradient(var(--surface), var(--surface)) padding-box, var(--ring) border-box;border:1px solid #0000;align-content:start;gap:2px;padding:15px 44px 15px 16px;display:grid;position:relative}.learning-path-list>.path-item{min-width:0;display:grid}@media (width>=701px) and (width<=1099px){.learning-path-list{grid-template-columns:repeat(6,minmax(0,1fr))}.learning-path-list>.path-item{grid-column:span 2}.learning-path-list>.path-item:nth-child(3n+1):nth-last-child(2),.learning-path-list>.path-item:nth-child(3n+1):nth-last-child(2)+.path-item{grid-column:span 3}.learning-path-list>.path-item:nth-child(3n+1):last-child{grid-column:1/-1}}.learning-path-list .path-done{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);align-content:start;gap:2px;margin:0;padding:15px 16px;display:grid;position:relative}.learning-path-list strong{margin-bottom:4px}.learning-path-list .path-hours{color:var(--text-body);font-size:.86rem}.learning-path-list .path-date{color:var(--text-3);font-size:.86rem}.learning-path-list strong{color:var(--text);font-size:.94rem;font-weight:600}.learning-path-list svg{color:var(--ok-soft);position:absolute;top:16px;right:15px}@media (width>=1100px){.learning-path-list{grid-template-columns:repeat(var(--paths,5), minmax(0, 1fr))}}@media (width<=700px){.learning-path-list :is(a,.path-done){grid-template-columns:minmax(0,1fr) auto;align-items:baseline;column-gap:12px;padding-block:13px}.learning-path-list .path-date{grid-area:1/2}.learning-path-list .path-hours{grid-column:1/-1}}.cert-card{border-radius:var(--radius-lg);background:linear-gradient(var(--card), var(--card)) padding-box, var(--ring) border-box;min-width:0;box-shadow:var(--shadow-card);transform-origin:50% 100%;transition:border-color .4s var(--ease-out), box-shadow .6s var(--ease-out);border:1px solid #0000;flex-direction:column;padding:12px;display:flex;position:relative}.cert-card.is-certification{--edge:var(--ok);--glow:var(--ok)}.cert-card.is-training{--edge:var(--violet);--glow:var(--violet)}.cert-card.is-hovering{box-shadow:var(--shadow-card)}.courses{margin-top:28px}.courses h3{color:var(--text-2);font-family:var(--font-display);margin:0 0 14px;font-size:1.08rem;font-weight:600}.course-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.course-card{--edge:var(--ok);--glow:var(--ok);border-radius:var(--radius-lg);background:linear-gradient(var(--card), var(--card)) padding-box, var(--ring) border-box;transform-origin:50% 100%;border:1px solid #0000;flex-direction:column;min-width:0;padding:10px;display:flex;position:relative}.course-card.is-hovering{box-shadow:var(--shadow-card)}.course-card .cert-preview{flex:none}.course-card .cert-preview img{aspect-ratio:1157/887;object-fit:cover}.course-body{flex-direction:column;flex:1;gap:4px;padding:14px 6px 6px;display:flex}.course-body h4{color:var(--text);text-wrap:balance;font-size:.98rem;font-weight:600;line-height:1.3}.course-body p{color:var(--text-2);font-size:.86rem;line-height:1.45}.course-body .course-date{color:var(--text-3)}.course-body .text-link{margin-top:auto;padding-top:10px;font-size:.86rem}@media (width<=1099px){.course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.course-card{flex-direction:row;align-items:flex-start;gap:16px}.course-card .cert-preview{width:44%}.course-body{align-self:stretch;padding:4px 4px 2px 0}}@media (width<=700px){.course-grid{grid-template-columns:minmax(0,1fr);gap:10px}.course-card{gap:14px;padding:8px}.course-card .cert-preview{width:42%}}.cert-preview{border-radius:var(--radius-sm);background:var(--well);cursor:zoom-in;width:100%;padding:0;display:block;position:relative}.cert-preview img{border-radius:calc(var(--radius-sm) - 2px);width:100%;height:auto}.cert-body{gap:6px;padding:20px 10px 10px;display:grid}.cert-kind{border:1px solid;border-radius:999px;align-items:center;gap:7px;width:fit-content;margin-bottom:4px;padding:5px 11px 5px 9px;font-size:.84rem;font-weight:600;display:inline-flex}.cert-kind.is-certification{border-color:var(--ok)}@supports (color:color-mix(in lab, red, red)){.cert-kind.is-certification{border-color:color-mix(in srgb, var(--ok) 25%, transparent)}}.cert-kind.is-certification{background:var(--ok)}@supports (color:color-mix(in lab, red, red)){.cert-kind.is-certification{background:color-mix(in srgb, var(--ok) 6%, transparent)}}.cert-kind.is-certification{color:var(--ok-soft)}.cert-kind.is-training{border-color:var(--violet)}@supports (color:color-mix(in lab, red, red)){.cert-kind.is-training{border-color:color-mix(in srgb, var(--violet) 30%, transparent)}}.cert-kind.is-training{background:var(--violet)}@supports (color:color-mix(in lab, red, red)){.cert-kind.is-training{background:color-mix(in srgb, var(--violet) 7%, transparent)}}.cert-kind.is-training{color:var(--violet-soft)}.cert-body h3{font-family:var(--font-display);letter-spacing:-.022em;font-size:1.35rem;font-weight:700}.cert-body p{color:var(--text-2);font-size:.92rem;line-height:1.5}.cert-body .cert-id span{color:var(--text);font-variant-numeric:tabular-nums;letter-spacing:.02em}.cert-body .text-link{margin-top:8px}@media (width>=701px){.cert-card{flex-direction:row;align-items:center;gap:22px}.cert-preview{flex:0 0 47%}.cert-body{align-content:center;padding:8px 8px 8px 0}.cert-body h3{font-size:1.22rem;line-height:1.2}}@media (width>=701px) and (width<=1100px){.cert-grid{grid-template-columns:1fr}.cert-preview{flex-basis:42%}}.achievement{--edge:var(--ok);--glow:var(--ok);border-radius:var(--radius-lg);background:linear-gradient(var(--surface), var(--surface)) padding-box, var(--ring) border-box;box-shadow:var(--shadow-card);transform-origin:50% 100%;transition:border-color .4s var(--ease-out);border:1px solid #0000;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:18px clamp(20px,3vw,40px);margin-top:20px;padding:22px clamp(20px,3vw,32px);display:grid;position:relative}.achievement-rank{color:var(--ok);font-family:var(--font-display);letter-spacing:-.028em;white-space:nowrap;font-size:clamp(2.2rem,4vw,3.2rem);font-weight:700}.achievement-text{justify-items:start;gap:4px;min-width:0;display:grid}.achievement-text strong{font-size:1.05rem;font-weight:600}.achievement-text>span{color:var(--text-2);font-size:.92rem;line-height:1.5}.achievement-link{color:var(--accent);white-space:nowrap;align-items:center;gap:7px;margin-top:8px;font-size:.9rem;font-weight:600;display:inline-flex}.achievement-leagues{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.achievement-leagues li{min-width:0;display:grid}.achievement-leagues a{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--text);align-content:start;justify-items:center;gap:8px;padding:14px 10px 12px;display:grid}@supports (color:color-mix(in lab, red, red)){.achievement-leagues a{background:color-mix(in srgb, var(--text) 2.5%, transparent)}}.achievement-leagues a{text-align:center;transition:background-color .25s var(--ease-out), border-color .25s var(--ease-out)}.achievement-leagues img{filter:drop-shadow(0 6px 10px #00000080);width:auto;height:64px;transition:transform .45s var(--ease-out)}.achievement-leagues a>span{gap:2px;font-size:.84rem;line-height:1.35;display:grid}.achievement-leagues strong{color:var(--text);font-weight:600}.achievement-leagues strong svg{color:var(--text-3);vertical-align:-1px;margin-left:3px;display:inline}.achievement-leagues a>span>span,.achievement-leagues time{color:var(--text-2)}.achievement-leagues :is(strong,time){white-space:nowrap}@media (hover:hover) and (pointer:fine){.achievement-leagues a:hover{border-color:var(--ok)}@supports (color:color-mix(in lab, red, red)){.achievement-leagues a:hover{border-color:color-mix(in srgb, var(--ok) 40%, var(--line))}}.achievement-leagues a:hover{background:var(--text)}@supports (color:color-mix(in lab, red, red)){.achievement-leagues a:hover{background:color-mix(in srgb, var(--text) 5%, transparent)}}.achievement-leagues a:hover img{transform:translateY(-3px)scale(1.04)}}@media (width<=1099px){.achievement{grid-template-columns:auto minmax(0,1fr)}.achievement-leagues{grid-column:1/-1}}.argus-city{isolation:isolate;align-items:end;min-height:min(80svh,760px);display:grid;position:relative}.city-picture{z-index:-1;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#0000,#000 16% 58%,#0000 96%);mask-image:linear-gradient(#0000,#000 16% 58%,#0000 96%)}.city-picture img{object-fit:cover;width:100%;height:100%}.city-picture:after{content:"";background:linear-gradient(90deg,#05070de0,#05070da6 34%,#0000 62%),linear-gradient(#0000 38%,#05070d99 80%);position:absolute;inset:0}.city-copy{padding-block:140px clamp(44px,9vh,96px)}.city-title{color:#fff;font-family:var(--font-display);letter-spacing:.14em;text-shadow:0 0 60px #7b5cff8c;margin-top:4px;font-size:clamp(3rem,8.4vw,6.6rem);font-weight:200;line-height:.95}.city-line{color:#fff;max-width:30rem;font-family:var(--font-display);text-wrap:balance;text-shadow:0 2px 24px #000000b0;margin-top:18px;font-size:clamp(1.15rem,1.9vw,1.5rem);font-weight:300;line-height:1.3}.city-actions{flex-wrap:wrap;align-items:center;gap:14px 26px;margin-top:28px;display:flex}@media (width<=700px){.argus-city{min-height:min(84svh,700px)}.city-copy{padding-top:110px}.city-picture:after{background:linear-gradient(#0000 26%,#05070de6 66%)}}.argus-film{background:var(--bg);height:360vh;scroll-margin-top:calc(-1 * (var(--nav-height) + 24px));position:relative}.film-stage{--p:0;isolation:isolate;height:100svh;position:sticky;top:0;overflow:hidden}.film-visual{background:#140f33;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#0000,#000 14% 64%,#0000 98%);mask-image:linear-gradient(#0000,#000 14% 64%,#0000 98%)}.film-poster,.film-poster img,.film-canvas{width:100%;height:100%;position:absolute;inset:0}.film-clouds{--o:clamp(0, var(--p) / .16, 1);z-index:1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.cloud{background:50%/cover no-repeat;position:absolute;inset:0}.cloud-bank{opacity:calc(1 - var(--o) * 3);transform:scale(calc(1.14 - var(--e,1) * .14 + var(--o) * .3))}.cloud-left,.cloud-right{opacity:clamp(0, (1 - var(--o)) * 2.5, 1)}.cloud-left{transform:translateX(calc(var(--o) * -90%)) scale(calc(1 + var(--o) * .25));transform-origin:0}.cloud-right{transform:translateX(calc(var(--o) * 90%)) scale(calc(1 + var(--o) * .25));transform-origin:100%}.cloud-wisps{opacity:calc(1 - var(--o) * 1.35);transform:translateY(calc((1 - var(--e,1)) * 6%)) scale(calc(1 + var(--o) * 1.4))}@media (aspect-ratio<=9/10){.cloud-left{background-position:63%}.cloud-right{background-position:27%}}.film-stage[data-clear] .film-clouds{visibility:hidden}.film-stage[data-seen] .film-clouds{display:none}.flight-skip{top:calc(var(--nav-height) + 14px);right:max(var(--gutter), env(safe-area-inset-right));z-index:3;border:1px solid var(--glass-edge,var(--line-strong));background:var(--surface);border-radius:999px;align-items:center;gap:6px;min-height:40px;padding:0 14px;display:inline-flex;position:absolute}@supports (color:color-mix(in lab, red, red)){.flight-skip{background:color-mix(in srgb, var(--surface) 64%, transparent)}}.flight-skip{-webkit-backdrop-filter:blur(16px)saturate(150%);backdrop-filter:blur(16px)saturate(150%);color:var(--text);opacity:clamp(0, (.8 - var(--p)) * 10, 1);transition:border-color .25s var(--ease-out);font-size:.86rem;font-weight:600}.flight-skip svg{width:15px;height:15px}.film-stage[data-end] .flight-skip{visibility:hidden}@media (hover:hover) and (pointer:fine){.flight-skip:hover{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.flight-skip:hover{border-color:color-mix(in srgb, var(--accent) 55%, transparent)}}}.film-poster img{object-fit:cover}.film-canvas{opacity:0;transition:opacity .8s var(--ease-out)}.film-stage.is-playing .film-canvas{opacity:1}.film-shade{z-index:1;pointer-events:none;background:linear-gradient(to bottom, transparent 46%, #05070d8c 90%), radial-gradient(ellipse 70% 60% at 18% 88%, var(--bg), transparent 70%);position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.film-shade{background:linear-gradient(to bottom, transparent 46%, #05070d8c 90%), radial-gradient(ellipse 70% 60% at 18% 88%, color-mix(in srgb, var(--bg) 72%, transparent), transparent 70%)}}.film-shade:after{content:"";background:radial-gradient(ellipse 80% 70% at 50% 52%, var(--bg), var(--bg) 70%, var(--bg));position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.film-shade:after{background:radial-gradient(ellipse 80% 70% at 50% 52%, color-mix(in srgb, var(--bg) 74%, transparent), color-mix(in srgb, var(--bg) 92%, transparent) 70%, var(--bg))}}.film-shade:after{opacity:clamp(0, (var(--p) - .78) * 5, .92)}.film-copy{z-index:2;pointer-events:none;align-items:end;padding-bottom:clamp(56px,12vh,128px);display:grid;position:absolute;inset:0}.film-beat{--v:calc(clamp(0, (var(--p) - var(--a)) * 24, 1) * clamp(0, (var(--b) - var(--p)) * 24, 1));max-width:34rem;opacity:var(--v);transform:translateY(calc((1 - var(--v)) * 28px));grid-area:1/1}.film-beat.is-large{max-width:46rem}.film-kicker{color:var(--accent);letter-spacing:.02em;margin-bottom:14px;font-size:.92rem;font-weight:600}.film-text{color:#fff;font-family:var(--font-display);letter-spacing:-.02em;text-wrap:balance;text-shadow:0 2px 28px #000000a0;font-size:clamp(1.7rem,3.3vw,2.9rem);font-weight:300;line-height:1.14}.film-beat.is-large .film-text{letter-spacing:-.035em;font-size:clamp(2.2rem,5.4vw,4.9rem);font-weight:250;line-height:1.04}.film-note{max-width:46ch;color:var(--text-body);text-shadow:0 1px 18px #000000b0;margin-top:18px;font-size:1.02rem;line-height:1.6}.film-end{text-align:center;place-self:center;max-width:52rem}.film-end h2{color:#fff;font-family:var(--font-display);letter-spacing:.14em;text-indent:.14em;text-transform:uppercase;text-shadow:0 0 60px #7b5cff8c;font-size:clamp(2.5rem,7.4vw,6.4rem);font-weight:200;line-height:.95}.film-end .film-note{margin-inline:auto}.film-actions{pointer-events:auto;flex-wrap:wrap;justify-content:center;align-items:center;gap:14px 26px;margin-top:30px;display:flex}.film-stage:not([data-end]) .film-end{visibility:hidden}.film-hint{z-index:2;color:var(--text-2);letter-spacing:.02em;opacity:clamp(0, (.05 - var(--p)) * 30, 1);white-space:nowrap;font-size:.86rem;position:absolute;bottom:clamp(18px,4vh,36px);left:50%;transform:translate(-50%)}.film-progress{z-index:2;background:#ffffff14;height:2px;position:absolute;bottom:0;left:0;right:0}.film-progress span{background:var(--accent);height:100%;transform:scaleX(var(--p));transform-origin:0;display:block}@media (width<=700px){.argus-film{height:320vh}.film-copy{padding-bottom:calc(104px + env(safe-area-inset-bottom))}.film-kicker{margin-bottom:10px;font-size:.86rem}.film-text{font-size:clamp(1.45rem,6.4vw,1.9rem)}.film-beat.is-large .film-text{font-size:clamp(2rem,9.6vw,2.7rem)}.film-note{font-size:.95rem}.film-shade{background:linear-gradient(#0000 36%,#05070dc2 82%)}}@media (prefers-reduced-motion:reduce),(scripting:none){.argus-film{height:auto}.film-stage{height:auto;position:relative;overflow:visible}.film-visual{background:0 0;position:relative;-webkit-mask-image:none;mask-image:none}.film-poster{aspect-ratio:1200/539;display:block;position:relative}.film-poster img{position:absolute}.film-canvas,.film-hint,.film-progress,.film-shade,.film-clouds,.flight-skip{display:none}.argus-film{scroll-margin-top:0}.film-copy{pointer-events:auto;gap:34px;padding-block:44px 64px;display:grid;position:relative}.film-beat{opacity:1;grid-area:auto;transform:none}.film-stage:not([data-end]) .film-end{visibility:visible}.film-end{text-align:left;justify-self:start}.film-end h2,.film-end .film-note{text-indent:0;margin-inline:0}.film-actions{justify-content:flex-start}}.viewer{z-index:95;place-items:center;padding:clamp(16px,4vw,48px);display:grid;position:fixed;inset:0}.viewer-backdrop{background:var(--well);position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.viewer-backdrop{background:color-mix(in srgb, var(--well) 92%, transparent)}}.viewer-stage{--ratio:1.3;justify-items:center;gap:16px;width:100%;display:grid;position:relative}.viewer-image{width:min(100%, 1200px, calc((100svh - 190px) * var(--ratio)));cursor:grab;touch-action:none;height:auto;box-shadow:0 40px 120px -20px #000}.viewer-image:active{cursor:grabbing}.viewer-caption{width:min(100%, 1200px, calc((100svh - 190px) * var(--ratio)));flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;display:flex}.viewer-caption div{gap:2px;display:grid}.viewer-caption strong{font-family:var(--font-display);font-size:1.1rem;font-weight:600}.viewer-caption span{color:var(--text-2);font-variant-numeric:tabular-nums;font-size:.88rem}.viewer-caption a{color:var(--accent);align-items:center;gap:7px;font-size:.9rem;font-weight:600;display:inline-flex}.viewer-close{top:max(16px, env(safe-area-inset-top));width:48px;height:48px;color:var(--text);background:#ffffff14;border:1px solid #ffffff29;border-radius:50%;place-items:center;display:grid;position:absolute;right:16px}.work-section{border-top:1px solid var(--line);background:var(--bg-alt)}.projects-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;display:grid}.projects-list>.project-card:first-child{grid-column:1/-1}.projects-list>.project-card:not(:first-child){grid-template-rows:auto 1fr;grid-template-columns:1fr;align-items:stretch;gap:24px}.projects-list>.project-card:not(:first-child) .project-info{padding-block:0 4px}.projects-list>.project-card:not(:first-child) .project-info h3{font-size:clamp(1.8rem,2.4vw,2.35rem)}.projects-list>.project-card:not(:first-child) .project-footer{margin-top:auto;padding-top:22px}.project-card{--project:var(--accent);--project-soft:var(--accent-soft);--glow:var(--project);--edge:var(--project)}.project-card.accent-violet{--project:var(--violet);--project-soft:var(--violet-soft)}.project-card.accent-green{--project:var(--ok);--project-soft:var(--ok-soft)}.project-card{border-radius:var(--radius-lg);background:linear-gradient(var(--surface), var(--surface)) padding-box, var(--ring) border-box;min-width:0;box-shadow:var(--shadow-card);transform-origin:50% 100%;transition:border-color .4s var(--ease-out), box-shadow .6s var(--ease-out);border:1px solid #0000;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);align-items:center;gap:clamp(24px,4vw,52px);padding:clamp(16px,2.4vw,28px);display:grid;position:relative}.project-card.is-hovering{box-shadow:var(--shadow-card)}.project-image{border-radius:var(--radius-sm);cursor:zoom-in;width:100%;min-width:0;text-align:inherit;background:0 0;border:0;padding:0;display:block}.project-frame{border:1px solid var(--text-2);display:block;position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.project-frame{border:1px solid color-mix(in srgb, var(--text-2) 21%, transparent)}}.project-frame{border-radius:var(--radius-sm);background:var(--well)}.project-frame img{object-fit:cover;width:100%;height:100%}.frame-curtain{background:var(--surface-2);transform-origin:100%;position:absolute;inset:0}.project-info{flex-direction:column;min-width:0;padding-block:6px;display:flex}.project-category{color:var(--project-soft);font-size:.88rem;font-weight:500}.project-info h3{text-wrap:balance;font-family:var(--font-display);letter-spacing:-.028em;margin-top:8px;font-size:clamp(2rem,3vw,3rem);font-weight:700;line-height:1.05}.project-description{max-width:27.5rem;color:var(--text-body);margin-top:12px;font-size:.95rem;line-height:1.7}.metrics{border-block:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:26px;padding-block:18px;display:grid}.metrics>div{flex-direction:column-reverse;justify-content:flex-end;min-width:0;display:flex}.metrics dd{color:var(--text);font-family:var(--font-display);letter-spacing:-.028em;font-variant-numeric:tabular-nums;margin:0;font-size:clamp(1.4rem,2vw,1.9rem);font-weight:600;line-height:1.2}.metrics dt{color:var(--text-3);margin-top:2px;font-size:.86rem;line-height:1.35}.metrics.is-facts dd{letter-spacing:-.015em;font-size:clamp(1.1rem,1.5vw,1.35rem)}.project-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:22px;display:flex}.project-actions{flex-wrap:wrap;align-items:center;gap:10px 22px;display:flex}.tags{flex-wrap:wrap;gap:6px;display:flex}.tags li{border:1px solid var(--project,var(--accent-soft));padding:6px 11px}@supports (color:color-mix(in lab, red, red)){.tags li{border:1px solid color-mix(in srgb, var(--project,var(--accent-soft)) 30%, transparent)}}.tags li{background:var(--project,var(--accent-soft));border-radius:999px}@supports (color:color-mix(in lab, red, red)){.tags li{background:color-mix(in srgb, var(--project,var(--accent-soft)) 6%, transparent)}}.tags li{color:var(--project-soft,var(--accent-soft));font-size:.84rem}.unit{color:var(--project,var(--accent))}.additional-projects-heading{margin:clamp(48px,6vw,76px) 0 22px}.additional-projects-heading h3{font-family:var(--font-display);letter-spacing:-.028em;font-size:clamp(1.8rem,3vw,2.5rem);font-weight:600}.additional-projects-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:18px;display:grid}.additional-project{--project:var(--accent);--project-soft:var(--accent-soft);--edge:var(--project);--glow:var(--project);border-radius:var(--radius-lg);background:linear-gradient(var(--surface), var(--surface)) padding-box, var(--ring) border-box;min-width:0;box-shadow:var(--shadow-card);transition:box-shadow .6s var(--ease-out);border:1px solid #0000;flex-direction:column;padding:clamp(22px,2.6vw,30px);display:flex;position:relative}.additional-project.accent-violet{--project:var(--violet);--project-soft:var(--violet-soft)}.additional-project.accent-ember{--project:var(--ember);--project-soft:var(--ember-soft)}.additional-project.accent-green{--project:var(--ok);--project-soft:var(--ok-soft)}.additional-project.is-hovering{box-shadow:var(--shadow-card)}.additional-project-main{flex-direction:column;flex:1;min-width:0;display:flex}.additional-project.has-chain{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:start;gap:24px clamp(28px,4vw,56px);display:grid}.attack-chain{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--well);min-width:0;padding:16px 18px 8px}@supports (color:color-mix(in lab, red, red)){.attack-chain{background:color-mix(in srgb, var(--well) 55%, transparent)}}.attack-chain h4{color:var(--text-2);margin-bottom:6px;font-size:.9rem;font-weight:600;line-height:1.4}.attack-chain ol{margin:0;padding:0;list-style:none;display:grid}.attack-chain li{border-top:1px solid var(--line);grid-template-columns:2.2rem minmax(0,1fr) auto;align-items:baseline;gap:12px;padding-block:9px;display:grid}.attack-chain li:first-child{border-top:0}.chain-stage{color:var(--project-soft);font-family:var(--font-mono);font-size:.84rem}.chain-step{color:var(--text-body);font-size:.9rem;line-height:1.4}.chain-events{flex-wrap:wrap;justify-content:flex-end;gap:4px;display:flex}.chain-events code{border:1px solid var(--ok);padding:2px 8px}@supports (color:color-mix(in lab, red, red)){.chain-events code{border:1px solid color-mix(in srgb, var(--ok) 28%, transparent)}}.chain-events code{background:var(--ok);border-radius:999px}@supports (color:color-mix(in lab, red, red)){.chain-events code{background:color-mix(in srgb, var(--ok) 7%, transparent)}}.chain-events code{color:var(--ok-soft);font-family:var(--font-mono);white-space:nowrap;font-size:.82rem}@media (width<=899px){.additional-project.has-chain{grid-template-columns:minmax(0,1fr)}}@media (width<=560px){.attack-chain{padding-inline:14px}.attack-chain li{grid-template-columns:2rem minmax(0,1fr);row-gap:6px}.chain-events{grid-column:2;justify-content:flex-start}}.additional-project-top{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.additional-project-mark{border:1px solid var(--project);flex:none;place-items:center;width:42px;height:42px;display:grid}@supports (color:color-mix(in lab, red, red)){.additional-project-mark{border:1px solid color-mix(in srgb, var(--project) 36%, transparent)}}.additional-project-mark{border-radius:var(--radius-sm);background:var(--project)}@supports (color:color-mix(in lab, red, red)){.additional-project-mark{background:color-mix(in srgb, var(--project) 8%, transparent)}}.additional-project-mark{color:var(--project-soft)}.additional-project h3{font-family:var(--font-display);letter-spacing:-.028em;text-wrap:balance;margin-top:14px;font-size:clamp(1.6rem,2.5vw,2.15rem);font-weight:600;line-height:1.1}.additional-project .project-description{max-width:70ch;margin-top:12px}.additional-project .tags{margin-top:20px}@property --rule-level{syntax:"<color>";inherits:true;initial-value:#a78bfa}.rules-block{margin-top:clamp(56px,7vw,88px)}.rules-heading h3{font-family:var(--font-display);letter-spacing:-.028em;font-size:clamp(1.8rem,3vw,2.5rem);font-weight:600}.rules-heading p{max-width:60ch;color:var(--text-2);margin-top:10px;font-size:.98rem;line-height:1.65}.rules-viewer{--rule-level:var(--violet);--edge:var(--rule-level);--glow:var(--rule-level);border-radius:var(--radius-lg);background:linear-gradient(var(--card), var(--card)) padding-box, var(--ring) border-box;box-shadow:var(--shadow-card);transition:--rule-level .5s var(--ease-out);border:1px solid #0000;grid-template-columns:minmax(230px,.82fr) minmax(0,2fr);margin-top:26px;display:grid;position:relative}.rules-viewer.level-critical{--rule-level:var(--bad)}.rules-viewer.level-high{--rule-level:var(--ember)}.rules-viewer.is-hovering{--ring-a:72%;--ring-b:45%}.rules-tabs{border-right:1px solid var(--line);flex-direction:column;gap:4px;padding:14px;display:flex}.rule-tab{--level:var(--violet);border-radius:var(--radius-sm);width:100%;color:var(--text-2);text-align:left;transition:background-color .25s var(--ease-out), color .25s var(--ease-out);background:0 0;border:0;align-items:flex-start;gap:12px;padding:14px 14px 14px 16px;display:flex;position:relative}.rule-tab.level-critical{--level:var(--bad)}.rule-tab.level-high{--level:var(--ember)}.rule-tab>:not(.rule-tab-indicator){position:relative}.rule-tab[aria-selected=true]{color:var(--text)}.rule-tab-indicator{border-radius:inherit;background:#ffffff0a;position:absolute;inset:0}.rule-tab-indicator:before{content:"";background:var(--level);border-radius:2px;width:2px;transition:background-color .35s;position:absolute;top:12px;bottom:12px;left:0}.rule-tab:focus-visible{outline-offset:-2px}.rule-tab-dot{background:var(--level);width:8px;height:8px;box-shadow:0 0 0 3px var(--level);border-radius:50%;flex:none;margin-top:.45em}@supports (color:color-mix(in lab, red, red)){.rule-tab-dot{box-shadow:0 0 0 3px color-mix(in srgb, var(--level) 18%, transparent)}}.rule-tab-text{gap:5px;min-width:0;display:grid}.rule-tab-title{font-size:.94rem;font-weight:600;line-height:1.35}.rule-tab-meta{color:var(--text-3);flex-wrap:wrap;gap:4px 10px;font-size:.86rem;display:flex}.rule-tab-id{font-variant-numeric:tabular-nums}.rule-panels{min-width:0;display:grid}.rule-panel{--level:var(--violet);opacity:0;visibility:hidden;flex-direction:column;grid-area:1/1;gap:12px;min-width:0;padding:clamp(20px,2.6vw,30px);transition:opacity .2s,transform .2s,visibility 0s .2s;display:flex;transform:translateY(8px)}.rule-panel.is-active{opacity:1;visibility:visible;transition:opacity .35s var(--ease-out) 50ms, transform .45s var(--ease-out) 50ms, visibility 0s;transform:none}.rule-panel.level-critical{--level:var(--bad)}.rule-panel.level-high{--level:var(--ember)}.rule-top{justify-content:space-between;align-items:center;gap:10px;display:flex}.rule-level{border:1px solid var(--level);align-items:center;gap:7px;padding:5px 11px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.rule-level{border:1px solid color-mix(in srgb, var(--level) 40%, transparent)}}.rule-level{background:var(--level);border-radius:999px}@supports (color:color-mix(in lab, red, red)){.rule-level{background:color-mix(in srgb, var(--level) 9%, transparent)}}.rule-level{color:var(--level)}@supports (color:color-mix(in lab, red, red)){.rule-level{color:color-mix(in srgb, var(--level) 70%, white)}}.rule-level{font-size:.84rem;font-weight:600}.rule-level:before{content:"";background:var(--level);border-radius:50%;width:7px;height:7px}.rule-status{color:var(--text-3);font-size:.86rem}.rule-panel h4{font-family:var(--font-display);letter-spacing:-.022em;text-wrap:balance;font-size:clamp(1.3rem,2vw,1.6rem);font-weight:600;line-height:1.2}.rule-summary{max-width:68ch;color:var(--text-2);font-size:.95rem;line-height:1.6}.rule-meta{border-block:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,auto));justify-content:start;gap:8px clamp(20px,3vw,40px);padding-block:14px;font-size:.86rem;display:grid}.rule-meta>div{gap:3px;display:grid}.rule-meta dt{color:var(--text-3);font-size:.86rem}.rule-meta dd{color:var(--text-body)}.rule-meta a{color:var(--accent);font-variant-numeric:tabular-nums;text-decoration:underline;-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);font-weight:600}@supports (color:color-mix(in lab, red, red)){.rule-meta a{-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 33%, transparent);-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 33%, transparent);-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 33%, transparent);text-decoration-color:color-mix(in srgb, var(--accent) 33%, transparent)}}.rule-meta a{text-underline-offset:3px}.rule-editor{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--well);margin-top:4px;overflow:hidden}.rule-editor-bar{border-bottom:1px solid var(--line);background:var(--bg);justify-content:space-between;align-items:center;gap:12px;padding:6px 6px 6px 16px;display:flex}.rule-file{color:var(--text-3);text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.84rem;overflow:hidden}.rule-editor-actions{flex:none;gap:4px;display:flex}.rule-action{min-height:34px;color:var(--text-2);background:0 0;border:0;border-radius:8px;align-items:center;gap:7px;padding:0 12px;font-size:.86rem;font-weight:600;transition:background-color .2s,color .2s;display:inline-flex}.rule-action.is-done{color:var(--ok-soft)}.rule-action.is-done svg{animation:.42s cubic-bezier(.34,1.56,.64,1) tick-pop}@keyframes tick-pop{0%{opacity:0;transform:scale(.4)}}.rule-action:active{transform:scale(.97)}.rule-code{color:var(--text-body);tab-size:2;counter-reset:line;margin:0;padding:14px 16px 16px 0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.84rem;line-height:1.7;overflow-x:auto}.rule-code:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}@media (hover:hover) and (pointer:fine){.rule-tab:hover{color:var(--text);background:#ffffff07}.rule-action:hover{color:var(--text);background:#ffffff0d}}.yaml-line{padding-left:calc((var(--indent) + 2) * 1ch + 4.5ch);text-indent:calc((var(--indent) + 2) * -1ch);white-space:pre-wrap;overflow-wrap:anywhere;counter-increment:line;display:block;position:relative}.yaml-line:before{content:counter(line);color:#6b7279;text-align:right;text-indent:0;-webkit-user-select:none;user-select:none;width:3ch;position:absolute;left:0}.yaml-key{color:var(--accent-soft)}.yaml-string{color:var(--ok-soft)}.yaml-number{color:var(--ember-soft)}.yaml-dash{color:var(--text-3)}.rules-more,.work-more{flex-wrap:wrap;gap:10px 28px;margin-top:20px;display:flex}.home-tablist{border:1px solid var(--line);background:var(--surface);scrollbar-width:none;border-radius:999px;gap:4px;width:fit-content;max-width:100%;margin-top:22px;padding:5px;display:flex;position:relative;overflow-x:auto}.home-tablist::-webkit-scrollbar{display:none}.home-tab{min-height:42px;color:var(--text-2);white-space:nowrap;transition:color .25s var(--ease-out);background:0 0;border:0;border-radius:999px;flex:none;padding:0 18px;font-size:.92rem;font-weight:600;position:relative}.home-tab[aria-selected=true]{color:var(--accent-soft)}.home-tab:focus-visible{outline-offset:-2px}.home-tab-pill{border-radius:inherit;background:var(--accent);position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.home-tab-pill{background:color-mix(in srgb, var(--accent) 12%, transparent)}}.home-tab-pill{box-shadow:inset 0 0 0 1px var(--accent)}@supports (color:color-mix(in lab, red, red)){.home-tab-pill{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 38%, transparent)}}.home-tab-label{align-items:center;gap:8px;display:inline-flex;position:relative}@media (hover:hover) and (pointer:fine){.home-tab:hover{color:var(--text)}.home-tab[aria-selected=true]:hover{color:var(--accent-soft)}}.home-tabpanel{animation:tab-in .45s var(--ease-out) both;margin-top:18px}.home-tabpanel .rules-viewer{margin-top:0}@keyframes tab-in{0%{opacity:0;transform:translateX(calc(var(--from,0) * 20px))}}@keyframes tab-fade{0%{opacity:0}}.run{border-radius:var(--radius-lg);background:linear-gradient(var(--card), var(--card)) padding-box, var(--ring) border-box;box-shadow:var(--shadow-card);border:1px solid #0000;padding:clamp(20px,2.6vw,30px);position:relative}.run-intro{max-width:70ch;color:var(--text-2);font-size:.95rem;line-height:1.6}.run-summary{border-block:1px solid var(--line);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px clamp(20px,3vw,36px);margin-top:20px;padding-block:18px;display:grid}.run-score{gap:4px;min-width:6.5ch;display:grid}.run-percent{color:var(--ok);font-family:var(--font-display);letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:clamp(2.2rem,4vw,3rem);font-weight:600;line-height:1}.run.is-live .run-percent{animation:run-count .4s var(--ease-out)}.run-caption{color:var(--text-3);font-size:.86rem}.run-bar{gap:4px;margin:0;padding:0;list-style:none;display:flex}.run-bar li{background:var(--line-strong);height:8px;transition:background-color .3s var(--ease-out);border-radius:3px;flex:1}.run-bar .is-running{background:var(--accent);animation:.31s ease-in-out infinite alternate run-pulse}.run-bar .is-detected{background:var(--ok)}.run-bar .is-missed{background:var(--bad)}.run-status{min-height:1.5em;color:var(--text-2);font-variant-numeric:tabular-nums;margin-top:10px;font-size:.9rem}.run-replay{gap:8px}.run-board{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:22px 0 0;padding:0;list-style:none;display:grid}.run-test-top{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:2px 8px;margin-bottom:2px;display:flex}.run-test-tactic{color:var(--text-2);font-size:.82rem;font-weight:600}@media (width<=999px){.run-board{grid-template-columns:repeat(2,minmax(0,1fr))}}.run-test{--state:var(--line-strong);border:1px solid var(--state);gap:3px;padding:11px 12px;display:grid;position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.run-test{border:1px solid color-mix(in srgb, var(--state) 55%, transparent)}}.run-test{border-radius:var(--radius-md);background:var(--state)}@supports (color:color-mix(in lab, red, red)){.run-test{background:color-mix(in srgb, var(--state) 7%, var(--surface-2))}}.run-test{transition:border-color .35s var(--ease-out), background-color .35s var(--ease-out)}.run-test.is-running{--state:var(--accent)}.run-test.is-detected{--state:var(--ok)}.run-test.is-missed{--state:var(--bad)}.run-test-id{color:var(--text-3);font-family:var(--font-mono);letter-spacing:.02em;font-size:.82rem}.run-test-name{color:var(--text);overflow-wrap:anywhere;font-size:.9rem;font-weight:600;line-height:1.3}.run-test-atomic{color:var(--text-3);font-size:.84rem;line-height:1.4}.run-result{flex-wrap:wrap;align-items:center;gap:2px 8px;margin-top:6px;display:flex}.run-chip{color:var(--text-3);align-items:center;gap:6px;font-size:.84rem;font-weight:600;display:inline-flex}.run-chip:before{content:"";background:var(--state);border-radius:50%;width:7px;height:7px}.run-test.is-running .run-chip{color:var(--accent-soft)}.run-test.is-detected .run-chip{color:var(--ok-soft)}.run-test.is-missed .run-chip{color:#f5a79d}.run-time{color:var(--text-3);font-variant-numeric:tabular-nums;font-size:.84rem}.run-test.is-running:after{content:"";background:linear-gradient(100deg, transparent 30%, var(--accent) 50%, transparent 70%);position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.run-test.is-running:after{background:linear-gradient(100deg, transparent 30%, color-mix(in srgb, var(--accent) 20%, transparent) 50%, transparent 70%)}}.run-test.is-running:after{pointer-events:none;animation:.62s linear infinite run-scan;transform:translate(-100%)}.run.is-live .run-test:is(.is-detected,.is-missed){animation:run-land .5s var(--ease-out)}@keyframes run-scan{to{transform:translate(100%)}}@keyframes run-land{0%{transform:scale(.94)}60%{transform:scale(1.02)}}@keyframes run-pulse{0%{opacity:.45}}@keyframes run-count{0%{opacity:.4;transform:translateY(4px)}}.run-notes{color:var(--text-3);justify-items:start;gap:6px;margin-top:20px;font-size:.86rem;line-height:1.55;display:grid}.run-notes p{max-width:90ch}.run-notes .text-link{margin-top:6px}@media (width<=700px){.run-summary{grid-template-columns:auto minmax(0,1fr)}.run-replay{grid-column:1/-1;justify-self:start}.run-board{gap:8px}.run-test{padding:10px}.home-tablist{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;width:100%;display:grid}.home-tab{padding:0 10px;font-size:.88rem}.home-tab-label{justify-content:center}}@media (width<=440px){.home-tab-label svg{display:none}}@media (prefers-reduced-motion:reduce){.home-tabpanel{animation-name:tab-fade}.run-bar .is-running,.run-test.is-running:after,.run.is-live .run-test:is(.is-detected,.is-missed),.run.is-live .run-percent{animation:none}}@media (width>=1100px){ul.row-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.row-grid>li{grid-column:span 2}.row-grid>li.row-half-3{grid-column:span 3}.row-grid>li:is(.row-full,.row-fill-3){grid-column:1/-1}}@media (width>=701px) and (width<=1099px){ul.row-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.row-grid>li{grid-column:span 1}.row-grid>li:is(.row-full,.row-fill-2){grid-column:1/-1}}.writing-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:18px;display:grid}.writing-grid>li{min-width:0;display:flex}.article-card{--edge:var(--accent);--glow:var(--accent);border-radius:var(--radius-lg);background:linear-gradient(var(--card), var(--card)) padding-box, var(--ring) border-box;width:100%;min-width:0;box-shadow:var(--shadow-card);border:1px solid #0000;flex-direction:column;gap:18px;padding:clamp(18px,2.4vw,26px);display:flex;position:relative}.article-card.is-hovering{box-shadow:var(--shadow-card)}.article-text{flex-direction:column;flex:auto;gap:12px;min-width:0;padding:4px 4px 2px;display:flex}.article-cover{aspect-ratio:16/9;object-fit:cover;object-position:top;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--well);width:100%;height:auto;display:block}@media (width>=900px){.writing-grid>li.row-full .article-card.has-cover{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:center;gap:28px;display:grid}.writing-grid>li.row-full .article-cover{order:2}.writing-grid .article-card:not(.has-cover) .article-text{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);grid-template-areas:"meta meta""title summary""title link";align-items:end;gap:12px clamp(28px,4vw,56px);display:grid}.writing-grid .article-card:not(.has-cover) .article-meta{grid-area:meta}.writing-grid .article-card:not(.has-cover) h3{grid-area:title;align-self:start}.writing-grid .article-card:not(.has-cover) .article-summary{grid-area:summary}.writing-grid .article-card:not(.has-cover) .article-link{grid-area:link}}@media (width>=1100px){.writing-grid>li.row-fill-3 .article-card.has-cover{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:center;gap:28px;display:grid}.writing-grid>li.row-fill-3 .article-cover{order:2}}@media (width>=900px) and (width<=1099px){.writing-grid>li.row-fill-2 .article-card.has-cover{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:center;gap:28px;display:grid}.writing-grid>li.row-fill-2 .article-cover{order:2}}.article-meta{color:var(--text-3);flex-wrap:wrap;gap:14px;font-size:.85rem;display:flex}.article-card h3{max-width:34ch;font-family:var(--font-display);letter-spacing:-.022em;text-wrap:balance;font-size:clamp(1.35rem,2.4vw,2rem);font-weight:600;line-height:1.15}.writing-grid>li:not(:first-child) .article-card h3{font-size:clamp(1.2rem,1.7vw,1.45rem);line-height:1.22}.article-card h3 a:after{content:"";z-index:1;border-radius:inherit;position:absolute;inset:0}.article-card h3 a:focus-visible{outline:none}.article-card:has(h3 a:focus-visible){outline:2px solid var(--accent);outline-offset:3px}.article-summary{max-width:70ch;color:var(--text-2);font-size:.95rem;line-height:1.6}.writing-grid>li:not(:first-child) .article-card.has-cover .article-summary{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.article-link{color:var(--accent);align-items:center;gap:6px;margin-top:auto;padding-top:6px;font-size:.9rem;font-weight:600;display:inline-flex}.writing-more{margin-top:20px}.writing-dots{display:none}@media (hover:hover) and (pointer:fine){.article-link svg{transition:transform .3s var(--ease-out)}.article-card:hover .article-link svg{transform:translate(2px,-2px)}}@media (width<=760px){.rules-viewer{grid-template-columns:1fr}.rules-tabs{border-right:0;border-bottom:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));padding:8px;display:grid}.rule-tab{justify-content:center;align-items:center;gap:8px;min-height:44px;padding:10px 6px}.rule-tab-dot{margin-top:0}.rule-tab-title,.rule-tab-tactic{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.rule-tab-meta{color:inherit;font-size:.84rem;font-weight:600}.rule-tab-indicator:before{width:auto;height:2px;inset:auto 14px 2px}.rule-meta{grid-template-columns:1fr;gap:10px}.rule-meta>div{grid-template-columns:minmax(0,8.5em) minmax(0,1fr);gap:10px}.rule-action span{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.rule-action{justify-content:center;min-width:40px;padding:0 10px}}.additional-project-footer{margin-top:auto;padding-top:20px}.additional-project-links{flex-wrap:wrap;gap:12px 24px;display:flex}.additional-project .text-link{color:var(--project-soft);font-size:.85rem}.about-section{border-top:1px solid var(--line);background:var(--bg-alt)}.about-layout{grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr);grid-template-areas:"copy photo""focus photo";align-items:start;gap:36px clamp(40px,7vw,120px);display:grid}.about-copy{grid-area:copy}.about-focus{grid-area:focus;min-width:0}.about-tabs{margin-top:8px}.about-tabs .home-tabpanel{margin-top:clamp(28px,4vw,44px)}.about-copy>p:first-child,.home-tabpanel-achievements .highlights{margin-top:0}.home-tabpanel-achievements .highlight:first-child{padding-top:0}.journey{grid-template-columns:minmax(0,.72fr) minmax(0,1.6fr);align-items:start;gap:36px clamp(40px,6vw,96px);display:grid}.journey-aside{top:calc(var(--nav-height) + 36px);position:sticky}.journey-intro{max-width:34ch;color:var(--text);font-family:var(--font-display);letter-spacing:-.015em;font-size:clamp(1.25rem,2vw,1.55rem);font-weight:500;line-height:1.4}.journey-totals-label{color:var(--text-3);margin-top:32px;font-size:.86rem;font-weight:600}.journey-totals{border-top:1px solid var(--line);margin:12px 0 0;display:grid}.journey-totals>div{border-bottom:1px solid var(--line);grid-template-columns:4.2rem minmax(0,1fr);align-items:baseline;gap:14px;padding-block:14px;display:grid}.journey-totals dt{color:var(--accent-soft);font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:600;line-height:1}.journey-totals dd{color:var(--text-2);margin:0;font-size:.92rem;line-height:1.45}.journey-track{--dot:36px;--date:8.5rem;--gap:20px;position:relative}.journey-track:before,.journey-line{content:"";top:18px;bottom:var(--line-end,90px);left:calc(var(--date) + var(--gap) + var(--dot) / 2 - .5px);width:1px;position:absolute}.journey-track:before{background:var(--line-strong)}.journey-line{background:linear-gradient(var(--accent), var(--accent));display:block}@supports (color:color-mix(in lab, red, red)){.journey-line{background:linear-gradient(var(--accent), color-mix(in srgb, var(--accent) 45%, var(--ok)))}}.journey-line{transform-origin:50% 0}.journey-list{margin:0;padding:0;list-style:none;display:grid;position:relative}.journey-step{--hue:var(--accent);grid-template-columns:var(--date) var(--dot) minmax(0, 1fr);column-gap:var(--gap);padding-bottom:30px;display:grid}.journey-step:last-child{padding-bottom:0}.journey-step:is(.is-certificate,.is-path,.is-rank,.is-league){--hue:var(--ok)}.journey-date{color:var(--text-3);font-variant-numeric:tabular-nums;text-align:right;grid-area:1/1;padding-top:8px;font-size:.88rem}.journey-dot{width:var(--dot);height:var(--dot);border:1px solid var(--hue);grid-area:1/2/span 2;place-items:center;display:grid}@supports (color:color-mix(in lab, red, red)){.journey-dot{border:1px solid color-mix(in srgb, var(--hue) 45%, transparent)}}.journey-dot{background:var(--surface-2);color:var(--hue);box-shadow:0 0 0 6px var(--bg-alt);border-radius:50%}.journey-step.is-rank .journey-dot{background:var(--ok)}@supports (color:color-mix(in lab, red, red)){.journey-step.is-rank .journey-dot{background:color-mix(in srgb, var(--ok) 16%, var(--surface-2))}}.journey-body{grid-area:1/3/span 2;min-width:0;padding-top:6px}.journey-body h4{color:var(--text);font-size:1.04rem;font-weight:600;line-height:1.35}.journey-body p{max-width:58ch;color:var(--text-body);margin-top:6px;font-size:.96rem;line-height:1.65}.journey-body .text-link{margin-top:8px}@media (width<=900px){.journey{grid-template-columns:minmax(0,1fr)}.journey-aside{position:static}.journey-totals{border-top:0;grid-template-columns:repeat(3,minmax(0,1fr))}.journey-totals>div{border-bottom:0;grid-template-columns:none;align-content:start;gap:6px;padding:0 12px 0 0}}@media (width<=700px){.journey-track{--dot:32px;--gap:16px}.journey-track:before,.journey-line{top:16px;left:calc(var(--dot) / 2 - .5px)}.journey-step{grid-template-columns:var(--dot) minmax(0, 1fr)}.journey-date{text-align:left;grid-area:1/2;padding-top:6px}.journey-dot{grid-column:1}.journey-body{grid-area:2/2;padding-top:2px}}.about-copy strong,.case-lead strong{color:var(--text);font-weight:600}.about-copy>p{max-width:40rem;color:var(--text-body);margin-top:16px;font-size:1.04rem;line-height:1.8}.about-copy>.about-lead{color:var(--text-2);font-size:1.12rem}.about-copy .role-credential{font-weight:600}.about-photo{grid-area:photo;width:min(100%,400px);margin:14px 0 0}.photo-frame{border:1px solid var(--line-strong);border-radius:var(--radius-lg);background:var(--surface);padding:8px}.photo-frame img{background:var(--well);border-radius:8px;width:100%;display:block}.about-photo .photo-frame img{aspect-ratio:3/4;object-fit:contain}@media (width<=700px){.about-photo .photo-frame img{aspect-ratio:1;object-fit:cover;object-position:50% 35%}}.about-photo figcaption{color:var(--text-3);letter-spacing:.025em;margin-top:16px;font-size:.88rem}.about-label{font-family:var(--font-display);letter-spacing:-.025em;font-size:1.16rem;font-weight:700}.focus-list{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.focus-list li{--chip:var(--accent-soft);border:1px solid var(--chip);align-items:center;gap:9px;padding:9px 15px 9px 12px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.focus-list li{border:1px solid color-mix(in srgb, var(--chip) 28%, transparent)}}.focus-list li{background:var(--chip);border-radius:999px}@supports (color:color-mix(in lab, red, red)){.focus-list li{background:color-mix(in srgb, var(--chip) 6%, transparent)}}.focus-list li{color:var(--text);font-size:.88rem}.focus-list li:before{content:"";background:var(--chip);border-radius:50%;flex:none;width:7px;height:7px}.focus-list li.is-emulate{--chip:var(--violet-soft)}.focus-list li.is-build{--chip:var(--ember-soft)}.about-focus .text-link{margin-top:22px}.focus-legend{color:var(--text-3);flex-wrap:wrap;gap:6px 18px;margin-top:16px;font-size:.86rem;display:flex}.focus-legend span{align-items:center;gap:7px;display:inline-flex}.focus-legend span:before{content:"";background:var(--chip);border-radius:50%;width:7px;height:7px}.focus-legend .is-defend{--chip:var(--accent-soft)}.focus-legend .is-emulate{--chip:var(--violet-soft)}.focus-legend .is-build{--chip:var(--ember-soft)}.highlights-block{margin-top:clamp(52px,6vw,84px)}.highlights{margin-top:10px}.highlight{--hue:var(--accent-soft);grid-template-columns:50px minmax(0,1fr) auto;align-items:start;gap:8px 22px;padding-block:24px;display:grid}.highlight+.highlight{border-top:1px solid var(--line)}.highlight.is-emulate{--hue:var(--violet-soft)}.highlight.is-build{--hue:var(--ember-soft)}.highlight-turn{display:block}.highlight-icon{border:1px solid var(--hue);place-items:center;width:50px;height:50px;display:grid}@supports (color:color-mix(in lab, red, red)){.highlight-icon{border:1px solid color-mix(in srgb, var(--hue) 38%, transparent)}}.highlight-icon{border-radius:var(--radius-sm);background:var(--surface-2);box-shadow:none;color:var(--hue)}.highlight-body{min-width:0;padding-top:3px}.highlight-body p{max-width:58ch;color:var(--text-body);font-size:1rem;line-height:1.75}.highlight-body strong{color:var(--text);font-weight:700}.highlight blockquote{border-left:2px solid var(--hue);max-width:60ch;color:var(--text);font-family:var(--font-display);letter-spacing:-.015em;margin:16px 0 2px;padding:4px 0 4px 20px;font-size:clamp(1.1rem,1.6vw,1.3rem);font-weight:500;line-height:1.4}.highlight-link{white-space:nowrap;margin-top:6px}@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.cert-card,.course-card{transform-style:preserve-3d}.cert-preview{transition:transform .7s var(--ease-out), box-shadow .7s var(--ease-out)}:is(.cert-card,.course-card).is-hovering .cert-preview{transform:translateZ(30px);box-shadow:0 36px 60px -34px #000000e6}.cert-preview:after{content:"";border-radius:inherit;opacity:0;pointer-events:none;background:linear-gradient(105deg,#0000 38%,#ffffff24 44%,#ffffff6b 48.5%,#ffffff29 52%,#0000 58%) 150% 0/260% 100% no-repeat;position:absolute;inset:0}:is(.cert-card,.course-card).is-hovering .cert-preview:after{opacity:1;background-position:-50% 0;transition:background-position 1.3s cubic-bezier(.45,.05,.25,1),opacity .25s}.learning-path-list,.highlights,.focus-list{perspective:900px}.learning-path-list a{transform-style:preserve-3d;transition:transform .45s var(--ease-out), box-shadow .45s var(--ease-out)}.learning-path-list a:hover,.learning-path-list a:focus-visible{transform:translateY(-4px)rotateX(3deg);box-shadow:0 18px 30px -22px #000000c0}.focus-list li{transition:background-color .3s ease, box-shadow .4s var(--ease-out)}.focus-list li:hover{background:var(--chip)}@supports (color:color-mix(in lab, red, red)){.focus-list li:hover{background:color-mix(in srgb, var(--chip) 12%, transparent)}}.focus-list li:hover{box-shadow:0 12px 26px -18px var(--chip)}.highlight-icon{transition:transform .5s var(--ease-out), box-shadow .5s var(--ease-out)}.highlight:hover .highlight-icon,.highlight:focus-within .highlight-icon{box-shadow:none;transform:translateZ(18px)rotateY(-9deg)}}.contact-section{border-top:1px solid var(--line);background:var(--bg);padding-bottom:clamp(56px,6vw,88px)}.contact-panel{--edge:var(--accent);--glow:var(--accent);border-radius:var(--radius-lg);background:linear-gradient(var(--surface), var(--surface)) padding-box, var(--ring) border-box;box-shadow:0 30px 90px -30px var(--well);transform-origin:50% 100%;border:1px solid #0000;padding:clamp(20px,4vw,48px);position:relative;overflow:hidden}.contact-lede{max-width:33.75rem;color:var(--text-body);margin-top:18px;font-size:1.02rem;line-height:1.7}.contact-links{flex-wrap:wrap;gap:12px;margin-top:32px;display:flex}.contact-grid{grid-template-columns:minmax(220px,.62fr) minmax(0,1.38fr);align-items:start;gap:clamp(24px,4vw,56px);margin-top:34px;display:grid}.contact-card-stage{perspective:1800px;min-width:0}.contact-card{height:100%;transform-style:preserve-3d;display:grid;position:relative}.contact-face{backface-visibility:hidden;grid-area:1/1;min-width:0}.field-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.contact-front>.field,.contact-front>.form-alert{margin-top:12px}.contact-front>:first-child{margin-top:0}.field{min-width:0;position:relative}.field input,.field textarea{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--well);width:100%;min-height:60px;padding:26px 16px 9px;display:block}@supports (color:color-mix(in lab, red, red)){.field input,.field textarea{background:color-mix(in srgb, var(--well) 85%, transparent)}}.field input,.field textarea{color:var(--text);font:inherit;transition:border-color .25s var(--ease-out), box-shadow .3s var(--ease-out), background-color .25s var(--ease-out);font-size:1rem;line-height:1.4}.field textarea{resize:vertical;min-height:156px;padding-top:32px;line-height:1.6}.field label{max-width:calc(100% - 34px);color:var(--text-3);white-space:nowrap;text-overflow:ellipsis;pointer-events:none;transform-origin:0 0;transition:transform .28s var(--ease-out), color .25s var(--ease-out);font-size:1rem;position:absolute;top:19px;left:17px;overflow:hidden}.field :is(input,textarea):focus+label,.field :is(input,textarea):not(:placeholder-shown)+label{color:var(--accent-soft);transform:translateY(-11px)scale(.76)}.field textarea::placeholder{color:var(--text-3);opacity:1;transition:color .25s var(--ease-out)}.field textarea:not(:focus)::placeholder{color:#0000}.field :is(input,textarea):focus{border-color:var(--accent);outline:none}@supports (color:color-mix(in lab, red, red)){.field :is(input,textarea):focus{border-color:color-mix(in srgb, var(--accent) 70%, transparent)}}.field :is(input,textarea):focus{background:var(--well);box-shadow:0 0 0 4px var(--accent)}@supports (color:color-mix(in lab, red, red)){.field :is(input,textarea):focus{box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 12%, transparent)}}.field input:-webkit-autofill{-webkit-text-fill-color:var(--text);box-shadow:0 0 0 40px var(--well) inset;caret-color:var(--text)}.field.is-invalid :is(input,textarea){border-color:var(--bad)}@supports (color:color-mix(in lab, red, red)){.field.is-invalid :is(input,textarea){border-color:color-mix(in srgb, var(--bad) 70%, transparent)}}.field.is-invalid label{color:#ffaab2}.field-error{color:#ffaab2;margin-top:7px;font-size:.84rem;line-height:1.4}.field-trap{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.form-alert{border:1px solid var(--bad);justify-items:start;gap:8px;padding:14px 16px;display:grid}@supports (color:color-mix(in lab, red, red)){.form-alert{border:1px solid color-mix(in srgb, var(--bad) 35%, transparent)}}.form-alert{border-radius:var(--radius-sm);background:var(--bad)}@supports (color:color-mix(in lab, red, red)){.form-alert{background:color-mix(in srgb, var(--bad) 7%, transparent)}}.form-alert{color:#ffd6da;font-size:.9rem;line-height:1.55}.form-alert .text-link{color:var(--accent-soft)}.form-footer{flex-wrap:wrap;align-items:center;gap:12px 18px;margin-top:18px;display:flex}.form-send[disabled]{cursor:progress;opacity:.85}.form-privacy{max-width:34ch;color:var(--text-3);font-size:.88rem;line-height:1.5}.form-privacy a{color:var(--text-2);text-decoration:underline;-webkit-text-decoration-color:var(--text-2);-webkit-text-decoration-color:var(--text-2);-webkit-text-decoration-color:var(--text-2);text-decoration-color:var(--text-2)}@supports (color:color-mix(in lab, red, red)){.form-privacy a{-webkit-text-decoration-color:color-mix(in srgb, var(--text-2) 40%, transparent);-webkit-text-decoration-color:color-mix(in srgb, var(--text-2) 40%, transparent);-webkit-text-decoration-color:color-mix(in srgb, var(--text-2) 40%, transparent);text-decoration-color:color-mix(in srgb, var(--text-2) 40%, transparent)}}.form-privacy a{text-underline-offset:3px}@media (hover:hover) and (pointer:fine){.form-privacy a:hover{color:var(--accent);text-decoration-color:currentColor}}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.contact-back{--edge:var(--ok);text-align:center;place-content:center;justify-items:center;gap:12px;display:grid;transform:rotateY(180deg)}.sent-mark{border:1px solid var(--ok);place-items:center;width:68px;height:68px;margin-bottom:6px;display:grid}@supports (color:color-mix(in lab, red, red)){.sent-mark{border:1px solid color-mix(in srgb, var(--ok) 40%, transparent)}}.sent-mark{background:var(--ok);border-radius:50%}@supports (color:color-mix(in lab, red, red)){.sent-mark{background:color-mix(in srgb, var(--ok) 10%, transparent)}}.sent-mark{box-shadow:inset 0 1px 0 #fff3, 0 18px 40px -16px var(--ok)}@supports (color:color-mix(in lab, red, red)){.sent-mark{box-shadow:inset 0 1px 0 #fff3, 0 18px 40px -16px color-mix(in srgb, var(--ok) 67%, transparent)}}.sent-mark{color:var(--ok-soft)}.contact-back h3{font-family:var(--font-display);letter-spacing:-.022em;font-size:clamp(1.6rem,3vw,2.1rem);font-weight:700}.contact-back h3:focus{outline:none}.contact-back p{max-width:38ch;color:var(--text-body);overflow-wrap:anywhere;line-height:1.6}.contact-back .button{margin-top:8px}.contact-direct{flex-direction:column;align-items:flex-start;gap:12px;min-width:0;padding-top:6px;display:flex}.contact-direct .contact-lede{margin:0 0 14px}.contact-intro{display:contents}.direct-title{color:var(--text-2);font-size:.92rem}.direct-email{color:var(--text);font-family:var(--font-display);letter-spacing:-.02em;overflow-wrap:anywhere;align-items:flex-start;gap:10px;font-size:clamp(1.15rem,1.9vw,1.45rem);font-weight:600;display:inline-flex}.direct-email svg{color:var(--accent);flex:none;margin-top:3px}.direct-copy{border:1px solid var(--line-strong);min-height:40px;color:var(--text-body);transition:border-color .25s var(--ease-out), color .25s var(--ease-out);background:#ffffff08;border-radius:999px;align-self:flex-start;align-items:center;gap:8px;padding:0 15px;font-size:.85rem;font-weight:550;display:inline-flex}.direct-actions{flex-wrap:wrap;gap:8px;display:flex}.form-shortcut{color:var(--text-3);font-size:.86rem}.direct-location{border-top:1px solid var(--line);color:var(--text-2);align-self:stretch;align-items:center;gap:8px;margin-top:10px;padding-top:16px;font-size:.9rem;display:flex}.direct-location svg{color:var(--text-3)}@media (hover:hover) and (pointer:fine){.direct-copy:hover{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.direct-copy:hover{border-color:color-mix(in srgb, var(--accent) 50%, transparent)}}.direct-copy:hover{color:var(--text)}.direct-email:hover span{text-decoration:underline;-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.direct-email:hover span{-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 50%, transparent);-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 50%, transparent);-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 50%, transparent);text-decoration-color:color-mix(in srgb, var(--accent) 50%, transparent)}}.direct-email:hover span{text-underline-offset:5px}}.socials{border-top:1px solid var(--line);margin-top:40px;padding-top:28px}.socials-title{color:var(--text-2);font-size:.95rem;font-weight:550}.social-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-top:16px;display:grid}.social-tile{--brand:var(--accent);border:1px solid var(--line);border-radius:var(--radius-md);height:100%;transform-style:preserve-3d;transition:border-color .35s var(--ease-out), background-color .35s var(--ease-out), box-shadow .5s var(--ease-out);background:#ffffff06;flex-direction:column;align-items:flex-start;gap:16px;padding:18px;display:flex;position:relative}.brand-icon{width:44px;height:44px;filter:drop-shadow(0 10px 18px var(--brand));flex:none}@supports (color:color-mix(in lab, red, red)){.brand-icon{filter:drop-shadow(0 10px 18px color-mix(in srgb, var(--brand) 30%, transparent))}}.brand-icon{transition:transform .6s var(--ease-spring), filter .5s var(--ease-out)}.social-text{gap:2px;min-width:0;display:grid}.social-text strong{font-weight:600}.social-text span{color:var(--text-2);overflow-wrap:anywhere;font-size:.86rem}.social-arrow{color:var(--text-3);transition:color .3s var(--ease-out), transform .5s var(--ease-spring);position:absolute;top:16px;right:16px}.social-tile:focus-visible{outline-offset:3px}@media (hover:hover) and (pointer:fine){.social-tile:hover{border-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.social-tile:hover{border-color:color-mix(in srgb, var(--brand) 55%, transparent)}}.social-tile:hover{background:var(--brand)}@supports (color:color-mix(in lab, red, red)){.social-tile:hover{background:color-mix(in srgb, var(--brand) 8%, transparent)}}.social-tile:hover{box-shadow:0 22px 44px -22px var(--brand)}@supports (color:color-mix(in lab, red, red)){.social-tile:hover{box-shadow:0 22px 44px -22px color-mix(in srgb, var(--brand) 60%, transparent)}}.social-tile:hover .brand-icon{filter:drop-shadow(0 16px 22px var(--brand));transform:translateZ(34px)}@supports (color:color-mix(in lab, red, red)){.social-tile:hover .brand-icon{filter:drop-shadow(0 16px 22px color-mix(in srgb, var(--brand) 45%, transparent))}}.social-tile:hover .social-arrow{color:var(--text);transform:translateZ(20px)translate(2px,-2px)}}.palette{width:min(640px,100% - 24px);max-width:none;max-height:min(560px, calc(var(--visible-height,100dvh) - 24px));border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface);color:var(--text);box-shadow:inset 0 1px 0 #ffffff14, 0 50px 120px -30px #000000f2, 0 0 0 1px var(--accent);margin:min(12vh,120px) auto auto;padding:0;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.palette{box-shadow:inset 0 1px 0 #ffffff14, 0 50px 120px -30px #000000f2, 0 0 0 1px color-mix(in srgb, var(--accent) 10%, transparent)}}.palette[open]{animation:palette-in .26s var(--ease-out);flex-direction:column;display:flex}.palette::backdrop{background:var(--well)}@supports (color:color-mix(in lab, red, red)){.palette::backdrop{background:color-mix(in srgb, var(--well) 80%, transparent)}}.palette::backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:.26s palette-fade}@keyframes palette-in{0%{opacity:0;transform:translateY(-10px)scale(.985)}}@keyframes palette-fade{0%{opacity:0}}.palette-search{border-bottom:1px solid var(--line);color:var(--text-3);flex:none;align-items:center;gap:12px;padding:6px 8px 6px 18px;display:flex}.palette-search input{min-width:0;height:52px;color:var(--text);font:inherit;background:0 0;border:0;outline:none;flex:1;font-size:1.02rem}.palette-search input::placeholder{color:var(--text-3)}.palette-close{border:1px solid var(--line);min-height:36px;color:var(--text-2);background:#ffffff06;border-radius:8px;flex:none;padding:0 12px;font-size:.84rem;font-weight:600}.palette-list{overscroll-behavior:contain;flex:auto;min-height:0;padding:6px 8px 10px;scroll-padding-block:34px 10px;overflow-y:auto}.palette-group+.palette-group{margin-top:4px}.palette-group-label{color:var(--text-3);padding:12px 12px 6px;font-size:.84rem;font-weight:600}.palette-option{min-height:44px;color:var(--text-body);cursor:pointer;border-radius:10px;align-items:center;gap:12px;padding:8px 12px;display:flex;position:relative}.palette-option>:not(.palette-highlight){position:relative}.palette-option.is-active{color:var(--text)}.palette-highlight{border-radius:inherit;background:var(--accent);position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.palette-highlight{background:color-mix(in srgb, var(--accent) 10%, transparent)}}.palette-highlight{box-shadow:inset 0 0 0 1px var(--accent)}@supports (color:color-mix(in lab, red, red)){.palette-highlight{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 20%, transparent)}}.palette-icon{border:1px solid var(--line);width:30px;height:30px;color:var(--text-2);background:#ffffff06;border-radius:8px;flex:none;place-items:center;display:grid}.palette-option.is-active .palette-icon{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.palette-option.is-active .palette-icon{border-color:color-mix(in srgb, var(--accent) 33%, transparent)}}.palette-option.is-active .palette-icon{color:var(--accent)}.palette-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.93rem;overflow:hidden}.palette-hint{color:var(--text-3);flex:none;font-size:.82rem}.palette-enter{color:var(--text-3);flex:none}.palette-empty{color:var(--text-body);text-align:center;gap:6px;padding:28px 12px;display:grid}.palette-empty span{color:var(--text-3);font-size:.88rem}.palette-foot{border-top:1px solid var(--line);color:var(--text-3);flex:none;gap:18px;padding:10px 18px;font-size:.82rem;display:flex}.palette-foot kbd{border:1px solid var(--line);background:#ffffff08;border-radius:5px;place-items:center;min-width:20px;height:20px;margin-right:3px;padding:0 5px;font-family:inherit;font-size:.76rem;display:inline-grid}@media (pointer:coarse){.palette-foot,.palette-enter{display:none}}@media (width<=700px){.palette{margin-top:calc(12px + var(--visible-top,0px));max-height:calc(var(--visible-height,100dvh) - 24px)}}:is(.case-hero>.page-shell:first-child,.article){position:relative}.article>.share-button{top:29px}.share-button{border:1px solid var(--line);background:var(--bg);border-radius:999px;align-items:center;gap:8px;min-height:36px;padding:0 14px;display:inline-flex;position:absolute;top:-7px;right:0}@supports (color:color-mix(in lab, red, red)){.share-button{background:color-mix(in srgb, var(--bg) 60%, transparent)}}.share-button{color:var(--text-2);font-size:.85rem;font-weight:600;transition:color .2s,border-color .2s,background-color .2s}.share-button:active{transform:scale(.97)}@media (hover:hover) and (pointer:fine){.share-button:hover{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.share-button:hover{border-color:color-mix(in srgb, var(--accent) 40%, transparent)}}.share-button:hover{color:var(--text)}}.heading-link,:is(.article-body,.legal-body) .heading-link{color:inherit;text-decoration:none}.heading-link:after{content:"";vertical-align:.06em;opacity:0;width:.62em;height:.62em;-webkit-mask:var(--link-mask) center / contain no-repeat;-webkit-mask:var(--link-mask) center / contain no-repeat;-webkit-mask:var(--link-mask) center / contain no-repeat;-webkit-mask:var(--link-mask) center / contain no-repeat;mask:var(--link-mask) center / contain no-repeat;--link-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71'/%3E%3Cpath d='M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71'/%3E%3C/svg%3E");background:currentColor;margin-left:.38em;transition:opacity .2s;display:inline-block}.heading-link:focus-visible:after{opacity:.7;color:var(--accent)}@media (hover:hover) and (pointer:fine){.heading-link:hover:after{opacity:.7;color:var(--accent)}}.toc-marker{background:var(--accent);opacity:0;transform-origin:0 0;width:2px;height:100px;transition:transform .45s var(--ease-out), opacity .3s ease;pointer-events:none;border-radius:2px;position:absolute;top:0;left:-1px}.has-current>.toc-marker{opacity:1}.toast{z-index:120;left:50%;bottom:calc(24px + env(safe-area-inset-bottom));border:1px solid var(--accent);max-width:calc(100% - 32px);padding:11px 18px;position:fixed}@supports (color:color-mix(in lab, red, red)){.toast{border:1px solid color-mix(in srgb, var(--accent) 25%, transparent)}}.toast{background:var(--surface);border-radius:999px}@supports (color:color-mix(in lab, red, red)){.toast{background:color-mix(in srgb, var(--surface) 95%, transparent)}}.toast{color:var(--text);opacity:0;pointer-events:none;transition:opacity .25s ease, transform .35s var(--ease-out);font-size:.9rem;font-weight:600;transform:translate(-50%,12px);box-shadow:0 20px 50px -20px #000000e6}.toast.is-shown{opacity:1;transform:translate(-50%)}.site-footer{border-top:1px solid var(--line);background:var(--bg-deep);color:var(--text-3);padding:clamp(44px,6vw,64px) 0 30px;font-size:.9rem}.footer-grid{grid-template-columns:minmax(0,1.5fr) repeat(2,minmax(0,1fr));gap:32px clamp(24px,5vw,72px);display:grid}.footer-name{color:var(--text);font-family:var(--font-display);letter-spacing:-.02em;font-size:1.12rem;font-weight:600}.footer-brand p+p{margin-top:8px}.footer-brand p:nth-child(2){max-width:34ch;color:var(--text-2);line-height:1.55}.footer-heading{color:var(--text);font-size:.86rem;font-weight:600}.footer-col ul{gap:4px;margin-top:12px;display:grid}.footer-col a{padding:4px 0;display:inline-block}.site-footer a{color:var(--text-2);transition:color .2s}.site-footer a[aria-current=page]{color:var(--text)}.footer-base{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;margin-top:clamp(32px,5vw,48px);padding-top:22px;font-size:.85rem;display:flex}.footer-base a{align-items:center;gap:6px;display:inline-flex}@media (hover:hover) and (pointer:fine){.site-footer a:hover{color:var(--accent)}}@media (width<=1299px){.resume-link span{display:none}}@media (width<=1199px){.nav-inner{gap:18px}.nav-search{justify-content:center;width:40px;padding:0}.nav-search kbd{display:none}}@media (width<=1100px){.social-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.brand-name{display:none}.project-card{gap:28px}}@media (width<=900px){.nav-inner{justify-content:space-between;gap:12px}.nav-menu,.nav-actions .resume-link{display:none}.nav-toggle{display:inline-flex}.brand-name{display:inline}.nav-actions{gap:8px}.hero-grid{grid-template-columns:minmax(0,1fr);grid-template-areas:"card""copy";gap:36px}.hero-card{justify-self:center;max-width:500px}.highlight{grid-template-columns:46px minmax(0,1fr)}.highlight-icon{width:46px;height:46px}.highlight-link{grid-column:2;margin-top:2px}.project-card,.projects-list{grid-template-columns:1fr}.about-layout{grid-template-columns:1fr;grid-template-areas:"copy""photo""focus";gap:36px}.contact-grid{grid-template-columns:1fr}.about-photo{margin-top:0}}@media (width<=700px){:root{--nav-height:66px;--gutter:20px;--shell:580px}.nav-inner{justify-content:space-between}.brand-name{font-size:.95rem;display:inline}.nav-menu,.nav-actions .nav-contact,.nav-actions .resume-link{display:none}.lang-switch a{min-width:38px;height:36px;padding:0 8px}.field-row{grid-template-columns:1fr}.contact-grid{margin-top:26px}.form-footer .button{width:100%}.contact-panel{padding:30px 18px 24px}.nav-toggle{display:inline-flex}.mobile-dock{display:flex}.hero-section{padding-top:calc(var(--nav-height) + 20px)}.hero-grid{gap:30px}.highlight{grid-template-columns:40px minmax(0,1fr);gap:6px 16px;padding-block:20px}.highlight-icon{width:40px;height:40px}.highlight-icon svg{width:19px;height:19px}.highlight-body p{font-size:.97rem}.highlight blockquote{padding-left:14px}.hero-title{font-size:clamp(2.4rem,11.5vw,3.6rem)}.hero-role{margin-top:20px;font-size:1.15rem}.hero-actions{grid-template-columns:1fr 1fr;display:grid}.hero-actions .button{padding-inline:12px}.section{padding-block:40px}.certifications-section{padding-top:56px}.section-heading{margin-bottom:28px;display:block}.section-heading>p{margin-top:12px}.section-heading h2,.about-heading h2,.contact-panel h2{font-size:clamp(2.3rem,10vw,3.4rem)}.about-copy>p{font-size:1rem;line-height:1.7}.about-copy>.about-lead{font-size:1.06rem}.cert-grid{grid-template-columns:1fr;gap:16px}.learning-path-list{grid-template-columns:1fr}.writing-grid{overscroll-behavior-x:contain;scroll-padding-inline:max(var(--gutter), env(safe-area-inset-left) + 8px, env(safe-area-inset-right) + 8px);scroll-snap-type:x mandatory;scrollbar-width:none;grid-template-columns:none;grid-auto-columns:min(86%,360px);grid-auto-flow:column;gap:12px;margin:-8px calc(50% - 50vw) -20px;padding:8px calc(50vw - 50%) 20px;overflow-x:auto}.writing-grid::-webkit-scrollbar{display:none}.writing-grid>li{scroll-snap-align:start}.writing-grid>li:has(.article-card:not(.has-cover)){align-self:start}.writing-grid>li{grid-column:auto}.writing-grid>li:first-child .article-card h3{font-size:clamp(1.2rem,5.4vw,1.45rem);line-height:1.22}.writing-dots{justify-content:center;gap:6px;margin-top:18px;display:flex}.writing-dots span{width:6px;height:6px;transition:width .35s var(--ease-out), background-color .35s var(--ease-out);background:#ffffff2e;border-radius:3px}.writing-dots span.is-active{background:var(--accent);width:20px}.additional-projects-grid{grid-template-columns:1fr;gap:14px}.additional-project{padding:22px}.achievement{grid-template-columns:minmax(0,1fr);gap:6px;margin-top:14px;padding:18px}.achievement-leagues{grid-column:auto;gap:8px;margin-top:12px}.achievement-leagues a{padding:12px 4px 10px}.achievement-leagues img{height:56px}.achievement-leagues :is(strong,time){white-space:normal}.viewer{padding:12px}.viewer-image,.viewer-caption{width:100%}.contact-links{display:grid}.social-grid{grid-template-columns:1fr;gap:10px}.social-tile{flex-direction:row;align-items:center;gap:14px;padding:14px 44px 14px 14px}.brand-icon{width:40px;height:40px}.social-arrow{top:50%;right:16px;translate:0 -50%}.site-footer{padding-bottom:calc(96px + env(safe-area-inset-bottom))}.footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-brand{grid-column:1/-1}.footer-base{flex-direction:column;align-items:flex-start}}@media (width<=440px){.brand-name{display:none}}@media (width<=400px){:root{--gutter:16px}.credential{padding:26px 16px 14px}.credential-body{gap:12px}.credential-chip{width:34px;height:26px}.hero-actions{grid-template-columns:1fr}.project-card{padding:14px}.metrics dd{font-size:1.3rem}.metrics dt{font-size:.8rem}}@media (width<=340px){:root{--gutter:12px}.nav-actions{gap:6px}.lang-switch a{min-width:32px;padding:0 5px}.nav-toggle{width:44px;height:44px}.footer-grid{grid-template-columns:minmax(0,1fr)}}@media print{@page{margin:16mm 14mm}*,:before,:after{box-shadow:none!important;text-shadow:none!important;color:#111!important;-webkit-text-fill-color:#111!important;background:0 0!important;transition:none!important;animation:none!important}html,body{font-size:11pt;background:#fff!important}body:after,.site-nav,#nav-root,.mobile-dock,.to-top,.menu-sheet,.sheet-backdrop,.skip-link,.share-button,.toast,.palette,.scroll-progress,.writing-dots,.zoom-hint,.spotlight,.frame-curtain,.article-toc,.legal-toc,.tabs-bar,.case-demo,.case-cta,.case-next,.contact-section,.case-end,.lightbox,.footer-grid,.footer-base a,.rules-tabs,.rule-editor-bar,.hero-actions,.nav-search,.demo,.credential-uv-dark,.credential-uv-tint,.credential-uv-ink,.credential-uv-toggle,.hero-card:before{display:none!important}[style*=opacity],.is-waiting,.rule-panel,.line,.hero-line,.hero-rise{opacity:1!important;visibility:visible!important;transform:none!important}.rule-panels,.rules-viewer,.home-tabpanel[hidden]{display:block!important}.home-tablist,.run-replay{display:none!important}dd>.sr-only{clip:auto!important;white-space:normal!important;width:auto!important;height:auto!important;margin:0!important;position:static!important;overflow:visible!important}dd>.sr-only+[aria-hidden=true]{display:none!important}.rule-panel{break-inside:avoid;margin-bottom:12pt}.page-shell,.article,.legal-body{width:auto!important;max-width:none!important}:is(.legal-layout,.article:has(.article-toc)){display:block!important}:is(.project-card,.additional-project,.rules-viewer,.article-card,.cert-card,.course-card,.achievement,.case-metrics>div,.stat-grid>div,.rule-editor,.legal-summary){break-inside:avoid;border:1px solid #bbb!important}a{text-decoration:underline!important}:is(.article-body,.legal-body,.case-panels) a[href^=http]:after{content:" (" attr(href) ")";word-break:break-all;font-size:9pt}h1,h2,h3,h4{break-after:avoid}img,figure,pre,blockquote,tr{break-inside:avoid}.site-footer{border-top:1px solid #bbb;padding:12pt 0 0!important}}@media (height<=500px) and (orientation:landscape){:root{--nav-height:58px}.nav-toggle{width:42px;height:42px}.nav-contact{min-height:38px}}:is(.text-link,.case-back,.footer-base a,.article-source a,.direct-email){min-height:24px}@media (pointer:coarse){:is(.text-link,.case-back,.breadcrumb a,.footer-base a,.article-source a,.form-privacy a){position:relative}:is(.text-link,.case-back,.breadcrumb a,.footer-base a,.article-source a,.form-privacy a):after{content:"";position:absolute;inset:-11px -6px}.footer-col ul{gap:0;margin-top:6px}.footer-col a{padding-block:10px}}@media (width>=1280px){html{font-size:clamp(16px,.625vw + 8px,23px)}}@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{--glass:color-mix(in srgb, var(--surface) 44%, transparent);--glass-chrome:color-mix(in srgb, var(--surface) 64%, transparent);--glass-sheen:linear-gradient(160deg, #ffffff12, #ffffff05 36%, #fff0 62%);--glass-edge:#d6e2fa33;--glass-rim:inset 0 1px 0 #ffffff14;--glass-blur:blur(20px) saturate(160%);--card:var(--glass);--text-3:#98a2b4}body{background:0 0}body:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(56vmax 46vmax at 2% 4%,#3a64a666,#0000 70%),radial-gradient(48vmax 42vmax at 100% 38%,#2f8f7d52,#0000 70%),radial-gradient(44vmax 38vmax at 14% 92%,#6d5bd048,#0000 72%),radial-gradient(50vmax 40vmax at 88% 104%,#d8b87833,#0000 70%);position:fixed;inset:0}:is(.hero-section,.certifications-section,.work-section,.about-section,.contact-section,.argus-film,.case-hero){background:0 0}.site-footer{background:color-mix(in srgb, var(--bg-deep) 70%, transparent)}:is(.cert-card,.course-card,.project-card,.additional-project,.rules-viewer,.run,.article-card,.not-found-card,.achievement,.contact-panel,.learning-path-list a,.learning-path-list .path-done,.hub-card,.case-next,.case-metrics>div,.stat-grid>div,.flow li,.items li,.resources a,.legal-summary,.photo-frame,.table-wrap){border-color:var(--ring-line,var(--glass-edge));background:var(--glass-sheen), var(--glass);box-shadow:var(--glass-rim), var(--shadow-card)}.flow .key{background:var(--glass-sheen), color-mix(in srgb, var(--page-accent) 10%, var(--glass))}.run-test{background:color-mix(in srgb, var(--state) 9%, color-mix(in srgb, var(--surface-2) 46%, transparent))}.home-tablist{border-color:var(--glass-edge);background:var(--glass);box-shadow:var(--glass-rim)}.button-outline{border-color:var(--glass-edge);background:var(--glass-sheen), color-mix(in srgb, var(--surface) 38%, transparent);box-shadow:var(--glass-rim)}.site-nav.is-scrolled{border-color:var(--glass-edge);background:color-mix(in srgb, var(--bg) 60%, transparent);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur)}:is(.menu-sheet,.mobile-dock,.to-top,.palette,.toast){background:var(--glass-sheen), var(--glass-chrome);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur)}:is(.menu-sheet,.mobile-dock,.palette){border-color:var(--glass-edge)}.tabs-bar{background:color-mix(in srgb, var(--bg) 60%, transparent);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur)}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.site-nav.is-scrolled,.tabs-bar{background:color-mix(in srgb, var(--bg) 94%, transparent)}:is(.menu-sheet,.mobile-dock,.to-top,.palette,.toast){background:var(--surface)}}@media (prefers-reduced-transparency:reduce){:root{--glass:var(--surface);--glass-chrome:var(--surface);--glass-sheen:linear-gradient(transparent, transparent)}body:before{display:none}.site-nav.is-scrolled,.tabs-bar{background:var(--bg);-webkit-backdrop-filter:none;backdrop-filter:none}:is(.menu-sheet,.mobile-dock,.to-top,.palette,.toast){-webkit-backdrop-filter:none;backdrop-filter:none}.run-test{background:color-mix(in srgb, var(--state) 7%, var(--surface-2))}}@media print{body:before{display:none}}
