:root{--bg: #f6f6f3;--dot: #dcdcd5;--ink: #101010;--ink-soft: #4a4a4a;--rule: #141414;--accent: #ffb07a;--accent-deep: #ff9147;--accent-line: #dd6a1e;--navy: #1e3a6b;--blue: #a9dcf7;--blue-deep: #79c9f2;--blue-line: #3ea3dd;--yellow: #fbe08a;--yellow-deep: #f6c53f;--yellow-line: #e0ab2c;--green: #86e29b;--shell-max: 1560px;--pad-l: clamp(26px, 9.8vw, 141px);--pad-r: clamp(20px, 6.7vw, 97px);--rail-offset: 16px;--section-gap: clamp(76px, 12vw, 172px);--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-hand: "Caveat", "Segoe Script", cursive;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--hand-radius: 14px 26px 16px 24px / 24px 14px 26px 16px;--hand-radius-alt: 22px 14px 26px 16px / 16px 24px 14px 26px;--ease-settle: cubic-bezier(.22, .8, .3, 1);--ease-draw: cubic-bezier(.4, 0, .15, 1)}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:var(--font-sans);color:var(--ink);background-color:var(--bg);background-image:radial-gradient(var(--dot) 1.15px,transparent 1.15px);background-size:22px 22px;background-position:-11px -11px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}img,svg{display:block;max-width:100%}h1,h2,h3,p,figure,ol,ul{margin:0}ol,ul{padding:0;list-style:none}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent-line);outline-offset:3px;border-radius:2px}.app{position:relative;max-width:var(--shell-max);margin:0 auto;overflow-x:clip}.app:before{content:"";position:absolute;top:0;bottom:0;left:calc(var(--pad-l) - var(--rail-offset));width:1px;background:var(--rule);opacity:.9;pointer-events:none;transform-origin:top center;animation:rule-drop 1.4s var(--ease-draw) both}@keyframes rule-drop{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.shell{padding-left:var(--pad-l);padding-right:var(--pad-r)}.section{padding-block:var(--section-gap) 0}.hl{--hl-color: var(--accent);padding:.04em .24em .1em;background-image:linear-gradient(var(--hl-color),var(--hl-color));background-repeat:no-repeat;background-size:100% 100%;background-position:0 0;box-decoration-break:clone;-webkit-box-decoration-break:clone}.hl--blue{--hl-color: var(--blue)}.hl--yellow{--hl-color: var(--yellow)}.hand{border:2px solid var(--ink);border-radius:var(--hand-radius)}.hand-note{font-family:var(--font-hand);font-weight:700;line-height:1}[data-reveal=up]{opacity:0;transform:translateY(24px);transition:opacity .7s var(--ease-settle) var(--d, 0ms),transform .7s var(--ease-settle) var(--d, 0ms)}[data-reveal=up].is-in{opacity:1;transform:none}[data-reveal=words] .word{display:inline-block;opacity:0;transform:translateY(28px) rotate(2.5deg);transition:opacity .55s var(--ease-settle) var(--d, 0ms),transform .75s var(--ease-settle) var(--d, 0ms)}[data-reveal=words].is-in .word{opacity:1;transform:none}[data-reveal] .hl,[data-reveal].hl{background-size:0% 100%;transition:background-size .6s var(--ease-draw) calc(var(--d, 0ms) + var(--hl-delay, .2s))}[data-reveal].is-in .hl,[data-reveal].is-in.hl{background-size:100% 100%}.stroke-draw{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset .75s var(--ease-draw) calc(var(--d, 0ms) + .12s)}.stroke-draw--head{transition-duration:.3s;transition-delay:calc(var(--d, 0ms) + .7s)}[data-reveal].is-in .stroke-draw{stroke-dashoffset:0}.rule-draw-x{transform:scaleX(0);transform-origin:left center;transition:transform .9s var(--ease-draw) var(--d, 0ms)}.rule-draw-y{transform:scaleY(0);transform-origin:top center;transition:transform .9s var(--ease-draw) var(--d, 0ms)}[data-reveal].is-in .rule-draw-x{transform:scaleX(1)}[data-reveal].is-in .rule-draw-y{transform:scaleY(1)}[data-reveal=pop]{opacity:0;transform:scale(.7) rotate(-8deg);transition:opacity .4s ease var(--d, 0ms),transform .6s cubic-bezier(.34,1.56,.64,1) var(--d, 0ms)}[data-reveal=pop].is-in{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition-duration:.01ms!important;transition-delay:0ms!important}[data-reveal],[data-reveal] .word{opacity:1!important;transform:none!important}[data-reveal] .hl,[data-reveal].hl{background-size:100% 100%!important}.stroke-draw{stroke-dashoffset:0!important}.rule-draw-x,.rule-draw-y{transform:none!important}}.logo{display:inline-flex;align-items:center;gap:9px;color:var(--ink)}.logo__word{font-size:calc(var(--logo-size) * .76);font-weight:500;letter-spacing:-.01em;line-height:1}.logo__mark{transform:rotate(calc(var(--px, 0) * 6deg));transition:transform .45s var(--ease-settle);overflow:visible}.c-mark__caret{transform-origin:25.5px 16px;transition:transform .4s var(--ease-settle)}.logo:hover .c-mark__caret{animation:mark-blink .9s steps(1) infinite}@keyframes mark-blink{0%,48%{opacity:1}50%,98%{opacity:0}to{opacity:1}}.logo:hover .c-mark__arc{stroke:var(--accent-line);transition:stroke .3s ease}@media(prefers-reduced-motion:reduce){.logo__mark{transform:none!important}.logo:hover .c-mark__caret{animation:none}}.header{padding-top:clamp(26px,3.4vw,44px)}.header__row{display:flex;align-items:center;justify-content:space-between;gap:20px}.header__nav{display:flex;align-items:center;gap:clamp(18px,2.6vw,38px);font-size:15px;font-weight:500}.header__nav a{position:relative;padding-bottom:2px}.header__nav a:after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1.6px;border-radius:2px;background:currentColor;transform:scaleX(0);transform-origin:left center;transition:transform .3s var(--ease-draw)}.header__nav a:hover:after,.header__nav a:focus-visible:after{transform:scaleX(1)}.header__hire{color:var(--accent-line)}.header__logo{transition:transform .25s var(--ease-settle)}.header__logo:hover{transform:rotate(-3deg) scale(1.04)}.doodles{position:absolute;inset:0;pointer-events:none;z-index:0}.doodle{position:absolute;display:block;left:var(--x);top:var(--y);width:var(--size);color:var(--ink);opacity:.24;transform:translate3d(calc(var(--px, 0) * var(--depth) * -9px),calc(var(--py, 0) * var(--depth) * -7px),0) rotate(var(--rot, 0deg));transition:transform .5s cubic-bezier(.2,.7,.3,1),opacity .4s ease}.doodle svg{width:100%;height:auto}.doodle--glyph{width:auto;font-family:var(--font-mono);font-size:var(--size);font-weight:500;line-height:1;white-space:nowrap;opacity:.22}@media(max-width:899px){.doodle{left:var(--mx);top:var(--my);width:var(--m-size);opacity:.2}.doodle--glyph{font-size:var(--m-size);width:auto;opacity:.19}.doodle--desktop{display:none}}@media(prefers-reduced-motion:reduce){.doodle{transform:rotate(var(--rot, 0deg))!important}}.swap{display:inline-grid;grid-template-areas:"word";justify-items:start;vertical-align:top;transition:width .26s var(--ease-settle) .16s}.swap__word{grid-area:word;white-space:nowrap;opacity:0}.swap__word.is-leaving{animation:swap-out .22s var(--ease-settle) both}.swap__word.is-current{animation:swap-in .4s var(--ease-settle) .34s both}@keyframes swap-in{0%{opacity:0;transform:translateY(.5em) rotate(5deg)}to{opacity:1;transform:none}}@keyframes swap-out{0%{opacity:1;transform:none}to{opacity:0;transform:translateY(-.46em) rotate(-5deg)}}@media(prefers-reduced-motion:reduce){.swap{transition:none}.swap__word{animation:none!important}.swap__word.is-current{opacity:1}}.hero{position:relative;padding-top:clamp(30px,4.4vw,56px)}.hero__badge{position:relative;z-index:1;display:flex;align-items:center;gap:clamp(8px,1.2vw,16px)}.hero__portrait{display:block;transform:translate3d(calc(var(--px, 0) * 11px),calc(var(--py, 0) * 7px),0);transition:transform .55s cubic-bezier(.2,.7,.3,1)}.hero__portrait img{height:clamp(112px,12vw,172px);width:auto;animation:portrait-float 7s ease-in-out infinite 1.2s}@keyframes portrait-float{0%,to{transform:translateY(0) rotate(-.6deg)}50%{transform:translateY(-9px) rotate(.8deg)}}.hero__arrow{display:block;color:var(--ink);margin-bottom:14px;transform-origin:92% 42%;transform:rotate(var(--aim, 0deg));transition:transform .4s cubic-bezier(.2,.7,.3,1)}.hero__note{display:inline-block;margin-bottom:14px}.hero__name{display:inline-block;font-family:var(--font-hand);font-weight:700;line-height:1;font-size:clamp(20px,2vw,26px);transform:rotate(calc(var(--px, 0) * 3.6deg)) translateY(calc(var(--py, 0) * -2.5px));transition:transform .45s cubic-bezier(.2,.7,.3,1)}.hero__name-ch{display:inline-block;opacity:0;transform:translateY(.32em) rotate(-10deg) scale(.8);transition:opacity .28s ease var(--d, 0ms),transform .45s var(--ease-settle) var(--d, 0ms)}[data-reveal].is-in .hero__name-ch{opacity:1;transform:none}.hero__grid{position:relative;z-index:1;display:grid;gap:clamp(26px,4vw,48px);margin-top:clamp(18px,2.6vw,30px);align-items:start}.hero__title{font-size:clamp(31px,4.2vw,56px);font-weight:700;line-height:1.16;letter-spacing:-.025em;max-width:19ch}.hero__title .word+.word{margin-left:.26em}.caret{display:inline-block;width:.075em;height:.78em;margin-left:.16em;vertical-align:baseline;transform:translateY(.04em);background:var(--accent-line);animation:caret-blink 1.15s steps(1) infinite}@keyframes caret-blink{0%,48%{opacity:1}50%,98%{opacity:0}to{opacity:1}}.hero__intro{font-size:clamp(15px,1.35vw,18px);line-height:1.55;max-width:33ch}.hero__aside{display:flex;flex-direction:column;align-items:flex-start;gap:clamp(18px,2.4vw,26px)}.hero__cta{display:inline-flex;flex-wrap:wrap;align-items:center;gap:12px 14px}.btn--ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink)}.btn--ghost:hover{background:var(--ink);color:#fff}.hero__download{font-family:var(--font-mono);font-size:clamp(11px,.95vw,12.5px);text-decoration:underline;text-underline-offset:3px;opacity:.7}.hero__download:hover{color:var(--accent-line);opacity:1}.hero__status{display:flex;flex-wrap:wrap;align-items:center;gap:4px 9px;font-family:var(--font-mono);font-size:clamp(11px,.95vw,12.5px);letter-spacing:.02em;color:var(--ink);opacity:.62}.hero__status-dot{width:7px;height:7px;border-radius:50%;background:#3fbf6a;box-shadow:0 0 #3fbf6a8c;animation:status-pulse 2.2s ease-out infinite}@keyframes status-pulse{0%{box-shadow:0 0 #3fbf6a8c}70%,to{box-shadow:0 0 0 7px #3fbf6a00}}.hero__status-text{white-space:nowrap}.hero__status-sep{opacity:.45}.btn{--mag-x: 0px;--mag-y: 0px;--lift: 0px;display:inline-flex;align-items:center;justify-content:center;padding:14px 30px;border:0;border-radius:4px;background:var(--ink);color:#fff;font-size:15px;font-weight:600;cursor:pointer;position:relative;overflow:hidden;transform:translate3d(var(--mag-x),calc(var(--mag-y) + var(--lift)),0);transition:transform .3s var(--ease-settle),background-color .22s ease,box-shadow .22s ease}.btn:after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 20%,rgb(255 176 122 / .45) 50%,transparent 80%);transform:translate(-110%);transition:transform .6s var(--ease-draw)}.btn:hover{background:#262626;--lift: -3px;box-shadow:0 12px 24px -14px #000000b3}.btn:hover:after{transform:translate(110%)}.btn:active{--lift: -1px}@media(min-width:900px){.hero__grid{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(40px,6vw,100px)}.hero__aside{padding-top:8px}}@media(max-width:899px){.hero__arrow .side-arrow{width:48px}.hero__title{max-width:14ch}}@media(prefers-reduced-motion:reduce){.hero__portrait,.hero__portrait img,.hero__name,.hero__arrow{animation:none;transform:none!important}.caret{animation:none}}.intro__index{display:block;margin-bottom:10px;font-family:var(--font-mono);font-size:clamp(10.5px,.9vw,12px);font-weight:500;letter-spacing:.08em;color:var(--ink);opacity:.42}.intro__label{font-size:clamp(24px,2.4vw,33px);font-weight:700;letter-spacing:.01em}.intro__arrow{display:block;width:max-content;margin:16px 0 0 18px;color:var(--ink);transform-origin:60% 8%;transform:rotate(var(--aim, 0deg));transition:transform .4s cubic-bezier(.2,.7,.3,1)}.intro__note{margin-top:26px;max-width:22ch;font-size:16px;line-height:1.5;color:var(--ink)}@media(max-width:899px){.intro__note{margin-top:16px;max-width:26ch}.intro__arrow{margin-left:10px}}@media(prefers-reduced-motion:reduce){.intro__arrow{transform:none!important}}.about{position:relative}.about__layout{position:relative;z-index:1}.about__body{display:grid;gap:clamp(16px,1.8vw,22px)}.about__para{font-size:clamp(15px,1.25vw,17px);line-height:1.62;max-width:62ch}.about__para:last-of-type{color:var(--ink-soft)}.about__facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(10px,1.4vw,18px);margin-top:clamp(12px,1.6vw,20px);max-width:560px}.fact{padding:clamp(12px,1.4vw,18px) clamp(12px,1.4vw,18px) clamp(14px,1.6vw,20px);border:2px solid;transition:transform .28s var(--ease-settle)}.fact:hover{transform:translateY(-4px) rotate(-1deg)}.fact__value{display:block;font-family:var(--font-mono);font-size:clamp(22px,2.4vw,32px);font-weight:600;line-height:1;letter-spacing:-.02em}.fact__label{display:block;margin-top:7px;font-size:clamp(11px,.95vw,12.5px);line-height:1.35;color:var(--ink-soft)}.fact--yellow{background:var(--yellow);border-color:var(--yellow-line);border-radius:16px 26px 18px 22px/22px 16px 26px 18px}.fact--blue{background:var(--blue);border-color:var(--blue-line);border-radius:24px 16px 26px 18px/18px 26px 16px 24px}.fact--accent{background:var(--accent);border-color:var(--accent-line);border-radius:18px 26px 16px 28px/28px 18px 24px 16px}@media(min-width:900px){.about__layout{display:grid;grid-template-columns:minmax(200px,300px) minmax(0,1fr);gap:clamp(20px,3vw,48px);align-items:start}.about__layout .intro{padding-top:clamp(10px,1.6vw,22px)}}@media(max-width:899px){.about__body{margin-top:28px}.about__facts{grid-template-columns:repeat(2,minmax(0,1fr))}.fact:last-child{grid-column:span 2}}.services{position:relative}.services__grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,1.7vw,24px);margin-top:clamp(30px,4vw,52px);margin-inline:-46px -14px}.card-slot{display:block;perspective:1100px}.card-slot[data-reveal=card]{opacity:0;transform:translateY(-36px) rotate(5deg) scale(.94);transition:opacity .5s ease var(--d, 0ms),transform .8s var(--ease-settle) var(--d, 0ms)}.card-slot[data-reveal=card].is-in{opacity:1;transform:none}.card{--rot: 0deg;--rest: 0px;--lift: 0px;--tilt-x: 0deg;--tilt-y: 0deg;position:relative;width:100%;aspect-ratio:212 / 240;display:flex;flex-direction:column;padding:clamp(18px,2.2vw,30px);padding-bottom:clamp(26px,7vw,96px);border:3px solid;overflow:hidden;transform:rotate(var(--rot)) translateY(calc(var(--rest) + var(--lift))) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));transition:transform .32s var(--ease-settle),box-shadow .3s ease}.card__tool{position:absolute;top:clamp(14px,1.8vw,24px);right:clamp(16px,2vw,26px);font-family:var(--font-hand);font-weight:700;font-size:clamp(16px,1.5vw,21px);line-height:1;white-space:nowrap}.card__icon{margin-top:clamp(28px,4.4vw,58px);transition:transform .35s var(--ease-settle)}.card:hover .card__icon{transform:rotate(-8deg) scale(1.08)}.card__title{margin-top:auto;padding-top:16px;font-size:clamp(17px,1.75vw,24px);font-weight:500;line-height:1.25;letter-spacing:-.01em;max-width:13ch}.card__sheen{position:absolute;inset:0;pointer-events:none;background:linear-gradient(105deg,transparent 34%,rgb(255 255 255 / .55) 50%,transparent 66%);transform:translate(-115%);transition:transform .75s var(--ease-draw)}.card:hover .card__sheen{transform:translate(115%)}.card--yellow{background:var(--yellow);border-color:var(--yellow-line);border-radius:18px 30px 20px 26px/26px 18px 30px 20px}.card--blue{background:var(--blue);border-color:var(--blue-line);border-radius:26px 18px 28px 20px/20px 28px 18px 26px}.card--accent:before{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgb(20 20 20 / .055) 0 1px,transparent 1px 5px)}.card--accent{background:var(--accent);border-color:var(--accent-line);border-radius:20px 28px 18px 30px/30px 20px 26px 18px}.card--pos1{--rot: -3.4deg}.card--pos2{--rot: 2.2deg;--rest: -6px}.card--pos3{--rot: -2.2deg;--rest: 4px}.card-slot:nth-child(2){z-index:2}.card--pos1:hover{--lift: -10px}.card--pos2:hover{--lift: -18px}.card--pos3:hover{--lift: -6px}.card:hover{box-shadow:0 22px 34px -26px #00000073}@media(max-width:899px){.services__grid{grid-template-columns:minmax(0,1fr);gap:26px;margin-inline:0;max-width:330px}.card{aspect-ratio:240 / 212}.card__title{max-width:14ch}.card--pos2,.card--pos3{--rest: 0px}}@media(prefers-reduced-motion:reduce){.card{--tilt-x: 0deg !important;--tilt-y: 0deg !important}.card__sheen{display:none}}.ticker{position:relative;margin-top:calc(var(--section-gap) * .78);overflow:hidden;border-block:1px solid rgb(20 20 20 / .28)}.ticker__track{display:flex;width:max-content;animation:ticker-run 44s linear infinite}.ticker__clone{display:flex}.ticker__group{display:flex;align-items:center}.ticker__item{display:inline-flex;align-items:center;gap:9px;padding:13px clamp(14px,1.5vw,24px);font-family:var(--font-mono);font-size:clamp(11.5px,1vw,13px);font-weight:500;letter-spacing:.02em;white-space:nowrap;color:var(--ink)}.ticker__dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.ticker__item--dev .ticker__dot{background:var(--navy)}.ticker__item--sec .ticker__dot{background:var(--accent-line)}.ticker__item--design .ticker__dot{background:var(--blue-line)}.ticker__item--sec{color:var(--accent-line)}@keyframes ticker-run{to{transform:translate(-50%)}}.ticker:hover .ticker__track{animation-play-state:paused}.ticker:before,.ticker:after{content:"";position:absolute;top:0;bottom:0;width:clamp(28px,6vw,90px);z-index:1;pointer-events:none}.ticker:before{left:0;background:linear-gradient(90deg,var(--bg),transparent)}.ticker:after{right:0;background:linear-gradient(270deg,var(--bg),transparent)}@media(prefers-reduced-motion:reduce){.ticker__track{animation:none}.ticker{overflow-x:auto}.ticker__clone{display:none}}.projects{position:relative}.projects__layout{position:relative;z-index:1}.projects__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,2.2vw,34px)}.project-slot{perspective:1200px}.project{--lift: 0px;--tilt-x: 0deg;--tilt-y: 0deg;display:block;padding:clamp(10px,1vw,14px);background:transparent;transform:translateY(var(--lift)) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));transition:transform .32s var(--ease-settle),box-shadow .3s ease}.project-slot:nth-child(2n) .project{border-radius:var(--hand-radius-alt)}.project:hover{--lift: -6px;box-shadow:0 24px 36px -30px #00000080}.project__link{display:block}.project__shot{overflow:hidden;isolation:isolate;border-width:1.5px;border-radius:10px 16px/16px 10px;background:#ececec}.project__shot{position:relative}.project__status{position:absolute;top:10px;left:10px;z-index:1;display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;background:var(--ink);color:#fff;font-family:var(--font-mono);font-size:clamp(9.5px,.8vw,11px);letter-spacing:.02em}.project__status:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--green)}.project__shot .mock,.project__shot img{transition:transform .5s var(--ease-settle);width:100%;height:auto;aspect-ratio:320 / 284;object-fit:cover}.project:hover .mock,.project:hover img{transform:scale(1.045)}.project__foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 6px 4px}.project__head{display:flex;flex-direction:column;gap:5px;min-width:0}.project__stack{font-family:var(--font-mono);font-size:clamp(9.5px,.8vw,11px);letter-spacing:.02em;color:var(--ink);opacity:.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project__title{font-size:clamp(15px,1.4vw,19.5px);font-weight:500;line-height:1.3;letter-spacing:-.01em;max-width:13ch}.project__tag-wrap{position:relative;flex-shrink:0;padding-left:4px}.project__flag{position:absolute;top:-13px;left:-6px;transform-origin:bottom left;transition:transform .3s var(--ease-settle)}.project:hover .project__flag{transform:rotate(-12deg)}.project__tag{display:inline-block;padding:7px 16px 8px;border-radius:999px;font-size:clamp(11.5px,1vw,13.5px);font-weight:500;color:var(--ink);white-space:nowrap;transition:transform .25s var(--ease-settle)}.project:hover .project__tag{transform:translateY(-2px) scale(1.05)}.project__tag--accent{background:var(--accent-deep)}.project__tag--blue{background:var(--blue-deep)}.project__tag--yellow{background:var(--yellow-deep)}.project__tag--green{background:var(--green)}.landings{margin-top:clamp(32px,4vw,56px)}.landings__label{font-family:var(--font-mono);font-size:clamp(10.5px,.9vw,12px);font-weight:500;letter-spacing:.04em;text-transform:uppercase;opacity:.55;margin-bottom:10px}.landings__list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(16px,2.2vw,34px)}.landings__link{display:flex;align-items:baseline;gap:10px;padding:14px 4px;border-bottom:1.5px solid var(--ink);transition:color .2s ease}.landings__title{font-size:clamp(15px,1.3vw,18px);font-weight:500}.landings__host{min-width:0;font-family:var(--font-mono);font-size:clamp(9.5px,.8vw,11px);opacity:.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.landings__arrow{margin-left:auto;transition:transform .25s var(--ease-settle)}.landings__link:hover{color:var(--accent-line)}.landings__link:hover .landings__arrow{transform:translate(2px,-2px)}@media(min-width:900px){.landings{grid-column:2}.projects__layout{display:grid;grid-template-columns:minmax(200px,300px) minmax(0,1fr);gap:clamp(20px,3vw,48px);align-items:start}.projects__layout .intro{padding-top:clamp(40px,6vw,86px)}}@media(max-width:899px){.projects__grid{grid-template-columns:minmax(0,1fr);margin-top:28px;max-width:360px}.landings__list{grid-template-columns:minmax(0,1fr);max-width:360px}}@media(prefers-reduced-motion:reduce){.project{--tilt-x: 0deg !important;--tilt-y: 0deg !important}}.experience{position:relative}.experience__layout{position:relative;z-index:1}.xp{position:relative;padding-block:clamp(28px,4vw,52px)}.xp__rule{position:absolute;background:var(--rule);opacity:.85}.xp__rule--top,.xp__rule--bottom{height:1px;left:-42px;right:-20px}.xp__rule--top{top:0}.xp__rule--bottom{bottom:0}.xp__rule--left,.xp__rule--right{width:1px;top:-16px}.xp__rule--left{left:0;bottom:-120px}.xp__rule--right{right:44px;bottom:-4px}.xp__list{display:grid;gap:clamp(18px,2.2vw,28px);padding-left:clamp(20px,2.4vw,34px)}.xp__item{display:flex;align-items:flex-start;gap:clamp(14px,1.6vw,22px)}.xp__num{flex-shrink:0;transform:rotate(calc(var(--px, 0) * 4deg)) translate(calc(var(--px, 0) * 2px),calc(var(--py, 0) * 1.5px));transition:transform .5s cubic-bezier(.2,.7,.3,1);display:grid;place-items:center;width:clamp(44px,4vw,56px);aspect-ratio:1;border:2px solid;border-radius:10px 14px/14px 10px;font-size:clamp(18px,1.7vw,24px);font-weight:500}.xp__num--yellow{background:var(--yellow);border-color:var(--yellow-line)}.xp__num--blue{background:var(--blue);border-color:var(--blue-line)}.xp__num--accent{background:var(--accent);border-color:var(--accent-line)}.xp__role{font-size:clamp(14px,1.3vw,18px);font-weight:400}.xp__role strong{font-weight:700}.xp__detail{margin-top:4px;font-size:clamp(11.5px,1vw,13.5px);color:var(--ink-soft)}.xp__date{margin-top:4px;font-family:var(--font-mono);font-size:clamp(10.5px,.9vw,12.5px);color:#8d8d8d}@media(min-width:900px){.experience__layout{display:grid;grid-template-columns:minmax(220px,380px) minmax(0,1fr);gap:clamp(20px,3vw,40px);align-items:start}.experience__layout .intro{padding-top:clamp(30px,5vw,70px)}}@media(max-width:899px){.xp{padding-block:24px 0;margin-top:12px}.xp__rule{display:none}.xp__list{padding-left:0}}@media(prefers-reduced-motion:reduce){.xp__num{transform:none!important}}.contact{position:relative}.contact__layout{position:relative;z-index:1}.form{display:grid;gap:clamp(24px,3.4vw,44px)}.field{position:relative;display:flex;align-items:baseline;gap:clamp(10px,1.2vw,16px);padding-bottom:8px;border-bottom:1.5px solid var(--ink)}.field:after{content:"";position:absolute;left:0;right:0;bottom:-1.5px;height:2.5px;border-radius:2px;background:var(--accent-line);transform:scaleX(0);transform-origin:left center;transition:transform .45s var(--ease-draw)}.field:focus-within:after{transform:scaleX(1)}.field__label{flex-shrink:0;font-family:var(--font-hand);font-weight:700;font-size:clamp(16px,1.5vw,20px);line-height:1.1}.field input{flex:1;min-width:0;border:0;background:transparent;padding:0 0 2px;font-family:var(--font-hand);font-size:clamp(16px,1.5vw,20px);line-height:1.1}.field input:focus{outline:none}.field input::placeholder{color:#2c2c2c;opacity:.55;transition:opacity .25s ease}.field:focus-within input::placeholder{opacity:.3}.form__secure{display:flex;align-items:center;gap:8px;margin-top:-6px;font-family:var(--font-mono);font-size:clamp(10.5px,.9vw,12px);letter-spacing:.01em;color:var(--ink);opacity:.55}.form__secure-icon{width:12px;flex-shrink:0;color:var(--accent-line);opacity:.9}.form__secure-icon svg{width:100%;height:auto}.form__foot{display:flex;align-items:center;justify-content:flex-end;gap:16px;margin-top:clamp(4px,1vw,14px)}.form__status{font-size:13px;line-height:1.4;color:var(--ink-soft);max-width:34ch;text-align:right}.form__status--sent{color:#1f7a44}.form__status--error{color:#b4341f}.form__botcheck{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}.field input:disabled{opacity:.6}.btn:disabled{cursor:progress;opacity:.75}.btn:disabled:hover{--lift: 0px;background:var(--ink);box-shadow:none}.form__fallback{margin-top:clamp(18px,2.2vw,28px);font-family:var(--font-mono);font-size:clamp(10.5px,.9vw,12px);color:var(--ink);opacity:.55}.form__fallback a{text-decoration:underline;text-underline-offset:3px}.form__fallback a:hover{color:var(--accent-line)}.contact .intro__note strong{font-weight:700}@media(min-width:900px){.contact__layout{display:grid;grid-template-columns:minmax(220px,42%) minmax(0,1fr);gap:clamp(20px,3vw,40px);align-items:start}.contact__layout .intro{padding-top:clamp(20px,3vw,46px)}.form__fallback{grid-column:2}}@media(max-width:899px){.form{margin-top:28px}.form__secure{display:flex;align-items:center;gap:8px;margin-top:-6px;font-family:var(--font-mono);font-size:clamp(10.5px,.9vw,12px);letter-spacing:.01em;color:var(--ink);opacity:.55}.form__secure-icon{width:12px;flex-shrink:0;color:var(--accent-line);opacity:.9}.form__secure-icon svg{width:100%;height:auto}.form__foot{justify-content:flex-start}}.footer{position:relative;margin-top:clamp(80px,12vw,170px);padding-bottom:clamp(40px,5vw,66px)}.footer__rule{display:block;height:1px;background:var(--rule);opacity:.9}.footer__inner{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding-top:clamp(34px,4.6vw,62px)}.footer__end{display:flex;flex-direction:column;align-items:center;gap:clamp(12px,1.6vw,18px)}.footer__socials{display:flex;flex-wrap:wrap;gap:clamp(10px,1.6vw,22px)}.footer__social{--mag-x: 0px;--mag-y: 0px;--lift: 0px;display:inline-block;transform:translate3d(var(--mag-x),calc(var(--mag-y) + var(--lift)),0) rotate(var(--tw, 0deg));padding:7px 14px 8px;border:1.4px solid var(--ink);border-radius:6px 12px 7px 11px/11px 7px 12px 6px;font-size:clamp(12.5px,1.05vw,14.5px);font-weight:500;transition:background-color .22s ease,color .22s ease,transform .22s var(--ease-settle)}.footer__social:hover{background:var(--ink);color:var(--bg);--lift: -3px;--tw: -1.5deg}.footer__copy{font-size:clamp(11px,1vw,13px);color:var(--ink)}@media(max-width:899px){.footer__inner{flex-direction:column;align-items:flex-start;gap:20px}.footer__end{align-items:flex-start}}@media(prefers-reduced-motion:reduce){.footer__social{transform:none!important}}
