@keyframes shake{0%,85%,to{transform:translate(0) scale(1)}87%{transform:translate(-2px) scale(1.02)}89%{transform:translate(2px) scale(1.02)}91%{transform:translate(-1px) scale(1.01)}93%{transform:translate(1px) scale(1.01)}95%{transform:translate(0) scale(1)}}.tech-separator{width:60vw;height:4px;background:var(--accent);position:relative;transform:translate(60%) translateY(-134px);border:none;padding:0;left:0;transform:none;margin-bottom:24px;top:100%;width:100vw}@media (max-width: 1050px){.tech-separator{height:3px}}@media (max-width: 600px){.tech-separator{margin-bottom:54px;gap:0}}@keyframes pulse-shadow{0%,to{opacity:.6}50%{opacity:.9}}.separator{width:60vw;height:4px;background:var(--accent);position:relative;left:50%;transform:translate(60%) translateY(-134px);border:none;padding:0}@media (max-width: 600px){.separator{transform:translate(64%) translateY(-110px)}}@font-face{font-family:Bahn Sheet;src:url("./media/bahnschrift-light-cond-BFUXHKVC.woff2") format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Bahn Sheet;src:url("./media/bahnschrift-semibold-cond-CYED6KLV.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}:root{--fs-text: 18px;--fs-badge: 16px;--paper: #f3eee0;--paper-raise: #ece4d0;--ink: #1f3f66;--ink-soft: rgba(31, 63, 102, .64);--ink-faint: rgba(31, 63, 102, .4);--accent: #b5432b;--accent-soft: rgba(181, 67, 43, .14);--hairline: rgba(31, 63, 102, .34);--grid-line: rgba(31, 63, 102, .1);--surface: rgba(31, 63, 102, .045);--surface-strong: rgba(31, 63, 102, .08);--status-live: #3f7d4a;--danger: #c13a3a;color-scheme:light}@media (max-width: 600px){:root{--fs-text: 16px}}@media (prefers-color-scheme: dark){:root{--paper: #0e2e52;--paper-raise: #123761;--ink: #e9eee3;--ink-soft: rgba(233, 238, 227, .7);--ink-faint: rgba(233, 238, 227, .44);--accent: #e2793f;--accent-soft: rgba(226, 121, 63, .18);--hairline: rgba(233, 238, 227, .32);--grid-line: rgba(233, 238, 227, .1);--surface: rgba(233, 238, 227, .05);--surface-strong: rgba(233, 238, 227, .09);--status-live: #7fc98c;--danger: #ff7b6b;color-scheme:dark}}:root[data-theme=dark]{--paper: #0e2e52;--paper-raise: #123761;--ink: #e9eee3;--ink-soft: rgba(233, 238, 227, .7);--ink-faint: rgba(233, 238, 227, .44);--accent: #e2793f;--accent-soft: rgba(226, 121, 63, .18);--hairline: rgba(233, 238, 227, .32);--grid-line: rgba(233, 238, 227, .1);--surface: rgba(233, 238, 227, .05);--surface-strong: rgba(233, 238, 227, .09);--status-live: #7fc98c;--danger: #ff7b6b;color-scheme:dark}:root[data-theme=light]{--paper: #f3eee0;--paper-raise: #ece4d0;--ink: #1f3f66;--ink-soft: rgba(31, 63, 102, .64);--ink-faint: rgba(31, 63, 102, .4);--accent: #b5432b;--accent-soft: rgba(181, 67, 43, .14);--hairline: rgba(31, 63, 102, .34);--grid-line: rgba(31, 63, 102, .1);--surface: rgba(31, 63, 102, .045);--surface-strong: rgba(31, 63, 102, .08);--status-live: #3f7d4a;--danger: #c13a3a;color-scheme:light}*{box-sizing:border-box;margin:0;padding:0;font-family:Constantia,Georgia,Iowan Old Style,ui-serif,serif}html,body{overflow-x:hidden;width:100%}body{background-color:var(--paper);color:var(--ink);transition:background-color .35s ease,color .35s ease}html{scroll-behavior:smooth;scroll-padding-top:109px}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}::selection{background:var(--accent);color:var(--paper)}body{counter-reset:sec}.sec{position:relative;counter-increment:sec}.sec:before{content:counter(sec,decimal-leading-zero);position:absolute;top:clamp(14px,3vw,36px);right:clamp(18px,4vw,48px);font-family:Bahn Sheet,Arial Narrow,Segoe UI Semibold,sans-serif;font-weight:300;font-size:clamp(4.5rem,15vw,12rem);line-height:.8;letter-spacing:-.02em;color:transparent;-webkit-text-stroke:1px var(--hairline);opacity:.5;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:0}.sec#hero:before,.sec#contact:before{display:none}.sec>*{position:relative;z-index:1}.sec--invert{background:var(--paper);color:var(--ink);box-shadow:0 0 0 100vmax var(--paper);clip-path:inset(0 -100vmax);--paper: #0e2e52;--paper-raise: #123761;--ink: #e9eee3;--ink-soft: rgba(233, 238, 227, .72);--ink-faint: rgba(233, 238, 227, .46);--accent: #e2793f;--accent-soft: rgba(226, 121, 63, .18);--hairline: rgba(233, 238, 227, .32);--grid-line: rgba(233, 238, 227, .1);--surface: rgba(233, 238, 227, .05);--surface-strong: rgba(233, 238, 227, .09);color-scheme:dark}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .sec--invert{--paper: #f3eee0;--paper-raise: #ece4d0;--ink: #1f3f66;--ink-soft: rgba(31, 63, 102, .68);--ink-faint: rgba(31, 63, 102, .45);--accent: #b5432b;--accent-soft: rgba(181, 67, 43, .14);--hairline: rgba(31, 63, 102, .34);--grid-line: rgba(31, 63, 102, .1);--surface: rgba(31, 63, 102, .05);--surface-strong: rgba(31, 63, 102, .09);color-scheme:light}}:root[data-theme=dark] .sec--invert{--paper: #f3eee0;--paper-raise: #ece4d0;--ink: #1f3f66;--ink-soft: rgba(31, 63, 102, .68);--ink-faint: rgba(31, 63, 102, .45);--accent: #b5432b;--accent-soft: rgba(181, 67, 43, .14);--hairline: rgba(31, 63, 102, .34);--grid-line: rgba(31, 63, 102, .1);--surface: rgba(31, 63, 102, .05);--surface-strong: rgba(31, 63, 102, .09);color-scheme:light}:root[data-theme=light] .sec--invert{--paper: #0e2e52;--paper-raise: #123761;--ink: #e9eee3;--ink-soft: rgba(233, 238, 227, .72);--ink-faint: rgba(233, 238, 227, .46);--accent: #e2793f;--accent-soft: rgba(226, 121, 63, .18);--hairline: rgba(233, 238, 227, .32);--grid-line: rgba(233, 238, 227, .1);--surface: rgba(233, 238, 227, .05);--surface-strong: rgba(233, 238, 227, .09);color-scheme:dark}@supports (animation-timeline: view()){@keyframes sec-line-grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes sec-title-reveal{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 -2% 0 0)}}.sec:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--accent);transform-origin:left;animation:sec-line-grow linear both;animation-timeline:view();animation-range:entry 30% cover 55%;pointer-events:none}.sec h2,.sec h1.about-title{animation:sec-title-reveal linear both;animation-timeline:view();animation-range:entry 8% entry 65%}}@media (prefers-reduced-motion: reduce){.sec:after,.sec h2{animation:none!important;clip-path:none!important}}
