:root{--paper:#f5f1e9;--paper-deep:#e9e1d4;--ink:#232321;--muted:#726d65;--line:#2323212e;--blue:#3359c8;--coral:#df7058;--sage:#afc9b5;--yellow:#e4c548;--radius:2px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;margin:0;font-family:DM Sans,sans-serif}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}.site-shell{overflow:hidden}.topbar{z-index:50;border:1px solid var(--line);background:var(--paper);letter-spacing:.02em;white-space:nowrap;border-radius:999px;align-items:center;gap:1.4rem;width:fit-content;margin:0 auto;padding:.4rem .4rem .4rem 1.1rem;font-size:.78rem;transition:opacity .6s,transform .6s cubic-bezier(.2,.7,.2,1),translate .45s cubic-bezier(.2,.7,.2,1),gap .8s cubic-bezier(.2,.7,.2,1) .7s,padding .8s cubic-bezier(.2,.7,.2,1) .7s;display:flex;position:fixed;top:14px;left:0;right:0;box-shadow:0 10px 30px #23232114}.topbar:not(.is-ready){opacity:0;visibility:hidden;gap:0;padding-right:1.1rem;transform:translateY(-12px)}.nav-links,.top-contact{overflow:hidden}.nav-links{max-width:18rem;transition:max-width .8s cubic-bezier(.2,.7,.2,1) .7s,opacity .5s 1s}.topbar:not(.is-ready) .nav-links,.topbar:not(.is-ready) .top-contact{opacity:0;max-width:0}.topbar:not(.is-ready) .top-contact{padding-left:0;padding-right:0}.topbar.is-hidden{translate:0 -160%}.wordmark{letter-spacing:-.09em;font-size:1.1rem;font-weight:700}.wordmark-dot{color:var(--blue)}.nav-links{color:var(--muted);gap:.15rem;display:flex}.nav-links a{border-radius:999px;padding:.45rem .8rem;transition:color .22s,background .22s}.nav-links a.is-active{color:var(--ink);background:var(--paper-deep)}.text-link,.social-links a{transition:color .22s}.nav-links a:hover,.text-link:hover,.social-links a:hover{color:var(--blue)}.top-contact{max-width:8rem;color:var(--paper);background:var(--ink);border-radius:999px;padding:.55rem 1rem;font-weight:700;transition:background .22s,max-width .8s cubic-bezier(.2,.7,.2,1) .7s,padding .8s cubic-bezier(.2,.7,.2,1) .7s,opacity .5s 1s}.top-contact:hover{background:var(--blue)}.icon-arrow{vertical-align:-.02em;flex:none;width:.85em;height:.85em;margin-left:.38rem}.icon-arrow-down-right{transform:rotate(90deg)}.course-tag .icon-arrow{margin-left:0}.hero{grid-template-columns:minmax(0,.92fr) minmax(310px,.78fr);align-items:center;gap:8vw;min-height:100dvh;padding:8vw 10vw 7vw;display:grid;position:relative}.eyebrow{color:var(--muted);text-transform:uppercase;letter-spacing:.12em;margin:0 0 1.5rem;font:500 .68rem/1 DM Mono,monospace}h1,h2,h3,p{margin-top:0}h1,h2{letter-spacing:-.065em;margin-bottom:1.5rem;font-weight:500}h1{max-width:660px;font-size:clamp(3.8rem,7.5vw,7.5rem);line-height:.91}h2 em{letter-spacing:-.06em;font-family:Playfair Display,serif;font-weight:500}.hero-actions{align-items:center;gap:1.8rem;margin-top:2.3rem;display:flex}.hero .hero-actions>*{opacity:0;pointer-events:none}.hero .hero-actions.is-ready>*{opacity:1;pointer-events:auto;animation:.6s cubic-bezier(.2,.7,.2,1) backwards action-in}.hero .hero-actions.is-ready>:nth-child(2){animation-delay:.14s}.hero .hero-actions .icon-arrow{transition:transform .22s}.hero .hero-actions .button:hover .icon-arrow-down-right{transform:rotate(90deg)translate(2px,-2px)}.hero .hero-actions .text-link:hover .icon-arrow{transform:translate(2px,-2px)}@keyframes action-in{0%{opacity:0;transform:translateY(10px)}}.typed-caret{border-left:.06em solid var(--blue);margin-left:.04em;animation:1s step-end infinite caret-blink}.typed-caret.is-done{animation:3s step-end forwards caret-linger}.typed-rest{visibility:hidden}@keyframes caret-blink{50%{opacity:0}}@keyframes caret-linger{0%{opacity:1}17%{opacity:0}33%{opacity:1}50%{opacity:0}67%{opacity:1}83%,to{opacity:0}}.button{border-radius:999px;justify-content:center;align-items:center;min-height:48px;padding:.8rem 1.2rem;font-size:.78rem;font-weight:700;transition:transform .18s,background .18s;display:inline-flex}.button:hover{transform:translateY(-2px)}.button:active{transform:translateY(0)scale(.98)}.button-dark{color:var(--paper);background:var(--ink)}.button-dark:hover{background:var(--blue)}.button-blue{color:#fff;background:var(--blue)}.button-blue:hover{background:var(--ink)}.text-link{border-bottom:1px solid var(--ink);padding-bottom:.22rem;font-size:.78rem;font-weight:700}.hero-collage{--hero-scroll:0;width:min(100%,470px);height:520px;transform:perspective(1000px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) rotate(2deg);opacity:calc(1 - var(--hero-scroll) * .25);justify-self:end;transition:transform .4s cubic-bezier(.2,.7,.2,1);position:relative}.hero:not(.is-image) .hero-collage{opacity:0;pointer-events:none}.hero.is-image .hero-collage{animation:.75s cubic-bezier(.3,.8,.3,1) backwards stick-on}.hero.is-image .paperclip{animation:.45s cubic-bezier(.2,.7,.2,1) .7s backwards clip-on}@keyframes stick-on{0%{opacity:0;filter:drop-shadow(40px 50px 40px #2323214d);translate:40px -30px;rotate:7deg;scale:1.28}55%{opacity:1;filter:drop-shadow(4px 6px 6px #2323211f);translate:0;rotate:-.6deg;scale:.97}75%{rotate:.2deg;scale:1.012}to{filter:drop-shadow(0 0 #23232100);rotate:none;scale:1}}@keyframes stick-on-lite{0%{opacity:0;translate:20px -20px;rotate:6deg;scale:1.22}55%{opacity:1;translate:0;rotate:-.6deg;scale:.97}75%{rotate:.2deg;scale:1.012}to{rotate:none;scale:1}}@keyframes clip-on{0%{opacity:0;translate:0 -34px}}.hero:not(.is-measured) .hero-copy h1{visibility:hidden}.hero-copy h1{transform:translate(var(--center-shift,0px, 0px));transition:transform .16s ease-out}.hero.is-moved .hero-copy h1{transition:transform .9s cubic-bezier(.65,0,.35,1);transform:none}.paper-shadow{width:70%;height:89%;transform:translateY(calc(var(--hero-scroll) * -4px)) rotate(-6deg);background:#d4c8b8;position:absolute;top:7%;left:17%}.portrait-paper{width:70%;transform:translateY(calc(var(--hero-scroll) * -12px)) rotate(-7deg);background:#d8d0c2;padding:4% 4% 12%;position:absolute;top:5%;left:12%;box-shadow:12px 14px #23232112}.portrait-window{aspect-ratio:3/4;background:#c4bdb4;overflow:hidden}.portrait-window img{object-fit:cover;object-position:center;filter:saturate(.85)contrast(.95);width:100%;height:100%}.paperclip{z-index:4;width:28px;height:108px;transform:translateY(calc(var(--hero-scroll) * 4px)) rotate(11deg);opacity:.75;border:3px solid #8d8d86;border-bottom:0;border-radius:20px 20px 0 0;position:absolute;top:-2%;right:18%}.section-pad{padding:10rem 10vw}.statement{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:12vw;display:grid}h2{font-size:clamp(2.8rem,5vw,5.7rem);line-height:.94}h2 span{color:var(--blue)}.statement-body{max-width:430px;color:var(--muted);padding-top:1rem;line-height:1.65}.statement-body p+p{margin-top:1.4rem}.statement-body .text-link{color:var(--ink);margin-top:1.7rem;display:inline-block}.work-section{background:var(--ink);color:var(--paper)}.work-section ::selection{background:var(--yellow);color:var(--ink)}.work-header{justify-content:space-between;align-items:end;margin-bottom:4rem;display:flex}.work-header h2{margin-bottom:0}.work-header p{color:#aaa59d;max-width:210px;margin-bottom:.35rem;font-size:.86rem;line-height:1.45}.project-grid{grid-template-columns:repeat(2,1fr);gap:4.5rem 1.3rem;display:grid}.project-group+.project-group{margin-top:5rem}.hackathons-group .work-header{margin-bottom:2.2rem}.project-card{min-width:0}.project-art{aspect-ratio:16/9;position:relative;overflow:hidden}.project-art-multi{position:relative;overflow:hidden}.project-gallery-shell{width:100%;height:100%;position:relative}.project-image,.project-video{object-fit:cover;width:100%;height:100%;transition:transform .5s cubic-bezier(.16,1,.3,1);display:block}.project-image-current{opacity:0;width:100%;height:100%;transition:opacity .45s var(--ease-settle), transform .5s var(--ease-settle);display:block;position:absolute;inset:0}.project-image-current.is-active{opacity:1}.project-gallery-next{color:#ffffffe6;letter-spacing:.06em;cursor:pointer;opacity:0;pointer-events:none;background:#ffffff14;border:1px solid #ffffffb3;border-radius:50%;place-items:center;width:42px;height:42px;font:500 .58rem/1 DM Mono,monospace;transition:opacity .18s,background .18s,border-color .18s;display:grid;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.project-card:hover .project-gallery-next{opacity:1;pointer-events:auto;background:#ffffff1f;border-color:#ffffffe6}.project-card:hover .project-image,.project-card:hover .project-video{transform:scale(1.035)}@media (hover:none){.project-gallery-next{opacity:.9;pointer-events:auto}}.project-video{background:#0f172a}.project-sage .project-art{background:var(--sage)}.project-blue .project-art{background:var(--blue)}.project-coral .project-art{background:var(--coral)}.project-yellow .project-art{background:var(--yellow)}.project-number{z-index:2;font:.7rem DM Mono,monospace;position:absolute;top:18px;left:20px}.project-stamp{z-index:3;color:var(--ink);letter-spacing:.08em;text-transform:uppercase;background:#f5f1e9d1;border:1px solid #2323218c;border-radius:999px;padding:.45rem .7rem;font:500 .54rem/1 DM Mono,monospace;position:absolute;top:18px;right:18px;transform:rotate(8deg);box-shadow:6px 8px #2323211f}.project-info{grid-template-columns:1fr auto;gap:.3rem 1.2rem;padding-top:1.2rem;display:grid}.project-info h3{letter-spacing:-.04em;margin-bottom:0;font-size:1.35rem;font-weight:500}.project-info p{color:#aaa59d;grid-column:1;max-width:320px;margin:.25rem 0 0;font-size:.82rem;line-height:1.45}.project-info .project-tagline{color:var(--paper);margin-top:.35rem;font-size:.7rem}.project-stack{color:#aaa59d;text-align:right;text-transform:uppercase;flex-wrap:wrap;grid-area:1/2/span 3;justify-content:flex-end;align-self:start;gap:.35rem;max-width:180px;font:.59rem/1.2 DM Mono,monospace;display:flex}.project-tag{border:1px solid #f5f1e959;padding:.25rem .4rem}.project-links{text-transform:uppercase;grid-column:1/-1;gap:1rem;margin-top:.65rem;font:.62rem DM Mono,monospace;display:flex}.project-links a,.project-links .project-link{color:var(--paper);border-bottom:1px solid #f5f1e980;transition:color .18s,border-color .18s}.project-links a:hover{color:var(--yellow);border-color:var(--yellow)}.project-links .project-link-muted{opacity:.8;color:#f5f1e9cc;cursor:default;border-bottom-style:dashed}.freestyle .work-header{margin-bottom:1.6rem}.freestyle-list{border-top:1px solid #f5f1e933;margin:0;padding:0;list-style:none}.freestyle-list a{border-bottom:1px solid #f5f1e933;grid-template-columns:56px 1fr auto auto;align-items:baseline;gap:.35rem 1.2rem;padding:1.1rem 0;transition:color .18s;display:grid}.freestyle-list a:hover{color:var(--yellow)}.tool-art{grid-row:1/3;align-self:center;width:56px;height:56px;transition:transform .22s;display:block}.freestyle-list a:hover .tool-art{transform:rotate(-4deg)scale(1.05)}.tool-art-blue{background:var(--blue)}.tool-art-icon{box-sizing:border-box;background:var(--paper);padding:9px;position:relative}.tool-art-icon img{object-fit:contain;width:100%;height:100%;display:block}.tool-charge{transform-origin:100%;background:#000;position:absolute;inset:20.6px 15.8px 20.9px 14.6px;transform:scaleX(0)}.tool-edges{stroke-dasharray:1}.tool-hint{transform-box:fill-box;transform-origin:50%}.freestyle.is-visible li{--delay:calc(var(--i) * .18s + .3s)}.freestyle.is-visible .tool-hint{animation:hint-pop .42s cubic-bezier(.3,1.6,.5,1) var(--delay) backwards}.freestyle.is-visible .tool-hint+.tool-hint{animation-delay:calc(var(--delay) + .2s)}.freestyle.is-visible .tool-charge{animation:charge 1s steps(4, end) var(--delay) backwards}.freestyle.is-visible .tool-edges{animation:crawl-draw .8s ease-out var(--delay) backwards}.freestyle.is-visible .tool-lit{animation:node-lit .35s ease calc(var(--delay) + .8s) backwards}@keyframes hint-pop{0%{opacity:0;transform:scale(0)}}@keyframes charge{0%{transform:scaleX(1)}}@keyframes crawl-draw{0%{stroke-dashoffset:1px}}@keyframes node-lit{0%{fill:#f5f1e9}}.tool-art-coral{background:var(--coral)}.freestyle-list strong{letter-spacing:-.03em;font-size:1.3rem;font-weight:500}.freestyle-description{color:#aaa59d;grid-area:2/2/auto/-1;font-size:.9rem;line-height:1.45}.freestyle-language,.freestyle-link{text-transform:uppercase;letter-spacing:.04em;font:.62rem DM Mono,monospace}.freestyle-link{border-bottom:1px solid #f5f1e980}.completed-courses{border-top:1px solid #f5f1e933;margin-top:5rem;padding-top:2.5rem}.completed-courses-header{margin-bottom:1.5rem}.completed-courses-header h3{letter-spacing:-.06em;margin:0;font-size:clamp(1.8rem,3vw,3rem)}.course-tags{flex-wrap:wrap;gap:.75rem;display:flex}.course-tag{color:var(--paper);text-transform:uppercase;letter-spacing:.04em;background:#ffffff05;border:1px solid #f5f1e94d;align-items:center;gap:.4rem;padding:.55rem .8rem;font:.62rem/1 DM Mono,monospace;display:inline-flex}.course-tag-link{transition:border-color .18s,color .18s}.course-tag-link:hover{color:var(--yellow);border-color:#e4c548cc}.artwork{position:absolute;inset:0}.artwork-traffic{background:linear-gradient(140deg,#0000 48%,#2323211c 49% 51%,#0000 52%)}.road{background:var(--ink);opacity:.9;position:absolute}.road-one{width:160%;height:42px;top:52%;left:-20%;transform:rotate(-25deg)}.road-two{opacity:.45;width:140%;height:29px;top:54%;left:-14%;transform:rotate(30deg)}.traffic-light{z-index:1;background:var(--ink);border-radius:25px;width:50px;padding:9px;position:absolute;top:18%;left:43%;transform:rotate(12deg)}.traffic-light i{background:var(--coral);border-radius:50%;width:29px;height:29px;margin:5px auto;display:block}.traffic-light i:nth-child(2){background:var(--yellow)}.traffic-light i:nth-child(3){background:var(--sage)}.car{z-index:2;background:var(--blue);border-radius:8px 10px 3px 3px;width:52px;height:24px;position:absolute}.car:after,.car:before{content:"";background:var(--ink);border-radius:50%;width:9px;height:9px;position:absolute;bottom:-5px}.car:before{left:8px}.car:after{right:8px}.car-one{top:64%;left:29%;transform:rotate(-25deg)}.car-two{background:var(--paper);top:32%;right:23%;transform:rotate(30deg)}.artwork-cimerko{background:#ef9b80}.sun{background:var(--yellow);border-radius:50%;width:120px;height:120px;position:absolute;top:14%;right:17%}.house{background:#f5f1e9;position:absolute;bottom:0}.house:before{content:"";border-bottom:65px solid;border-left:95px solid #0000;border-right:95px solid #0000;position:absolute;top:-63px}.house-back{color:#b9c9a9;width:190px;height:150px;left:24%;transform:rotate(-8deg)}.house-front{width:190px;height:185px;color:var(--blue);left:43%;transform:rotate(7deg)}.cimerko-label{color:var(--ink);letter-spacing:-.08em;font:500 1rem/1 DM Mono,monospace;position:absolute;top:21%;left:12%;transform:rotate(-8deg)}.rag-doc{background:var(--paper);align-content:start;gap:11%;width:34%;height:80%;padding:9% 6%;display:grid;position:absolute;top:14%;left:20%;transform:rotate(-6deg);box-shadow:10px 12px #23232126}.rag-doc i{background:#23232138;height:6px;display:block}.rag-doc i:nth-child(2n){width:78%}.rag-doc i:nth-child(3){background:var(--yellow);height:11px}.rag-bubble{color:var(--paper);background:var(--ink);border-radius:22px 22px 22px 4px;padding:.6rem 1.1rem .8rem;font:500 3rem/1 Playfair Display,serif;position:absolute;top:20%;right:17%;transform:rotate(8deg)}.rag-label{color:var(--paper);font:.65rem/1.2 DM Mono,monospace;position:absolute;bottom:16%;right:13%;transform:rotate(-8deg)}.artwork-kaizen{background:#d3b935}.kaizen-orbit{border:2px solid var(--ink);border-radius:50%;position:absolute;transform:rotate(-30deg)}.orbit-one{width:310px;height:140px;top:33%;left:22%}.orbit-two{width:140px;height:310px;top:6%;left:42%}.kaizen-core{color:var(--paper);background:var(--ink);border-radius:50%;place-content:center;font:500 5rem Playfair Display,serif;display:grid;position:absolute;inset:25% 36%}.kaizen-label{font:.65rem/1.2 DM Mono,monospace;position:absolute;bottom:15%;left:14%;transform:rotate(-8deg)}.skills-section{grid-template-columns:.9fr 1.1fr;gap:10vw;display:grid}.skills-intro h2{margin-bottom:0}.skills-list{border-top:1px solid var(--line)}.skill-row{border-bottom:1px solid var(--line);grid-template-columns:50px 110px 1fr;align-items:baseline;gap:1.1rem;padding:1.3rem 0;display:grid}.skill-index{color:var(--blue);font:.65rem DM Mono,monospace}.skill-row h3{margin:0;font-size:1.15rem;font-weight:500}.skill-row p{color:var(--muted);margin:0;font-size:.85rem;line-height:1.4}.education-section{background:var(--paper-deep);grid-template-columns:1.1fr 1fr .75fr;align-items:center;gap:5vw;display:grid;position:relative}.education-section h2{margin-bottom:0}.education-sticker{text-align:center;width:88px;height:88px;color:var(--blue);border:1px solid var(--blue);border-radius:50%;place-content:center;font:.62rem/1.1 DM Mono,monospace;display:grid;position:absolute;top:8%;right:7%;transform:rotate(11deg)}.education-copy{gap:2.4rem;padding-top:2.5rem;display:grid}.education-copy p{margin:0;font:500 1.15rem/1.1 Playfair Display,serif}.education-copy small{color:var(--muted);font:.68rem/1.35 DM Mono,monospace}.education-place{color:var(--blue)}.education-degree{color:var(--ink)}:root{--ease-settle:cubic-bezier(.16,1,.3,1)}.reveal{opacity:0;transition:opacity .7s var(--ease-settle), transform .7s var(--ease-settle);transform:translateY(18px)}.reveal.is-visible{opacity:1;transform:translateY(0)}.project-card:nth-child(2n){transition-delay:90ms}.skill-row:nth-child(2n){transition-delay:70ms}.contact-section{background:var(--blue);color:var(--paper);grid-template-columns:1fr .72fr;gap:13vw;display:grid}.contact-section .eyebrow,.contact-side p{color:#f5f1e9b3}.contact-section h2{margin-bottom:0;font-size:clamp(3.1rem,6.2vw,7rem)}.contact-section h2 em{color:#d7e3ff}.contact-side{align-self:end;max-width:350px}.contact-side p{line-height:1.55}.contact-side .button{color:var(--blue);background:var(--paper);margin-top:1.4rem}.contact-side .button:hover{color:var(--paper);background:var(--ink)}.social-links{gap:1.5rem;margin-top:5rem;font-size:.75rem;display:flex}.social-links a{color:var(--paper)}.has-custom-cursor,.has-custom-cursor *{cursor:none!important}.cursor{z-index:1000;pointer-events:none;opacity:0;transition:opacity .2s;position:fixed;top:0;left:0}.cursor.is-visible{opacity:1}.cursor-arrow{filter:drop-shadow(0 2px 3px #23232140);width:24px;height:24px;margin:-3px 0 0 -3px;display:block}.cursor-arrow path{fill:var(--ink);stroke:var(--paper);stroke-width:1.5px;stroke-linejoin:round}.cursor-label{white-space:nowrap;color:var(--ink);background:var(--coral);border:1px solid var(--ink);box-shadow:3px 3px 0 var(--ink);opacity:0;transform-origin:0 0;padding:.35rem .6rem;font:500 .78rem/1 DM Sans,sans-serif;transition:opacity .16s,transform .2s cubic-bezier(.2,1.4,.4,1);position:absolute;top:20px;left:18px;transform:scale(.6)}.cursor-label.is-shown{opacity:1;transform:scale(1)}.footer{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;justify-content:space-between;padding:1.4rem 5vw;font:.63rem DM Mono,monospace;display:flex}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}.topbar,.topbar *{transition-delay:0s!important}}@media (max-width:800px){.topbar{gap:.4rem;padding-left:.75rem}.topbar:not(.is-ready){padding-right:.75rem}.wordmark{padding:.55rem .2rem}.nav-links a{padding:.7rem .6rem}.hero{grid-template-columns:1fr;align-content:center;gap:2.5rem;min-height:100svh;padding:5rem 7vw 3rem}h1{font-size:clamp(3.8rem,15vw,6rem)}.hero-collage{justify-self:center;width:min(100%,420px,48svh);height:min(450px,52svh)}.hero.is-image .hero-collage{animation-name:stick-on-lite}.section-pad{padding:6.5rem 7vw}.statement,.skills-section,.education-section,.contact-section{grid-template-columns:1fr;gap:3rem}.statement-body{padding-top:0}.work-header{display:block}.work-header p{margin-top:1.4rem}.project-grid{grid-template-columns:1fr;gap:4rem}.education-copy{padding-top:0}.education-sticker{top:5%;right:8%}.contact-side{align-self:start}.social-links{margin-top:3rem}}@media (max-width:500px){.topbar{font-size:.72rem;top:10px}.nav-links a{padding:.7rem .5rem}.top-contact{padding:.75rem .85rem}.hero{gap:2rem;padding-left:6vw;padding-right:6vw}.hero-collage{width:min(100%,42svh);height:min(385px,46svh)}.project-info{display:block}.project-stack{text-align:left;justify-content:flex-start;max-width:none;margin-top:1rem;display:flex}.project-links{margin-top:1rem}.skill-row{grid-template-columns:35px 1fr;gap:.4rem .8rem}.skill-row p{grid-column:2}.footer{flex-wrap:wrap;gap:.8rem}}
