@import url(https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400..900;1,400..900&family=Inter:wght@300..800&family=Caveat:wght@400..700&family=Kalam:wght@400;700&display=swap);code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}::selection{background:#ffe600;color:#14120f}:root{--paper:#f7f4ee;--paper-2:#efeae0;--ink:#14120f;--ink-soft:#57514a;--ink-faint:#b8b0a4;--line:#ddd6c9;--yellow:#ffe600;--purple:#c68df8;--blue:#4169e1;--hero-bg:#a8412a;--hero-ink:#fff;--hero-accent:#ffe600;--hero-soft:#f7f4ee;--card-panel:#1f6f5c;--brut-border:2px;--brut-shadow:5px;--serif:"Playfair Display",Georgia,serif;--sans:"Inter",-apple-system,"Segoe UI",sans-serif;--mono:"Courier New",Courier,monospace;--gutter:clamp(20px,5vw,90px);--ease:cubic-bezier(0.16,1,0.3,1)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body,html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f7f4ee;background:var(--paper);color:#14120f;color:var(--ink);font-family:Inter,-apple-system,Segoe UI,sans-serif;font-family:var(--sans);font-size:16px;overflow-x:clip;width:100%}body{min-height:100%}#root{width:100%}a{color:inherit;text-decoration:none}img{max-width:100%}button{font-family:inherit}.section{border-top:1px solid #ddd6c9;border-top:1px solid var(--line);padding:clamp(90px,14vh,170px) clamp(20px,5vw,90px);padding:clamp(90px,14vh,170px) var(--gutter);position:relative;scroll-margin-top:24px}.section-label{align-items:center;color:#b8b0a4;color:var(--ink-faint);display:flex;font-family:Courier New,Courier,monospace;font-family:var(--mono);font-size:12px;gap:12px;letter-spacing:.18em;margin-bottom:clamp(28px,5vh,56px);text-transform:uppercase}.section-label:before{background:#b8b0a4;background:var(--ink-faint);content:"";height:1px;width:28px}.section-title{font-family:Playfair Display,Georgia,serif;font-family:var(--serif);font-size:clamp(2rem,5.2vw,4.2rem);font-weight:500;letter-spacing:-.02em;line-height:1.05;max-width:20ch}.section-title em{color:#4169e1;color:var(--blue);font-style:italic}.btn{align-items:center;background:#f7f4ee;background:var(--paper);border:2px solid #14120f;border:var(--brut-border) solid var(--ink);border-radius:6px;box-shadow:5px 5px 0 #14120f;box-shadow:var(--brut-shadow) var(--brut-shadow) 0 var(--ink);color:#14120f;color:var(--ink);cursor:pointer;display:inline-flex;font-size:14px;font-weight:700;height:50px;justify-content:center;letter-spacing:.04em;padding:0 26px;transition:transform .14s cubic-bezier(.16,1,.3,1),box-shadow .14s cubic-bezier(.16,1,.3,1),background .25s cubic-bezier(.16,1,.3,1);transition:transform .14s var(--ease),box-shadow .14s var(--ease),background .25s var(--ease)}.btn-solid{background:#ffe600;background:var(--yellow)}.btn:hover{box-shadow:3px 3px 0 #14120f;box-shadow:calc(var(--brut-shadow) - 2px) calc(var(--brut-shadow) - 2px) 0 var(--ink);transform:translate(2px,2px)}.btn:active{box-shadow:0 0 0 #14120f;box-shadow:0 0 0 var(--ink);transform:translate(5px,5px);transform:translate(var(--brut-shadow),var(--brut-shadow))}@media (max-width:520px){.btn{--brut-shadow:4px;height:46px;padding:0 20px}}.sr-only{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1);transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:0ms;transition-delay:var(--reveal-delay,0ms)}.reveal.is-visible{opacity:1;transform:none}.line-mask{display:block;overflow:hidden}.line-mask>span{display:block;transform:translateY(105%);transition:transform 1.1s cubic-bezier(.16,1,.3,1);transition:transform 1.1s var(--ease);transition-delay:0ms;transition-delay:var(--reveal-delay,0ms)}.line-mask.is-visible>span{transform:none}.rule-draw{background:#ddd6c9;background:var(--line);height:1px;transform:scaleX(0);transform-origin:left;transition:transform 1.2s cubic-bezier(.16,1,.3,1);transition:transform 1.2s var(--ease);transition-delay:0ms;transition-delay:var(--reveal-delay,0ms)}.rule-draw.is-visible{transform:scaleX(1)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.line-mask>span,.reveal,.rule-draw{opacity:1!important;transform:none!important;transition:none!important}}.scroll-progress{height:2px;left:0;pointer-events:none;position:fixed;top:0;width:100%;z-index:60}.scroll-progress span{background:var(--blue);display:block;height:100%;transform:scaleX(0);transform:scaleX(var(--progress,0));transform-origin:left;width:100%}.box *{transition:all 1s linear}.box{align-items:center;display:flex;padding:60px}.box .overlap-group{height:513px;left:10px;position:relative;top:8px;width:469px}.box .rectangle{background:var(--card-panel);border:3px solid #000;border-radius:18px;height:451px;left:71px;position:absolute;top:0;transform:translate(5%) scale(1.1);width:320px}.box .img{height:71px;left:120px;position:absolute;top:283px;transform:translate(-40%);width:349px}.box .div{background-color:#ff0;border:5px solid #000;height:35px;left:304px;position:absolute;top:298px;transform:translate(-10%,200%) scale(.8);transition:all 1.5s ease-in;width:134px}.box .full-stack-developer{height:21px;left:184px;position:absolute;top:305px;transform:translate(20%,-200%);width:248px;z-index:3}.box .star{height:125px;left:0;position:absolute;top:388px;transform:translate(-20%,20%) rotate(1turn);width:126px}.box .rectangle-2{height:257px;left:120px;position:absolute;top:30px;transform:translate(-50%,10%);width:220px}.box .group-2{background-image:url(/static/media/Rectangle-1503.3c5a51905202dc0630f6.png);background-position:50% 50%;background-size:cover;height:160px;left:139px;position:absolute;top:47px;transform:translate(20%,-20%);width:179px}.box .replyre{height:29px;left:154px;position:absolute;top:233px;transform:translate(25%);width:163px}.box .star-2{height:79px;left:281px;position:absolute;top:13px;transform:translate(150%,20%) rotate(1turn);width:79px}.box .image{height:61px;left:122px;top:365px;transform:translate(-20%,20%) rotate(1turn);width:60px}.box .image,.box .image-2{object-fit:cover;position:absolute;transition:all 2s linear}.box .image-2{left:198px;transform:translateY(-10%) rotate(270deg)}.box .image-3{height:61px;left:274px;object-fit:cover;position:absolute;top:365px;transform:translate(-20%,100%) rotate(180deg);transition:all 2s linear;width:64px}.box .image,.box .image-2,.box .image-3{background:#fff;border:2px solid #000;border-radius:10px;height:62px;object-fit:contain;padding:5px;top:364px;width:62px}.box .group.aligned .div,.box .group.aligned .full-stack-developer,.box .group.aligned .group-2,.box .group.aligned .image,.box .group.aligned .image-2,.box .group.aligned .image-3,.box .group.aligned .img,.box .group.aligned .rectangle,.box .group.aligned .rectangle-2,.box .group.aligned .replyre,.box .group.aligned .star,.box .group.aligned .star-2{transform:translate(0) rotate(0deg)}.floating{animation:floating 3s ease-in-out infinite;margin-left:30px;margin-top:5px}@keyframes floating{0%,to{transform:translate(0)}50%{transform:translateY(15px)}}@media (prefers-reduced-motion:reduce){.floating{animation:none}}.hero{--s:1;--name-max:calc(100vw - var(--gutter)*2 - 619px*var(--s) + 90px);--name-fs:min(12rem,calc(var(--name-max)/5.6));--pad-top:clamp(64px,10vh,130px);--name-block:calc(var(--name-fs)*3.07);background:var(--hero-bg);border-bottom:3px solid var(--ink);flex-direction:column;justify-content:flex-start;min-height:100vh;min-height:100svh;overflow:hidden;padding:var(--pad-top) var(--gutter) clamp(22px,3.2vh,40px)}.hero,.hero-inner{display:flex;position:relative;width:100%}.hero-inner{align-items:center;flex:1 1;justify-content:flex-end;z-index:1}.hero-mark{color:var(--hero-ink);font-family:var(--serif);font-size:clamp(17px,1.5vw,22px);font-weight:600;left:clamp(14px,1.6vw,26px);letter-spacing:-.01em;line-height:1;opacity:0;position:absolute;top:clamp(16px,2.6vh,30px);transition:opacity .6s var(--ease) .1s;white-space:nowrap;z-index:5}.hero.entered .hero-mark{opacity:1}.hero-social{border-bottom:1.5px solid #0000;color:var(--hero-ink);font-family:var(--serif);font-size:clamp(16px,1.4vw,20px);font-weight:500;letter-spacing:-.01em;line-height:1;opacity:0;padding-bottom:2px;position:absolute;right:clamp(14px,1.6vw,26px);top:clamp(16px,2.6vh,30px);transition:opacity .6s var(--ease) .2s,border-color .3s var(--ease),color .3s var(--ease);white-space:nowrap;z-index:5}.hero.entered .hero-social{opacity:1}.hero-social:hover{border-bottom-color:var(--hero-accent);color:var(--hero-accent)}.hero-name{color:var(--hero-ink);font-family:var(--serif);font-size:var(--name-fs);font-weight:600;left:var(--gutter);letter-spacing:-.035em;pointer-events:none;position:absolute;right:var(--gutter);top:var(--pad-top);z-index:3}.hero-line{display:block;line-height:1.06;padding-bottom:.06em;white-space:nowrap}.hero-hello{color:var(--hero-accent);font-family:Caveat,Kalam,cursive;font-size:1.6em;font-style:normal;font-weight:600;line-height:.98;margin-top:.1em;padding-bottom:.14em}.hero-greet{animation:flick 90ms linear both;display:inline-block;font-size:1em;font-size:calc(1em*var(--gs, 1))}@keyframes flick{0%{opacity:0}to{opacity:1}}.hero-greet-hit{cursor:default;display:inline-block;outline-offset:6px;pointer-events:auto}.hero-greet:lang(hi){font-family:Kalam,cursive}.hero-greet:lang(ja),.hero-greet:lang(ko){font-family:Hiragino Mincho ProN,Yu Mincho,"Noto Serif CJK",Songti SC,serif}.hero-greet:lang(ar){font-family:Noto Naskh Arabic,Traditional Arabic,serif}.typewriter{align-items:center;display:inline-flex;white-space:pre}.cursor{animation:blink 1s step-end infinite;color:var(--hero-accent);margin-left:3px}.cursor-block{background:currentColor;color:inherit;display:inline-block;height:.66em;margin-left:.07em;vertical-align:initial;width:.055em}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.hero-card{flex-shrink:0;height:calc(638px*var(--s));position:relative;width:calc(619px*var(--s));z-index:2}.hero-card>.box{left:0;position:absolute;scale:var(--s);top:0;transform-origin:top left}.hero-note{color:var(--hero-soft);font-size:clamp(14px,1.35vw,18px);line-height:1.5;max-width:62ch;opacity:0;position:relative;transition:opacity .8s var(--ease) 1.3s;z-index:4}.hero.entered .hero-note{opacity:1}.hero-note span{color:var(--hero-accent);display:block;font-weight:500}@media (max-width:1440px){.hero{--s:0.82}}@media (max-width:1180px){.hero{--s:0.66}}@media (max-width:1100px){.hero{--s:0.72;--name-max:calc(100vw - var(--gutter)*2)}.hero-inner{align-items:flex-start;justify-content:center}.hero-card{margin-top:calc(var(--name-block) - var(--name-fs)*.45)}}@media (max-width:520px){.hero{--s:0.52}.hero-mark{font-size:16px}.hero-social{font-size:14px}}@media (prefers-reduced-motion:reduce){.hero-mark,.hero-note,.hero-social{opacity:1!important}.hero-greet{animation:none}}.intro-section{--intro-lit:var(--paper);--intro-faint:#f7f4ee3d;background:#221c18;border-top:3px solid var(--ink)}.intro-title{color:var(--yellow);font-family:Caveat,Kalam,cursive;font-size:clamp(3.2rem,9.5vw,8rem);font-weight:600;letter-spacing:0;line-height:.9;margin-bottom:clamp(24px,4vh,52px);max-width:none}.intro-grid{grid-gap:clamp(40px,6vw,100px);align-items:center;display:grid;gap:clamp(40px,6vw,100px);grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);margin-top:clamp(20px,4vh,44px)}.ink-statement{font-family:var(--serif);font-size:clamp(1.5rem,3.9vw,3.4rem);font-weight:500;letter-spacing:-.02em;line-height:1.22}.ink-statement span{color:color-mix(in srgb,var(--intro-lit) calc(var(--lit)*100%),var(--intro-faint));transition:color .18s linear}.ink-statement span.hl{color:color-mix(in srgb,var(--yellow) calc(var(--lit)*100%),var(--intro-faint));font-family:var(--sans);font-size:.82em;font-weight:800;letter-spacing:.02em;text-transform:uppercase}@supports not (color:color-mix(in srgb,red,blue)){.ink-statement span{color:var(--intro-lit);opacity:calc(.28 + var(--lit)*.72)}}.intro-portrait{justify-self:center;padding:76px 88px 98px 64px;position:relative;width:min(100%,540px)}.portrait{animation:portrait-float 11s ease-in-out infinite;aspect-ratio:3/4;background:var(--paper-2) url(/static/media/loading.e87c59ad7513054a0fb5.webp) center /cover;border-bottom-width:1.5px;border-bottom:5px solid var(--ink);border-left:1.5px solid var(--ink);border-radius:14px;border-right-width:1.5px;border-right:5px solid var(--ink);border-top:1.5px solid var(--ink);overflow:hidden;position:relative;transform:rotate(-3.5deg);transition:transform .7s var(--ease);width:100%;z-index:2}@keyframes portrait-float{0%,to{rotate:0deg;translate:0 0}33%{rotate:1.1deg;translate:0 -11px}66%{rotate:-.9deg;translate:0 8px}}.portrait img{display:block;height:100%;object-fit:cover;width:100%}.intro-portrait:hover .portrait{animation-play-state:paused;transform:rotate(0deg) scale(1.02)}.chip{--r:0deg;animation:chip-roam 16s ease-in-out infinite;aspect-ratio:1;border-bottom-width:1.5px;border-bottom:5px solid var(--ink);border-left:1.5px solid var(--ink);border-radius:16px;border-right-width:1.5px;border-right:5px solid var(--ink);border-top:1.5px solid var(--ink);position:absolute;transition:transform .7s var(--ease);z-index:1}@keyframes chip-roam{0%,to{rotate:var(--r);translate:0 0}25%{rotate:calc(var(--r) + 9deg);translate:12px -14px}50%{rotate:calc(var(--r) - 7deg);translate:-10px 10px}75%{rotate:calc(var(--r) + 4deg);translate:14px 8px}}.intro-portrait:hover .chip{animation-play-state:paused}.chip-yellow{--r:10deg;animation-duration:15s;background:var(--yellow);right:46px;top:44px;width:clamp(150px,52%,265px)}.chip-purple{--r:-8deg;animation-delay:-4s;animation-duration:19s;background:var(--purple);bottom:46px;left:26px;width:clamp(130px,45%,215px)}.chip-sky{--r:70deg;animation-delay:-9s;animation-duration:22s;aspect-ratio:14/12;background:#8fd3f4;left:-80px;top:60px;width:clamp(160px,70%,320px)}.chip-mint{--r:-16deg;animation-delay:-2s;animation-duration:13s;background:#9be8c7;bottom:20%;right:40px;width:clamp(115px,38%,185px)}.intro-portrait:hover .chip-yellow{transform:translate(14px,-14px)}.intro-portrait:hover .chip-purple{transform:translate(-14px,14px)}.intro-portrait:hover .chip-sky{transform:translate(-16px,-10px)}.intro-portrait:hover .chip-mint{transform:translate(16px,12px)}@media (max-width:900px){.intro-grid{grid-template-columns:1fr}.intro-portrait{order:-1;padding:58px 60px 68px 46px;width:min(100%,320px)}.chip-sky{left:-34px;top:44px;width:clamp(150px,58%,200px)}}@media (prefers-reduced-motion:reduce){.chip,.portrait{animation:none}}.places{--places-line:#14120f2e;--px:50vw;--py:50vh;background:#dcd7cc;border-top:3px solid var(--ink);display:flex;flex-direction:column;justify-content:space-between;min-height:100vh;overflow:hidden;padding-bottom:0;padding-left:0;padding-right:0}.places-head{padding:clamp(40px,8vh,110px) clamp(var(--gutter),12vw,320px) clamp(48px,8vh,110px) var(--gutter)}.places-title{font-size:clamp(2.6rem,7.6vw,6.8rem);line-height:1.18;max-width:none}.places-marquee{border-bottom:1px solid var(--places-line);border-top:1px solid var(--places-line);position:relative}.places-viewport{mask-image:linear-gradient(90deg,#0000,#000 5%,#000 95%,#0000);-webkit-mask-image:linear-gradient(90deg,#0000,#000 5%,#000 95%,#0000);overflow:hidden}.places-track{align-items:stretch;animation:places-scroll 105s linear infinite;display:flex;width:-webkit-max-content;width:max-content}@keyframes places-scroll{0%{transform:translateX(0)}to{transform:translateX(-50%)}}.places-marquee:focus-within .places-track,.places-marquee:hover .places-track{animation-play-state:paused}.pl-item{align-items:flex-start;cursor:default;display:flex;flex-direction:column;gap:9px;justify-content:center;outline-offset:-4px;padding:clamp(30px,4.6vh,54px) calc(clamp(34px, 4vw, 76px) + 50px) clamp(30px,4.6vh,54px) clamp(34px,4vw,76px);position:relative;transition:background .35s var(--ease);white-space:nowrap;width:min(1000px,88vw)}.pl-head{align-items:center;display:flex;gap:12px}.pl-mark{background:#fff;border-radius:8px;display:grid;flex-shrink:0;height:clamp(30px,2.8vw,44px);overflow:hidden;padding:3px;place-items:center;width:clamp(30px,2.8vw,44px)}.pl-mark img{max-height:100%;max-width:100%;object-fit:contain}.pl-mark.is-mono img{filter:brightness(0)}.pl-mark .pl-initials{-webkit-text-stroke:1px var(--ink);font-size:clamp(13px,1.3vw,19px)}.pl-item:focus-visible,.pl-item:hover{background:linear-gradient(180deg,#ffe60038,#ffe60000)}.pl-name{font-family:var(--serif);font-size:clamp(1.55rem,3.4vw,2.8rem);font-weight:600;letter-spacing:-.028em;line-height:1.06;transition:color .3s var(--ease)}.pl-item:focus-visible .pl-name,.pl-item:hover .pl-name{color:var(--blue)}.pl-spec{font-size:clamp(12.5px,1.1vw,14px);font-weight:600}.pl-period,.pl-spec{color:var(--ink-soft)}.pl-period{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.18em;position:absolute;right:clamp(34px,4vw,76px);text-transform:uppercase;top:clamp(18px,2.6vh,30px)}.pl-tags{align-items:baseline;color:var(--ink-soft);display:flex;font-size:clamp(13px,1.15vw,15.5px);margin-top:5px}.pl-tags,.pl-tags b{font-weight:500}.pl-tags b+b:before{color:var(--ink-faint);content:"·";padding:0 11px}.pl-div{align-self:stretch;background:var(--places-line);display:block;flex-shrink:0;width:1px}.pl-pop{background:var(--paper);border:3px solid var(--ink);border-radius:16px;box-shadow:9px 9px 0 var(--ink);left:var(--px);opacity:0;overflow:hidden;pointer-events:none;position:fixed;top:var(--py);transform:translate(28px,-50%) scale(.97);transform-origin:left center;transition:opacity .26s var(--ease),transform .26s var(--ease);width:380px;z-index:45}.pl-pop.is-on{opacity:1;transform:translate(28px,-50%) scale(1)}.pl-pop-face{background:var(--paper-2);border-bottom:3px solid var(--ink);display:grid;height:170px;overflow:hidden;place-items:center}.pl-pop-face img{max-height:68%;max-width:58%;object-fit:contain}.pl-initials{-webkit-text-stroke:2px var(--ink);color:#0000;font-family:var(--serif);font-size:56px;font-weight:700;letter-spacing:-.04em}.pl-pop-body{padding:16px 20px 20px}.pl-pop-meta{align-items:center;color:var(--ink-faint);display:flex;font-family:var(--mono);font-size:10px;font-weight:700;gap:10px;letter-spacing:.18em;text-transform:uppercase}.pl-pop-meta i{background:var(--ink-faint);height:1px;width:18px}.pl-pop-body h3{font-family:var(--serif);font-size:1.5rem;font-weight:600;letter-spacing:-.02em;line-height:1.12;margin-top:8px}.pl-role{color:var(--blue);font-size:13px;font-weight:600;margin-top:4px}.pl-pop-blurb{color:var(--ink-soft);font-size:13.5px;line-height:1.6;margin-top:12px}.pl-stats{border-top:1px solid var(--line);display:flex;gap:20px;margin-top:16px;padding-top:13px}.pl-stats>span{display:flex;flex-direction:column;gap:2px;white-space:nowrap}.pl-stats b{font-family:var(--serif);font-size:14px;font-weight:600}.pl-stats i{color:var(--ink-faint);font-family:var(--mono);font-size:9px;font-style:normal;letter-spacing:.16em;text-transform:uppercase}@media (max-width:860px){.places{min-height:0}.places-viewport{mask-image:none;-webkit-mask-image:none;overflow:visible}.places-track{animation:none;display:block;width:auto}.pl-div,.places-track>.pl-item[aria-hidden=true]{display:none}.pl-item{border-bottom:1px solid var(--places-line);padding:clamp(18px,4.4vw,26px) var(--gutter);width:auto}.pl-name{font-size:clamp(14px,4.2vw,22px)}.pl-mark{height:26px;width:26px}.pl-period{margin-bottom:2px;position:static}.pl-tags{flex-wrap:wrap;white-space:normal}}@media (hover:none){.pl-pop{bottom:16px;left:50%;top:auto;transform:translate(-50%,12px);width:min(400px,calc(100vw - 32px))}.pl-pop.is-on{transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.places-track{animation:none}}.train{border-top:none;padding:0}.train-scope{position:relative}.train-stage{--track-pad:clamp(34px,6vh,72px);--car-h:clamp(230px,36vh,370px);--bogie-h:150px;--car-gap:clamp(14px,1.8vw,32px);align-items:flex-end;background:linear-gradient(to bottom,var(--paper) 0,var(--paper-2) 100%);border-bottom:1px solid var(--line);border-top:1px solid var(--line);display:flex;height:100vh;overflow:hidden;padding-bottom:var(--track-pad);position:-webkit-sticky;position:sticky;top:0}.train-title{left:var(--gutter);pointer-events:none;position:absolute;right:var(--gutter);top:clamp(26px,6vh,76px);z-index:3}.train-plat{color:var(--ink-faint);display:block;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.24em;margin-bottom:clamp(10px,1.6vh,18px);text-transform:uppercase}.train-title h2{font-family:var(--serif);font-size:clamp(2.4rem,7.4vw,6.4rem);font-weight:600;letter-spacing:-.038em;line-height:.92}.train-title h2 em{-webkit-text-stroke:2px var(--ink);color:#0000;font-style:italic;font-weight:400}.train-meta{align-items:center;color:var(--ink-soft);display:flex;font-family:var(--mono);font-size:11px;gap:12px;letter-spacing:.18em;margin-top:clamp(10px,1.6vh,20px);text-transform:uppercase}.train-meta i{background:var(--ink-faint);height:1px;width:26px}.train-track{--track-lift:8px;bottom:calc(var(--track-pad) + var(--track-lift));display:block;height:46px;left:0;position:absolute;right:0;width:100%;z-index:0}.train-rail{align-items:flex-end;display:flex;position:relative;width:-webkit-max-content;width:max-content;will-change:transform;z-index:1}.loco{flex-shrink:0;height:calc(var(--car-h) + var(--bogie-h));padding-left:calc(var(--gutter) + clamp(16px, 2.5vw, 44px));position:relative;width:clamp(460px,48vw,780px)}.loco-canvas{display:block;height:100%;width:100%}.car{display:flex;flex-direction:column;flex-shrink:0;height:calc(var(--car-h) + var(--bogie-h));width:clamp(320px,44vw,620px)}.car-body{background:var(--paper);border:3px solid var(--ink);border-radius:14px;box-shadow:0 6px 0 var(--ink);display:flex;flex:1 1;flex-direction:column;margin:0 var(--car-gap)}.car-body,.car-window{min-height:0;overflow:hidden}.car-window{border-bottom:3px solid var(--ink);flex:1 1;position:relative}.car-shot,.car-window{background:var(--paper-2);display:block}.car-shot{border:0;height:160%;left:0;object-fit:cover;object-position:top center;position:absolute;top:0;transition:opacity .5s var(--ease),transform .9s var(--ease);width:100%}.car-window:hover .car-shot{transform:translateY(-25%)}.car-embed{border:0;display:block;height:1500px;left:0;pointer-events:none;position:absolute;top:0;transform:scale(.55);transform-origin:top left;transition:transform .9s var(--ease);width:1440px}.car-window:hover .car-embed{transform:scale(.55) translateY(-300px)}.car-fallback{align-items:center;display:flex;flex-direction:column;gap:8px;inset:0;justify-content:center;padding:20px;position:absolute;text-align:center}.car-fallback em{font-family:var(--serif);font-size:clamp(20px,2.2vw,30px);font-style:normal;font-weight:600;letter-spacing:-.02em}.car-fallback i{color:var(--ink-faint);font-family:var(--mono);font-size:11px;font-style:normal;letter-spacing:.14em;text-transform:uppercase}.car-visit{background:var(--yellow);border:2px solid var(--ink);border-radius:999px;bottom:12px;font-size:12px;font-weight:700;letter-spacing:.06em;opacity:0;padding:8px 14px;position:absolute;right:12px;transform:translateY(6px);transition:opacity .35s var(--ease),transform .35s var(--ease)}.car-window:focus-visible .car-visit,.car-window:hover .car-visit{opacity:1;transform:none}.car-plate{align-items:center;background:var(--paper);display:flex;flex-shrink:0;gap:12px;padding:12px 16px}.car-n{color:var(--ink-faint);font-family:var(--mono);font-size:11px;letter-spacing:.14em}.car-name{font-family:var(--serif);font-size:clamp(16px,1.5vw,22px);font-weight:600;letter-spacing:-.015em;white-space:nowrap}.car-host{color:var(--ink-faint);font-family:var(--mono);font-size:10px;letter-spacing:.12em;margin-left:auto;text-transform:uppercase;white-space:nowrap}.car-bogie{display:block;flex-shrink:0;height:var(--bogie-h);width:100%}.train-end{align-self:flex-end;display:flex;flex-direction:column;flex-shrink:0;gap:10px;padding:0 clamp(40px,8vw,140px) calc(var(--bogie-h) + 20px) clamp(30px,4vw,60px)}.train-end span{color:var(--ink-faint);font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap}.train-end a{border-bottom:2px solid var(--ink);font-family:var(--serif);font-size:clamp(20px,2.4vw,34px);font-weight:500;letter-spacing:-.02em;padding-bottom:4px;transition:color .3s var(--ease),border-color .3s var(--ease);white-space:nowrap}.train-end a:hover{border-color:var(--blue);color:var(--blue)}.train-progress{background:var(--line);bottom:22px;height:3px;left:var(--gutter);position:absolute;right:var(--gutter);z-index:2}.train-progress span{background:var(--ink);display:block;height:100%;transform-origin:left}@media (prefers-reduced-motion:reduce){.train-scope{height:auto!important}.train-stage{-webkit-overflow-scrolling:touch;height:auto;overflow-x:auto;overflow-y:hidden;padding-top:clamp(150px,34vw,230px);position:static;scroll-snap-type:x proximity}.train-rail{transform:none!important}.car{scroll-snap-align:center}.train-track{display:none}.train-rail:after{background:var(--ink);bottom:calc(var(--rail-y) - 2px);content:"";height:10px;left:0;position:absolute;right:0}}@media (max-width:520px){.train-stage{--car-h:260px;--bogie-h:110px}.car{width:84vw}.loco{width:300px}}.work-head{margin-bottom:clamp(40px,7vh,80px);transform:translateY(0);transform:translateY(calc((1 - var(--depth, 1))*40px))}.cs,.work-head{will-change:transform}.cs{transform:translateY(0);transform:translateY(calc((1 - var(--depth, 1))*110px))}.side{transform:translateY(0);transform:translateY(calc((1 - var(--depth, 1))*170px));will-change:transform}.cs-arrow{background:var(--paper);border:2px solid var(--ink);border-radius:50%;color:var(--ink);cursor:pointer;display:grid;font-size:clamp(12px,1.1vw,15px);height:clamp(38px,3.4vw,54px);place-items:center;position:absolute;top:50%;transform:translateY(-50%);transition:background .25s var(--ease),transform .25s var(--ease);width:clamp(38px,3.4vw,54px);z-index:5}.cs-arrow.is-prev{left:calc(var(--gutter)*-1 + clamp(6px, .9vw, 20px))}.cs-arrow.is-next{right:calc(var(--gutter)*-1 + clamp(6px, .9vw, 20px))}.cs-arrow:hover{background:var(--yellow)}.cs-arrow.is-prev:hover{transform:translateY(-50%) translateX(-3px)}.cs-arrow.is-next:hover{transform:translateY(-50%) translateX(3px)}.cs{border-bottom:1px solid var(--line);border-top:1px solid var(--line);position:relative}.cs-viewport{overflow:hidden}.cs-track{display:flex;transition:transform .62s var(--ease);will-change:transform}.cs-pair{--cs-gap:clamp(30px,4.5vw,76px);grid-gap:var(--cs-gap);display:grid;flex:0 0 100%;gap:var(--cs-gap);grid-template-columns:repeat(2,minmax(0,1fr))}.cs-col{align-items:flex-start;display:flex;flex-direction:column;padding:clamp(34px,5vh,60px) 0}.cs-col+.cs-col{border-left:1px solid var(--line);margin-left:calc(var(--cs-gap)/-2);padding-left:calc(var(--cs-gap)/2)}.work-note{color:var(--ink-soft);font-size:clamp(14px,1.3vw,17px);line-height:1.7;margin-top:22px;max-width:62ch}.cs-col h3{font-family:var(--serif);font-size:clamp(.9rem,2.1vw,2rem);font-weight:600;letter-spacing:-.028em;line-height:1.1;margin-top:14px;white-space:nowrap}.cs-meta{display:block;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.14em;margin-top:12px;text-transform:uppercase}.cs-meta b{color:var(--blue)}.cs-overview{font-size:clamp(15px,1.4vw,18px);line-height:1.65;margin-top:20px;max-width:54ch}.cs-points{display:flex;flex-direction:column;gap:10px;list-style:none;margin-top:20px;max-width:58ch}.cs-points li{color:var(--ink-soft);font-size:clamp(13.5px,1.2vw,15.5px);line-height:1.6;padding-left:22px;position:relative}.cs-points li:before{background:var(--ink-faint);content:"";height:1px;left:0;position:absolute;top:.62em;width:10px}.cs-stack{align-items:flex-end;align-self:stretch;display:flex;flex-wrap:wrap;gap:14px;justify-content:flex-end;margin-top:auto;padding-top:clamp(22px,3vh,34px)}.cs-tech{display:grid;height:46px;place-items:end center;transition:transform .3s var(--ease);width:46px}.cs-tech:hover{transform:translateY(-3px)}.cs-tech img{height:100%;object-fit:contain;width:100%}.cs-tech.is-text{height:auto;padding:0;width:auto}.cs-tech.is-text b{color:var(--ink-soft);font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.side{margin-top:clamp(60px,10vh,120px)}.side-head{align-items:baseline;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;margin-bottom:28px}.side-head h3{font-family:var(--serif);font-size:clamp(1.25rem,2.4vw,1.9rem);font-weight:500;letter-spacing:-.01em}.side-head a{align-items:center;border-bottom:1px solid var(--line);color:var(--ink-soft);display:inline-flex;font-family:var(--mono);font-size:12px;gap:8px;letter-spacing:.12em;padding-bottom:3px;text-transform:uppercase;transition:color .3s var(--ease),border-color .3s var(--ease)}.side-head a:hover{border-color:var(--ink);color:var(--ink)}.tile-wrap{padding:0 8px}.tile{align-items:flex-end;background:var(--paper-2) url(/static/media/loadingproject.43f9f8a0ad30c0fada92.webp) center /cover;border-radius:14px;display:flex;height:280px;overflow:hidden;position:relative;transition:transform .6s var(--ease)}.tile:after{background:linear-gradient(0deg,#0a0908e0,#0a09081a 55%);content:"";inset:0;opacity:0;position:absolute;transition:opacity .5s var(--ease)}.tile:hover{transform:translateY(-6px)}.tile:hover:after{opacity:1}.tile-body{align-items:flex-end;color:#fff;display:flex;gap:12px;justify-content:space-between;opacity:0;padding:18px;position:relative;transform:translateY(10px);transition:opacity .45s var(--ease),transform .45s var(--ease);width:100%;z-index:2}.tile:focus-within .tile-body,.tile:hover .tile-body{opacity:1;transform:none}.tile-body p{font-family:var(--serif);font-size:20px;line-height:1.2}.tile-links{display:flex;flex-shrink:0;gap:6px}.tile-links a{border:1px solid #fff6;border-radius:50%;color:#fff;display:grid;font-size:14px;height:34px;place-items:center;transition:background .3s var(--ease),color .3s var(--ease);width:34px}.tile-links a:hover{background:var(--yellow);border-color:var(--yellow);color:var(--ink)}.slide1{background-image:url(https://github.com/replyre/face-recognition-mern-app/assets/121796450/70848b3b-e41a-4f02-8cf6-ea0b4d8737b2)}.slide2{background-image:url(https://github.com/user-attachments/assets/0f415f30-cdf6-42cf-9034-27ebf083dfb4)}.slide3{background-image:url(/static/media/slide3.0ad367d12b8f2f23422e.png)}.slide4{background-image:url(/static/media/slide4.85ff6368ab7d1d5f452f.png)}.slide5{background-image:url(/static/media/slide5.905b4df5b07a435be10a.png)}.slide6{background-image:url(/static/media/slide6.14cd1e1df3f58c33a2a9.png)}.slide7{background-image:url(/static/media/slide7.acbf8418cb3266c7c9f4.png)}.slide8{background-image:url(https://raw.githubusercontent.com/replyre/WeatherAPP/main/images/Screenshot%20Weather%20App.png)}.tile[class*=slide]{background-position:top;background-size:cover}.react-multiple-carousel__arrow{background:#14120fbf;min-height:40px;min-width:40px}.react-multiple-carousel__arrow:hover{background:var(--ink)}.react-multiple-carousel__arrow--left{left:0}.react-multiple-carousel__arrow--right{right:0}.react-multi-carousel-dot button{background:#0000;border-color:var(--ink-faint)}.react-multi-carousel-dot--active button{background:var(--ink);border-color:var(--ink)}.react-multi-carousel-list{padding-bottom:34px}@media (max-width:860px){.cs-viewport{-webkit-overflow-scrolling:touch;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.cs-viewport::-webkit-scrollbar{display:none}.cs-track{transform:none!important;transition:none}.cs-pair{grid-template-columns:1fr;scroll-snap-align:start}.cs-col+.cs-col{border-left:0;border-top:1px solid var(--line);margin-left:0;padding-left:0;padding-top:var(--cs-gap)}.cs-stack{flex-wrap:nowrap;gap:clamp(6px,2vw,14px)}.cs-tech{height:clamp(28px,8.6vw,44px);width:clamp(28px,8.6vw,44px)}.cs-tech.is-text b{font-size:10px}}@media (max-width:760px){.tile-body,.tile:after{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.cs,.side,.work-head{transform:none!important}.cs-track{transition:none}}.skills{--sk-line:#ffffff57;background:var(--hero-bg);border-bottom:3px solid var(--ink);border-top:3px solid var(--ink);color:#fff}.skills-grid{grid-gap:clamp(40px,6vw,110px);align-items:start;display:grid;gap:clamp(40px,6vw,110px);grid-template-columns:minmax(0,1fr) minmax(0,.82fr);min-height:calc(100vh - clamp(90px, 14vh, 170px)*2)}.skills-head{align-self:start;grid-column:2;grid-row:1;position:-webkit-sticky;position:sticky;text-align:right;top:clamp(28px,9vh,96px)}.skills-head .section-label{color:#fff9;justify-content:flex-end}.skills-head .section-label:before{background:#fff9}.skills-head .section-title{color:var(--yellow);font-size:clamp(2.8rem,8vw,7rem);font-weight:700;line-height:1;max-width:none}.skills-head .section-title em{color:#fff}.acc{border-top:1px solid var(--sk-line);grid-column:1;grid-row:1}.acc-row{border-bottom:1px solid var(--sk-line)}.acc-head{align-items:center;background:none;border:0;color:#fff;cursor:pointer;display:flex;gap:20px;justify-content:space-between;padding:clamp(20px,3.2vh,32px) 0;text-align:left;width:100%}.acc-title{font-size:clamp(1.5rem,3.4vw,2.75rem);font-weight:500;letter-spacing:-.015em;line-height:1.15;transform-origin:left;transition:transform .45s var(--ease),color .35s var(--ease)}.acc-head:hover .acc-title{color:var(--yellow);transform:translateX(10px)}.acc-plus{flex-shrink:0;height:20px;position:relative;width:20px}.acc-plus i{background:#fff;height:1.5px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:transform .45s var(--ease),opacity .35s var(--ease);width:18px}.acc-plus i:last-child{transform:translate(-50%,-50%) rotate(90deg)}.acc-head.open .acc-plus i:last-child{opacity:0;transform:translate(-50%,-50%) rotate(0deg)}.acc-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .6s var(--ease)}.acc-panel.open{grid-template-rows:1fr}.acc-panel-inner{overflow:hidden}.acc-panel>.acc-panel-inner>*{opacity:0;transform:translateY(10px);transition:opacity .5s var(--ease),transform .5s var(--ease)}.acc-panel.open>.acc-panel-inner>*{opacity:1;transform:none;transition-delay:.15s}.acc-blurb{color:#ffffffd1;font-size:clamp(14px,1.3vw,16.5px);line-height:1.65;max-width:52ch}.acc-items{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:18px 0 28px}.acc-items li{background:#ffffff1a;border:1px solid #ffffff6b;border-radius:999px;color:#fff;font-family:var(--mono);font-size:12px;letter-spacing:.05em;padding:8px 14px;transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease),transform .3s var(--ease)}.acc-items li:hover{background:var(--yellow);border-color:var(--yellow);color:var(--ink);transform:translateY(-2px)}@media (max-width:900px){.skills-grid{gap:clamp(30px,5vh,54px);grid-template-columns:1fr}.acc,.skills-head{grid-column:1;grid-row:auto}.skills-head{position:static;text-align:left}.skills-head .section-label{justify-content:flex-start}.acc-head:hover .acc-title{transform:none}}.contact{background:var(--hero-bg);border-top:3px solid var(--ink);color:#fff;display:flex;flex-direction:column;min-height:100vh;overflow:hidden;padding-bottom:clamp(26px,4vh,44px)}.bye{color:var(--yellow);font-family:Caveat,Kalam,cursive;font-size:clamp(4.6rem,18vw,16rem);letter-spacing:-.01em;line-height:1.06;margin-bottom:clamp(40px,7vh,90px);margin-top:auto;padding-bottom:.08em;text-align:right}.bye,.bye em{font-weight:700}.bye em{color:#fff;display:block;font-family:var(--serif);font-size:.84em;font-style:normal;height:1.2em;letter-spacing:-.035em;line-height:1.2}.bye-hit{cursor:default;outline-offset:8px}.bye-hit,.bye-word{display:inline-block}.bye-word{animation:bye-flick 90ms linear both;font-size:1em;font-size:calc(1em*var(--gs, 1))}@keyframes bye-flick{0%{opacity:0}to{opacity:1}}.bye-word:lang(hi){font-family:Kalam,cursive}.bye-word:lang(ja),.bye-word:lang(ko){font-family:Hiragino Mincho ProN,Yu Mincho,"Noto Serif CJK",Songti SC,serif}.bye-word:lang(ar){font-family:Noto Naskh Arabic,Traditional Arabic,serif}.c-links{align-items:flex-start;display:flex;flex-direction:column;gap:clamp(12px,1.8vh,20px)}.c-link{align-items:center;background:none;border:0;border-bottom:2px solid #0000;color:#fff;cursor:pointer;display:inline-flex;font-family:var(--sans);font-size:clamp(14px,1.3vw,17px);font-weight:700;gap:10px;letter-spacing:.01em;padding:4px 0;transition:color .3s var(--ease),border-color .3s var(--ease);white-space:nowrap}.c-link i{font-style:normal;transition:transform .3s var(--ease)}.c-link:focus-visible,.c-link:hover{border-bottom-color:var(--ink);color:var(--ink)}.c-link:hover i{transform:translateX(3px)}.c-foot{color:#ffffff9e;font-size:11px;letter-spacing:.1em;margin-top:auto;padding-top:clamp(34px,6vh,64px);text-align:right}.c-modal{display:grid;inset:0;padding:20px;place-items:center;position:fixed;z-index:80}.c-backdrop{animation:c-fade .25s var(--ease) both;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);background:#0c0a099e;inset:0;position:absolute}.c-panel{animation:c-pop .32s var(--ease) both;background:var(--paper);border:3px solid var(--ink);border-radius:18px;box-shadow:10px 10px 0 var(--ink);color:var(--ink);max-height:calc(100vh - 40px);overflow-y:auto;padding:clamp(24px,3vw,38px);position:relative;width:min(500px,100%)}@keyframes c-fade{0%{opacity:0}}@keyframes c-pop{0%{opacity:0;transform:translateY(16px) scale(.97)}}.c-close{background:var(--paper);border:2px solid var(--ink);border-radius:50%;color:var(--ink);cursor:pointer;display:grid;font-size:13px;height:34px;place-items:center;position:absolute;right:12px;top:12px;transition:background .25s var(--ease);width:34px}.c-close:hover{background:var(--yellow)}.c-panel h3{font-family:var(--serif);font-size:clamp(1.3rem,2.4vw,1.8rem);font-weight:600;letter-spacing:-.02em;margin-bottom:6px}.c-panel form{display:flex;flex-direction:column;gap:6px}.c-panel label{color:var(--ink-faint);font-family:var(--mono);font-size:11px;letter-spacing:.16em;margin-top:12px;text-transform:uppercase}.c-panel input,.c-panel textarea{background:#0000;border:0;border-bottom:1px solid var(--line);color:var(--ink);font-family:var(--sans);font-size:16px;outline:none;padding:10px 0;resize:vertical;transition:border-color .35s var(--ease)}.c-panel input::placeholder,.c-panel textarea::placeholder{color:var(--ink-faint)}.c-panel input:focus,.c-panel textarea:focus{border-bottom-color:var(--blue)}.c-send{align-self:flex-start;background:var(--yellow);border:2px solid var(--ink);border-radius:6px;box-shadow:5px 5px 0 var(--ink);color:var(--ink);cursor:pointer;font-family:var(--sans);font-size:14px;font-weight:700;height:48px;letter-spacing:.04em;margin-top:24px;padding:0 26px;transition:transform .14s var(--ease),box-shadow .14s var(--ease)}.c-send:hover{box-shadow:3px 3px 0 var(--ink);transform:translate(2px,2px)}.c-send:active{box-shadow:0 0 0 var(--ink);transform:translate(5px,5px)}.honey{height:0;left:-9999px!important;opacity:0;position:absolute!important}.c-sent{text-align:center}.c-sent p{color:var(--ink-soft);margin-top:8px}.c-sent img{display:block;margin:20px auto;max-width:220px;width:70%}.c-sent small{color:var(--ink-faint);display:block;font-size:12px;line-height:1.6;margin:0 auto;max-width:40ch}@media (prefers-reduced-motion:reduce){.bye-word,.c-backdrop,.c-panel{animation:none}}
/*# sourceMappingURL=main.c0f5b226.css.map*/