:root{--ink-0:#0a0a0b;--ink-1:#0f0f11;--ink-2:#151518;--ink-3:#1d1d21;--text-0:#edebe6;--text-1:#9a9892;--text-2:#67655f;--line:#edebe61c;--line-strong:#edebe633;--paper:#fff;--reveal-duration:.52s;--step-mono:.72rem;--step--1:.83rem;--step-0:clamp(.95rem, .9rem + .2vw, 1.05rem);--step-1:clamp(1.15rem, 1rem + .6vw, 1.5rem);--step-2:clamp(1.6rem, 1.2rem + 1.6vw, 2.6rem);--step-3:clamp(2.2rem, 1.2rem + 3.2vw, 5.5rem);--step-4:clamp(2.6rem, 1.2rem + 4.4vw, 8rem);--page-pad:clamp(20px, 4vw, 56px);--content-max:1664px;--gutter-col:clamp(120px, 11vw, 208px);--gutter-gap:clamp(24px, 4vw, 64px);--measure:min(46rem, 100%);--demo-block:min(70svh, 920px);--ease:cubic-bezier(.22, 1, .36, 1);color:var(--text-0);background:var(--ink-0);font-synthesis:none;font-variant-ligatures:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:Archivo,ui-sans-serif,system-ui,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100svh;font-size:var(--step-0);margin:0;line-height:1.5}h1,h2,h3{letter-spacing:-.03em;overflow-wrap:break-word;text-wrap:balance;margin:0;font-weight:500;line-height:1.02}p{text-wrap:pretty;margin:0}a{color:inherit;text-decoration:none}img,video{max-width:100%;display:block}button{font:inherit}:focus-visible{outline:2px solid var(--text-0);outline-offset:3px}.vh{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip-link{z-index:100;border:1px solid var(--line-strong);background:var(--ink-2);padding:.6rem .9rem;position:fixed;top:.5rem;left:.5rem;transform:translateY(-200%)}.skip-link:focus{transform:none}.mono{font-family:JetBrains Mono,ui-monospace,monospace;font-size:var(--step-mono);letter-spacing:.02em;font-variant-numeric:tabular-nums;font-weight:400}.shell{width:min(100%, var(--content-max));padding-inline:var(--page-pad);margin:0 auto}.gutter{grid-template-columns:var(--gutter-col) minmax(0, 1fr);gap:var(--gutter-gap);display:grid}.gutter__aside{color:var(--text-2);flex-direction:column;gap:.45rem;padding-top:.4rem;display:flex}.gutter__aside dt{color:var(--text-2)}.gutter__aside dd{color:var(--text-1);margin:0 0 .9rem}.gutter__aside dd:last-child{margin-bottom:0}@media (width<=864px){.gutter{grid-template-columns:minmax(0,1fr);gap:1.5rem}.gutter__aside{flex-flow:wrap;align-items:flex-start;gap:1.25rem;padding-top:0}.gutter__aside dl{flex:14rem;grid-template-columns:auto minmax(0,1fr);gap:.15rem 1.25rem;display:grid}.gutter__aside dd{margin-bottom:.4rem}}.masthead{z-index:20;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#0a0a0bd1;position:sticky;top:0}.masthead__inner{justify-content:space-between;align-items:center;gap:1.5rem;height:3.5rem;display:flex}.masthead__mark{min-width:0;font-size:var(--step--1);letter-spacing:-.01em;white-space:nowrap;align-items:center;gap:.75rem;font-weight:500;display:flex}.masthead__here{text-overflow:ellipsis;min-width:0;overflow:hidden}.masthead__back,.masthead__sep{flex:none}.masthead__back{color:var(--text-1);transition:transform .2s var(--ease);display:inline-block}.masthead__mark:hover .masthead__back{transform:translate(-.2rem)}.masthead__sep{color:var(--text-2)}.masthead__here{color:var(--text-1)}.masthead__link{color:var(--text-1);transition:color .16s var(--ease)}.masthead__link:hover{color:var(--text-0)}@media (width<=640px){.masthead__link{display:none}}.rule{background:var(--line);border:0;height:1px;margin:0}.section-label{color:var(--text-2);justify-content:space-between;align-items:baseline;gap:1rem;padding-bottom:1.1rem;display:flex}.section-label__title{letter-spacing:.02em;font-weight:400}.slot{border:1px dashed var(--line-strong);color:var(--text-2);padding:.7rem .9rem}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){mix-blend-mode:normal;animation:none}.demo-transition-back::view-transition-old(root){z-index:2}.demo-transition-back::view-transition-new(root){z-index:1}.cv-scene-transition::view-transition-group(root){animation-duration:var(--reveal-duration);animation-timing-function:var(--ease)}.pdf-links{z-index:2;pointer-events:none;position:absolute;inset:0}.pdf-links__link{pointer-events:auto;border-radius:2px;position:absolute}.pdf-links__link:focus-visible{outline-offset:1px;outline:2px solid #1677c8}.intro{padding-block:clamp(3.5rem,9vw,7rem) clamp(3rem,7vw,5.5rem)}.intro__portrait{aspect-ratio:3/4;filter:grayscale()contrast(1.05);object-fit:cover;object-position:center 22%;width:100%;height:auto;transition:filter .5s var(--ease);margin-bottom:1.4rem}.intro:hover .intro__portrait{filter:grayscale(0)contrast()}.intro__lede{max-width:var(--measure);font-size:var(--step-2);letter-spacing:-.025em;font-weight:400;line-height:1.16}.intro__body{max-width:var(--measure);color:var(--text-1);font-size:var(--step-0);flex-direction:column;gap:1rem;margin-top:1.75rem;line-height:1.65;display:flex}.intro__body:empty{display:none}@media (width<=864px){.intro__portrait{flex:none;width:8.5rem;margin-bottom:0}}.work-index{border-top:1px solid var(--line);padding-top:1.5rem;padding-bottom:clamp(1.5rem,3vw,2.5rem)}.work-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.work-row{border-bottom:1px solid var(--line);transition:padding-inline .26s var(--ease);grid-template-columns:3rem minmax(0,1fr) clamp(6rem,12vw,11rem) auto 3.5rem 1.5rem;align-items:center;gap:clamp(.75rem,2vw,1.75rem);padding:clamp(1.4rem,2.6vw,2.1rem) 0;display:grid;position:relative}.work-row:hover,.work-row:focus-visible{padding-inline:clamp(.5rem,1.5vw,1.25rem)}.work-row:before{z-index:-1;background:var(--ink-1);content:"";opacity:0;transition:opacity .26s var(--ease);position:absolute;inset:0}.work-row:hover:before,.work-row:focus-visible:before{opacity:1}.work-row__index{color:var(--text-2);transition:color .26s var(--ease)}.work-row:hover .work-row__index{color:var(--text-1)}.work-row__title{min-width:0;font-size:var(--step-3);letter-spacing:-.04em;overflow-wrap:break-word;font-weight:500;line-height:1}.work-row__stack,.work-row__year{color:var(--text-2);white-space:nowrap}.work-row__year{text-align:right}.work-row__frame{align-self:stretch;position:relative}.work-row__thumb{aspect-ratio:16/10;filter:grayscale(.4);object-fit:cover;opacity:0;pointer-events:none;width:100%;height:auto;transition:opacity .3s var(--ease), filter .3s var(--ease), transform .4s var(--ease);position:absolute;top:50%;left:0;transform:translateY(-50%)scale(.94)}.work-row:hover .work-row__thumb{filter:grayscale(0);opacity:1;transform:translateY(-50%)scale(1)}.work-row__arrow{color:var(--text-2);opacity:0;transition:opacity .26s var(--ease), transform .26s var(--ease);font-size:1.1rem;transform:translate(-.4rem)}.work-row:hover .work-row__arrow{opacity:1;transform:none}@media (width<=864px){.work-row{grid-template-columns:2.5rem minmax(0,1fr) auto;row-gap:.5rem}.work-row__stack{white-space:normal;grid-area:2/2/3/4}.work-row__arrow,.work-row__frame{display:none}}.activity{border-top:1px solid var(--line);padding-block:clamp(3rem,7vw,5rem)}.activity__chart-shell{scrollbar-width:thin;overflow-x:auto}.activity__chart{grid-template-rows:repeat(7,1fr);grid-auto-columns:minmax(.4rem,1fr);grid-auto-flow:column;gap:.16rem;width:100%;min-width:42rem;height:5.6rem;display:grid}.activity__chart:empty{background:var(--ink-1);min-height:5.6rem}.activity__chart.is-unavailable{opacity:.4}.activity__day{background:#edebe60d;min-width:0}.activity__day[data-level="1"]{background:#edebe62e}.activity__day[data-level="2"]{background:#edebe657}.activity__day[data-level="3"]{background:#edebe694}.activity__day[data-level="4"]{background:#edebe6e0}.activity__meta{color:var(--text-2);justify-content:space-between;gap:1rem;margin-top:1rem;display:flex}.colophon{border-top:1px solid var(--line);color:var(--text-2);justify-content:space-between;align-items:baseline;gap:1rem;padding-block:1.5rem 2.5rem;display:flex}@media (width<=640px){.colophon,.activity__meta{flex-direction:column;align-items:flex-start;gap:.5rem}}.project{padding-block:clamp(2.5rem,6vw,4.5rem) clamp(3rem,7vw,5rem)}.project__title{font-size:var(--step-4);letter-spacing:-.045em;font-weight:500;line-height:.94}.project__standfirst{max-width:var(--measure);color:var(--text-1);font-size:var(--step-1);letter-spacing:-.015em;margin-top:clamp(1.25rem,3vw,2rem);font-weight:400;line-height:1.35}.project__body{max-width:var(--measure);color:var(--text-1);flex-direction:column;gap:1.1rem;margin-top:clamp(1.75rem,4vw,2.75rem);line-height:1.7;display:flex}.project__body:empty{display:none}.demo{width:min(100%, calc(var(--demo-block) * var(--demo-ratio)));margin:clamp(2.5rem,6vw,4.5rem) auto 0}.demo__stage{width:100%;aspect-ratio:var(--demo-ratio);border:1px solid var(--line);background:var(--ink-1);position:relative;overflow:hidden}.demo__interaction-state{z-index:12;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#e1f6f8f0;font-size:var(--step-mono);letter-spacing:.06em;opacity:0;pointer-events:none;transition:opacity .36s var(--ease), transform .36s var(--ease);background:#050d10d1;border:1px solid #8bdae48a;margin:0;padding:.48rem .72rem;position:absolute;top:clamp(.65rem,2vw,1rem);left:50%;transform:translate(-50%,-.35rem)}.demo__interaction-state--non-interactive{color:#edebe6d1;background:#0a0a0bd1;border-color:#edebe652}.demo__interaction-state.is-visible{opacity:1;transform:translate(-50%)}@keyframes interaction-viewport-pulse{0%,to{border-color:#8bdae42e;box-shadow:inset 0 0 0 1px #8bdae40f,inset 0 0 16px #56b0c20f}50%{border-color:#8bdae46b;box-shadow:inset 0 0 0 1px #8bdae429,inset 0 0 20px #56b0c229}}.interaction-hint--viewport:before{z-index:10;content:"";opacity:0;pointer-events:none;border:1px solid #75becd00;position:absolute;inset:0;box-shadow:inset 0 0 0 1px #75becd00,inset 0 0 24px #56b0c200}.interaction-hint--viewport.is-interaction-hint-pulsing:before{opacity:1;animation:1s ease-in-out infinite interaction-viewport-pulse}@media (prefers-reduced-motion:reduce){.interaction-hint--viewport.is-interaction-hint-pulsing:before{border-color:#8bdae44d;box-shadow:inset 0 0 0 1px #8bdae41a,inset 0 0 18px #56b0c21a}}.demo-page{--demo-bar-height:72px;z-index:100;grid-template-rows:var(--demo-bar-height) minmax(0, 1fr);background:var(--ink-0);justify-items:center;display:grid;position:fixed;inset:0;overflow:hidden}.demo-page--revealing .demo-page__back{pointer-events:none}.demo-page__stage{aspect-ratio:auto;opacity:1;border:0;grid-row:2;align-self:stretch;width:100vw;height:100%;position:relative}.demo-page .demo__stage>iframe,.demo-page .demo__canvas,.demo-page .demo__idle{transition:none}.demo-page__back{z-index:20;margin-left:max(20px, env(safe-area-inset-left));border:1px solid var(--line-strong);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--text-1);cursor:pointer;transition:color .16s var(--ease), border-color .16s var(--ease), background .16s var(--ease);background:#0a0a0bb8;border-radius:999px;grid-row:1;place-self:center start;padding:.55rem .85rem;position:relative}.demo-page__back:hover{border-color:var(--text-1);color:var(--text-0);background:#0a0a0be0}.demo__stage>iframe{opacity:0;width:100%;height:100%;transition:opacity .4s var(--ease);border:0;position:absolute;inset:0}.demo__stage>iframe.is-ready{opacity:1}.demo__stage>video{background:var(--ink-0);object-fit:contain;width:100%;height:100%}.demo__canvas{cursor:crosshair;width:100%;height:100%;image-rendering:pixelated;opacity:0;touch-action:none;transition:opacity .6s;position:absolute;inset:0}.demo__canvas.is-ready{opacity:1}.demo__status{border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--text-1);background:#0a0a0bb8;padding:.5rem .8rem;position:absolute;bottom:1rem;left:50%;transform:translate(-50%)}.demo__status:empty{display:none}.demo__status.is-ready{opacity:0;transition:opacity .7s 3s}.demo__idle{isolation:isolate;background:var(--ink-1);text-align:center;transition:opacity .32s var(--ease);flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding:1.5rem;display:flex;position:absolute;inset:0}.demo__idle-poster{z-index:0;filter:grayscale(.35);object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.demo__idle:after{z-index:1;content:"";background:linear-gradient(#0a0a0b6b,#0a0a0bc7);position:absolute;inset:0}.demo__start,.demo__idle-note{z-index:2;position:relative}.demo__idle-note{max-width:26rem;color:var(--text-2)}.demo__idle.is-hidden{opacity:0;pointer-events:none;visibility:hidden}.demo__start{border:1px solid var(--line-strong);color:var(--text-0);cursor:pointer;font-size:var(--step--1);transition:border-color .18s var(--ease), background-color .18s var(--ease);background:#edebe60a;padding:.8rem 1.4rem;font-weight:500}.demo__start:hover:not(:disabled){border-color:var(--text-1);background:#edebe61a}.demo__start:disabled{color:var(--text-2);cursor:progress}.demo__caption{color:var(--text-2);justify-content:space-between;align-items:baseline;gap:1rem;margin:0;padding-top:.85rem;display:flex}.demo__actions{gap:1.1rem;display:flex}.demo__action{border:0;border-bottom:1px solid var(--line-strong);color:var(--text-1);cursor:pointer;font-family:JetBrains Mono,ui-monospace,monospace;font-size:var(--step-mono);transition:color .16s var(--ease);background:0 0;padding:0}.demo__action:hover{color:var(--text-0)}.demo__action[hidden]{display:none}.input-monitor{border:1px solid var(--line);color:var(--text-2);grid-template-columns:minmax(130px,.7fr) minmax(0,2fr) 62px;align-items:center;gap:clamp(.8rem,2vw,1.6rem);margin-top:1.5rem;padding:1rem 1.1rem;display:grid}.input-monitor__state{color:var(--text-1);font-family:Archivo,sans-serif;font-size:var(--step--1);letter-spacing:0;margin-top:.35rem;font-weight:400;line-height:1.4;display:block}.keyboard{gap:.28em;min-width:0;font-size:clamp(4.5px,.78vw,7.5px);display:grid;overflow:hidden}.keyboard__row{gap:.28em;min-width:0;display:flex}.keyboard__row--inset{padding-left:.9em}.keyboard__row--inset-deep{padding-left:1.8em}.keyboard kbd{border:1px solid var(--line);min-width:2.8em;height:2.6em;color:var(--text-2);place-items:center;padding:0 .3em;font:500 1em/1 JetBrains Mono,ui-monospace,monospace;transition:color 90ms,background-color 90ms,border-color 90ms;display:grid}.keyboard .key-wide{min-width:5em}.keyboard .key-space{flex:1;min-width:7.5em}.keyboard kbd.is-active{border-color:var(--text-0);color:var(--ink-0);background:var(--text-0)}.mouse{border:1px solid var(--line);border-radius:22px 22px 17px 17px;justify-self:end;width:44px;height:62px;position:relative;overflow:hidden}.mouse__button{width:50%;height:27px;transition:background-color 90ms;position:absolute;top:0}.mouse__button--left{border-right:1px solid var(--line);left:0}.mouse__button--right{right:0}.mouse__button.is-active,.mouse__wheel.is-active{background:var(--text-0)}.mouse__wheel{border:1px solid var(--line-strong);border-radius:99px;width:5px;height:13px;transition:background-color 90ms,transform 90ms;position:absolute;top:8px;left:50%;transform:translate(-50%)}.mouse__wheel.is-up{transform:translate(-50%,-2px)}.mouse__wheel.is-down{transform:translate(-50%,2px)}@media (width<=640px){.input-monitor{grid-template-columns:minmax(0,1fr) 62px}.input-monitor__copy{grid-column:1/-1}}.next-project{border-top:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:1rem;padding-block:clamp(2rem,5vw,3.25rem) clamp(3rem,7vw,4.5rem);display:flex}.next-project__title{min-width:0;font-size:var(--step-2);letter-spacing:-.035em;overflow-wrap:break-word;transition:transform .24s var(--ease);font-weight:500}.next-project:hover .next-project__title{transform:translate(.35rem)}.render-failed .demo__idle{opacity:1;visibility:visible}.landing{background:var(--ink-0);height:100svh;overflow:hidden}.landing__stage{grid-template-columns:clamp(160px,36%,690px) minmax(0,1fr);height:100%;display:grid}.landing__photo{height:100%;position:relative;overflow:hidden}.landing__photo img{object-fit:cover;object-position:center 20%;width:100%;height:100%}.landing__panel{height:100%;position:relative}.landing__hello,.landing__cv,.landing__work{padding:var(--page-pad);transition:opacity .42s var(--ease), transform .42s var(--ease);flex-direction:column;justify-content:center;display:flex;position:absolute;inset:0}.landing__hello{opacity:clamp(0, calc(1 - var(--p,0)), 1);transform:translateY(calc(var(--p,0) * -1.5rem))}.landing__eyebrow{color:var(--text-2);margin-bottom:.75rem}.landing__name{max-width:16ch;font-size:var(--step-4)}.landing-github{border:1px solid var(--line);background:linear-gradient(135deg,#edebe612,#edebe605);border-radius:18px;grid-template-columns:auto minmax(0,1fr);align-items:center;width:min(100%,620px);margin-top:clamp(1.5rem,4vh,2.75rem);display:grid;position:relative;overflow:hidden}.landing-github__profile{z-index:1;border-right:1px solid var(--line);background:#0a0a0b57;grid-template-columns:3.5rem minmax(0,1fr) auto;align-items:center;gap:.8rem;min-width:12rem;height:100%;padding:1rem 1.1rem;display:grid;position:relative}.landing-github__avatar{border:1px solid var(--line-strong);object-fit:cover;width:3.5rem;height:3.5rem;transition:filter .24s var(--ease), transform .24s var(--ease);border-radius:50%}.landing-github__identity{flex-direction:column;min-width:0;display:flex}.landing-github__label{color:var(--text-2)}.landing-github__identity strong{font-size:var(--step-0);text-overflow:ellipsis;font-weight:500;overflow:hidden}.landing-github__arrow{color:var(--text-2);transition:color .18s var(--ease), transform .22s var(--ease)}.landing-github__profile:hover .landing-github__avatar{filter:contrast(1.08);transform:rotate(-3deg)scale(1.04)}.landing-github__profile:hover .landing-github__arrow{color:var(--text-0);transform:translate(2px,-2px)}.landing-github__activity{min-width:0;padding:1rem 1.1rem .85rem}.landing-github__chart{grid-template-rows:repeat(7,1fr);grid-auto-columns:minmax(2px,1fr);grid-auto-flow:column;gap:2px;width:100%;height:3.5rem;display:grid}.landing-github__chart:empty{background:linear-gradient(90deg, var(--ink-2), transparent);opacity:.55}.landing-github__chart.is-unavailable{opacity:.35}.landing-github__meta{color:var(--text-2);justify-content:space-between;gap:1rem;margin-top:.65rem;display:flex}.landing__nav{color:var(--text-2);cursor:pointer;font:inherit;text-align:left;transition:color .16s var(--ease);background:0 0;border:0;align-self:flex-start;padding:0}.landing__nav:hover{color:var(--text-0)}.landing__nav--hello{margin-top:2rem}.landing__work{opacity:clamp(0, calc(1 - max(calc(1 - var(--p,0)), calc(var(--p,0) - 1))), 1);text-align:center;transform:translateY(calc((1 - var(--p,0)) * 1.5rem));align-items:center}.landing__cv{opacity:clamp(0, calc(var(--p,0) - 1), 1);transform:translateY(calc((2 - var(--p,0)) * 1.5rem));align-items:center;gap:1.5rem}.landing__work-eyebrow{color:var(--text-2);margin-bottom:.75rem}.landing__work>.landing__nav{margin-bottom:2rem}.landing__work>.landing__nav--next{margin:2rem 0 0}.landing__work-title{font-size:var(--step-3)}.landing__chips{grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));gap:.65rem;width:min(100%,44rem);margin-top:2rem;display:grid;container-type:inline-size}.landing__chip{border:1px solid var(--line-strong);min-height:2.25rem;color:var(--text-1);cursor:pointer;text-align:center;transition:color .18s var(--ease), border-color .18s var(--ease), background .18s var(--ease), transform .22s var(--ease);border-radius:999px;justify-content:center;align-items:center;padding:.5rem .8rem;display:inline-flex;position:relative}.landing__chip:after{opacity:0;content:"↗";transition:opacity .18s var(--ease), transform .22s var(--ease);position:absolute;right:.8rem;transform:translate(-.2rem,.2rem)}.landing__chip:hover,.landing__chip:focus-visible{border-color:var(--text-1);color:var(--text-0);background:#edebe612;transform:translateY(-2px)}.landing__chip:hover:after,.landing__chip:focus-visible:after{opacity:1;transform:none}.landing__chip.is-loading{border-color:var(--text-1);color:var(--text-0);cursor:progress;background:#edebe61a}.landing__chip.is-loading:after{opacity:1;content:"···";transform:none}.landing__chip.is-failed:after{opacity:1;content:"×";transform:none}.landing__chip:last-child:nth-child(odd){grid-column:1/-1;justify-self:center;width:calc(50% - .325rem)}@container (width<=36.65rem){.landing__chip:last-child:nth-child(odd){width:100%}}@media (width<=720px){.landing-github{grid-template-columns:minmax(0,1fr)}.landing-github__profile{border-right:0;border-bottom:1px solid var(--line);min-width:0}}.landing__nav--back{top:var(--page-pad);left:var(--page-pad);position:absolute}@media (height<=600px){.landing__cv{gap:clamp(.5rem,2svh,1.5rem)}.landing__nav--back{align-self:center;position:static}}.landing__cv-sheet{aspect-ratio:595/842;border:1px solid var(--line-strong);background:var(--paper);border-radius:6px;width:min(100%,664px,66svh - 5rem);height:auto;position:relative;overflow:hidden}.landing__cv-canvas{width:100%;height:100%;display:block}.landing__cv-expand{z-index:1;border:1px solid var(--line);width:2.25rem;height:2.25rem;color:var(--text-0);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:background .16s var(--ease), border-color .16s var(--ease);background:#0a0a0ba6;border-radius:999px;justify-content:center;align-items:center;display:flex;position:absolute;top:.75rem;right:.75rem}.landing__cv-expand:hover{border-color:var(--line-strong);background:#0a0a0bd9}.landing__cv-expand svg{width:1.05rem;height:1.05rem}.landing__button{border:1px solid var(--line-strong);color:var(--text-0);transition:background .16s var(--ease), border-color .16s var(--ease), color .16s var(--ease);border-radius:999px;padding:.75rem 1.4rem}.landing__button--primary{border-color:var(--text-0);background:var(--text-0);color:var(--ink-0)}.landing__button--primary:hover{background:var(--text-1);border-color:var(--text-1)}.landing__button:not(.landing__button--primary):hover{border-color:var(--text-0)}.landing--mobile{height:auto;min-height:100svh;overflow:visible}.landing--mobile .landing__stage{height:auto;display:block}.landing--mobile .landing__photo{height:clamp(16rem,52svh,32rem)}.landing--mobile .landing__panel{height:auto}.landing--mobile .landing__hello,.landing--mobile .landing__cv,.landing--mobile .landing__work{opacity:1;transition:none;position:relative;transform:none}.landing--mobile .landing__hello{min-height:max(48svh,19rem)}.landing--mobile .landing__nav{display:none}.landing--mobile .landing__cv{justify-content:flex-start;min-height:100svh;padding-top:clamp(5rem,10svh,7rem);scroll-margin-top:0}.landing--mobile .landing__work{justify-content:center;min-height:100svh}.landing--mobile .landing__cv-sheet{width:min(100%,38rem);height:auto}@media (prefers-reduced-motion:reduce){.landing__hello,.landing__cv,.landing__work{transition:none}}.cv-page{min-height:100svh;padding:clamp(4rem, 8vw, 5.5rem) var(--page-pad) clamp(3rem, 6vw, 4.5rem);background:var(--paper);overflow-x:clip}.cv-page__collapse{z-index:10;width:2.5rem;height:2.5rem;color:var(--ink-0);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:background .16s var(--ease), border-color .16s var(--ease);background:#0a0a0b0f;border:1px solid #0a0a0b24;border-radius:999px;justify-content:center;align-items:center;display:flex;position:fixed;top:1.25rem;right:1.25rem}.cv-page__collapse:hover{background:#0a0a0b1f;border-color:#0a0a0b42}.cv-page__collapse svg{width:1.15rem;height:1.15rem}.cv-page__sheet{background:var(--paper);border-radius:0;width:min(94vw,1100px);margin-inline:auto;position:relative;overflow:hidden}.cv-page__canvas{width:100%;height:auto;display:block}@media (width<=640px){.cv-page{padding:0}.cv-page__sheet{width:100%}}
