@import "https://fonts.googleapis.com/css2?family=42dot+Sans:wght@400&display=swap";@import "https://fonts.googleapis.com/css2?family=Open+Sans:wght@400&display=swap";@import "https://fonts.googleapis.com/css2?family=DM+Sans:opsz,wght@9..40,400&display=swap";html{-webkit-text-size-adjust:100%;line-height:1.5}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-size:inherit;font-weight:inherit}button{font:inherit}img,svg{vertical-align:middle}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0;overflow-x:hidden}::selection{background:var(--accent);color:#fff}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#1a140a26;border-radius:999px}a{color:inherit}.site{min-height:100vh}.container{width:min(1080px,100% - 4rem);margin:0 auto}.section-title{font-family:var(--font-display);margin:0}.section-heading{justify-content:space-between;display:flex}.skills-by-category{grid-template-columns:repeat(2,1fr);display:grid}.skill-category-title{font-weight:600}.skill-pills{flex-wrap:wrap;gap:.5rem;display:flex}.skill-pill{font-size:.78rem;font-weight:500;transition:transform .18s,box-shadow .18s}.footer{border-top:1px solid var(--border)}.footer-inner{justify-content:space-between;align-items:center;min-height:70px;display:flex}.footer-name{font-family:var(--font-display);font-size:.95rem;font-style:italic}.footer-copy{letter-spacing:.04em;font-size:.68rem}@media (width<=900px){.container{width:min(100% - 3rem,1080px)}}@media (width<=700px){.container{width:min(100% - 2.5rem,1080px)}.section{padding:5rem 0}.section-heading{display:block}.skills-by-category{grid-template-columns:1fr}.footer-inner{flex-direction:column;justify-content:center;padding:1.4rem 0}}@media (width<=480px){.container{width:min(100% - 2rem,1080px)}}.portfolio-home{background:var(--bg);color:#000;font-family:"42dot Sans",sans-serif}.home-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.home-header a{text-decoration:none}.home-name{white-space:nowrap}.home-nav{display:flex}.home-nav a:hover{text-decoration:underline}.portfolio-home a:focus-visible{outline-offset:5px;border-radius:3px;outline:2px solid #000}@media (width<=700px){.portfolio-home{width:calc(100% - 16px);margin-top:8px;padding:14px}.home-header{flex-wrap:wrap;gap:18px;height:auto;min-height:100px;padding:20px}.home-nav{flex-wrap:wrap;gap:14px;font-size:13px}}.section{padding:64px 0}.section-heading{align-items:end;gap:32px;margin-bottom:28px}.section-title{font-size:clamp(36px,4vw,56px);font-weight:400;line-height:1.08}.skills-by-category{margin-top:28px}.skill-category{background:var(--pastel-lilac);border:0;border-radius:20px;padding:32px}.skill-category-title{font:18px var(--font-sans);letter-spacing:0;margin-bottom:24px}.skill-pill:hover{box-shadow:none;transform:none}.footer{border:0}.footer-inner{padding:28px 30px}.footer-copy{font:14px/1.5 var(--font-sans);opacity:1}@media (width<=700px){.section{padding:36px 0}.section>.container,.footer>.container{width:calc(100% - 44px)}.section-heading{display:block}.skills-by-category{grid-template-columns:1fr}.skill-category{padding:26px}.footer-inner{align-items:flex-start;gap:16px;padding:24px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.project-preview{border-radius:20px;place-items:center;height:300px;display:grid;position:relative;overflow:hidden}.preview-note{font:500 16px var(--font-sans);position:absolute;top:22px;left:22px}.preview-caption{font:9px var(--font-sans);letter-spacing:.12em;position:absolute;bottom:15px;left:20px}.preview-music{background:#e3daf0}.record-sleeve{background:#7a548d;width:165px;height:165px;padding:18px;position:relative;transform:rotate(-9deg)translate(-22px);box-shadow:0 12px 18px #31203b20}.record-sleeve>span{color:#fff4c4;z-index:2;font-size:24px;font-weight:700;line-height:1;position:relative}.vinyl{background:repeating-radial-gradient(circle,#29252c 0 2px,#39323e 3px 4px);border-radius:50%;place-items:center;width:158px;height:158px;display:grid;position:absolute;top:4px;left:85px}.vinyl-label{width:61px;height:61px;font:11px var(--font-sans);text-align:center;background:#a9c4a0;border-radius:50%;place-items:center;display:grid}.sound-wave{align-items:center;gap:4px;height:58px;display:flex;position:absolute;bottom:45px;right:24px}.sound-wave i{opacity:.65;background:#7a548d;border-radius:2px;width:3px}.preview-sip{background:#dce7f4}.preview-sip .preview-note{max-width:100px}.sip-phone{background:#fffcf4;border:5px solid #374c37;border-radius:24px;width:141px;height:250px;padding:14px 12px;transform:rotate(9deg)translate(28px,6px);box-shadow:9px 13px #829c6920}.phone-speaker{background:#374c37;border-radius:10px;width:32px;height:4px;margin:-7px auto 12px}.sip-wordmark{font:italic 28px var(--font-sans);color:#466740}.sip-phone p{margin:7px 0;font-size:11px;line-height:1.3}.coffee-art{text-align:center;background:#eee8d8;border-radius:10px;font-size:44px}.sip-place{justify-content:space-between;padding:12px 0;font-size:9px;display:flex}.phone-tabs{border-top:1px solid #d6ddcc;justify-content:space-between;padding-top:4px;font-size:16px;display:flex}.preview-ground{background:#c8d0bb}@media (width<=1050px){.project-preview{height:270px}.preview-note{font-size:14px}.record-sleeve{transform:scale(.85)rotate(-9deg)translate(-22px)}.sip-phone{transform:scale(.85)rotate(9deg)translate(20px,6px)}}@media (width<=700px){.project-preview{height:320px}}#projects{padding:64px 0}#projects .section-heading{margin-bottom:28px}@media (width<=700px){#projects{padding:36px 0}#projects .section-heading{margin-bottom:28px}}.groundwork-interactive{flex-direction:column;display:flex}.groundwork-preview-viewport{flex:1;width:100%;min-height:0;position:relative;overflow:hidden}.groundwork-preview-viewport iframe{transform-origin:0 0;background:#fff;border:0;width:200%;height:200%;transform:scale(.5)}:root{--ink-purple:#60348c}.portfolio-home{width:calc(100% - 96px);max-width:1320px;margin:0 auto;padding:0}.home-header{border-bottom:1px solid #60348c20}.home-name{align-items:center;gap:12px}.home-nav{align-items:center}@media (width<=1050px){.home-nav{gap:17px}}@media (width<=700px){.portfolio-home{width:calc(100% - 44px)}.home-header{gap:22px;height:auto;padding:22px 0}.home-name{font-size:19px}.home-nav{flex-wrap:wrap;gap:15px;font-size:10px}}.home-header{background:#e0c9fb;border:0;border-radius:20px;gap:24px;height:101px;margin:40px 0 20px;padding:0 30px;font-family:Anonymous Pro,monospace}.home-name{color:#000;font-size:25px;font-weight:400;display:block}.home-nav{letter-spacing:0;gap:13px;font-size:16px}@media (width<=700px){.home-header{flex-wrap:wrap;gap:18px;height:auto;min-height:100px;margin-top:22px;padding:20px}.home-nav{flex-wrap:wrap;gap:14px;font-size:13px}}@font-face{font-family:Rokiest;src:url(/fonts/Rokiest-Semibold.otf)format("opentype");font-weight:600;font-style:normal;font-display:swap}.figma-home{--home-ink:#664169;--home-lavender:#e1dae3;width:100%;max-width:none;min-height:100dvh;color:var(--home-ink);background:#fff;flex-direction:column;margin:0;padding:clamp(22px,6.95dvh,64px) 3.77vw clamp(36px,10.3dvh,95px);font-family:DM Sans,sans-serif;display:flex}.figma-home .home-header{background:var(--home-lavender);border-radius:20px;flex-shrink:0;height:92px;min-height:92px;margin:0;padding:0 39px;font-family:inherit}.figma-home .home-name{color:var(--home-ink);font:600 40px/1 Rokiest,sans-serif}.figma-home .home-nav{letter-spacing:.02em;gap:45px;font-size:26px}.figma-home-content{flex:1;grid-template-rows:minmax(300px,1fr) auto;display:grid}.figma-name-tag{text-align:center;place-self:center;margin:0;padding:32px 0}.figma-name-heading{width:max-content;padding-bottom:12px;position:relative}.figma-name-heading h1{color:var(--home-ink);letter-spacing:.05em;white-space:nowrap;margin:0;font:600 clamp(64px,min(10.274vw,17dvh),210px)/1.12 Rokiest,sans-serif}.figma-name-underline{width:100%;max-width:100%;height:12px;margin:0 auto;display:block;position:absolute;bottom:0;left:0}.figma-resume{background:var(--home-lavender);border-radius:15px;align-items:center;gap:8px;margin-top:clamp(24px,5.1dvh,47px);padding:12px 20px;font-size:30px;line-height:39px;text-decoration:none;display:inline-flex}.figma-resume span,.figma-social-links span{font-family:"42dot Sans",sans-serif}.figma-home-bottom{justify-content:space-between;align-items:flex-end;gap:48px;margin-top:0;padding:0 21px 0 27px;display:flex}.figma-home-bottom>p{color:#000;letter-spacing:.02em;max-width:502px;margin:0;font-size:30px;line-height:1.3}.figma-social-links{flex-shrink:0;gap:21px;display:flex}.figma-social-links a{border-bottom:1px solid #66416940;align-items:center;gap:6px;padding:6px 0;font-size:24px;line-height:31px;text-decoration:none;display:inline-flex}.figma-social-links a:hover{border-bottom-color:var(--home-ink)}.figma-resume:hover{background:#d4c8d8}@keyframes home-name-reveal{0%{clip-path:inset(-20% 100% -20% -4%);transform:translate(-12px)}to{clip-path:inset(-20% -4%);transform:translate(0)}}@keyframes home-underline-draw{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}@keyframes home-details-enter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:no-preference){.figma-name-heading h1{animation:.7s cubic-bezier(.22,1,.36,1) .1s backwards home-name-reveal}.figma-name-underline{transform-origin:0;animation:.4s cubic-bezier(.22,1,.36,1) .55s backwards home-underline-draw}.figma-resume{animation:.45s ease-out .7s backwards home-details-enter}.figma-home-bottom>p{animation:.45s ease-out .8s backwards home-details-enter}.figma-social-links{animation:.45s ease-out .9s backwards home-details-enter}}@media (width<=1100px){.figma-home{padding-top:36px;padding-bottom:55px}.figma-home .home-header{padding:0 28px}.figma-home .home-nav{gap:25px;font-size:20px}.figma-name-tag{margin-top:0}.figma-home-bottom{gap:32px;padding-left:10px;padding-right:10px}.figma-home-bottom>p{max-width:440px;font-size:24px}.figma-social-links{gap:16px}.figma-social-links a{font-size:18px}}@media (width<=700px){.figma-home{padding:22px 20px 36px}.figma-home .home-header{flex-wrap:wrap;gap:18px;height:auto;min-height:0;padding:18px 20px}.figma-home .home-name{font-size:30px}.figma-home .home-nav{flex-wrap:wrap;justify-content:space-between;gap:10px;width:100%;font-size:15px}.figma-home-content{flex-direction:column;display:flex}.figma-name-tag{margin:auto 0;padding:65px 0 45px}.figma-name-heading h1{font-size:10.2vw}.figma-name-underline{width:100%;height:7px}.figma-resume{border-radius:12px;margin-top:28px;padding:10px 18px;font-size:22px;line-height:30px}.figma-home-bottom{flex-direction:column;align-items:flex-start;gap:28px;padding:30px 4px 0}.figma-home-bottom>p{max-width:420px;font-size:21px}.figma-social-links{flex-wrap:wrap;gap:22px}.figma-social-links a{font-size:18px}}:root{--font-sans:"DM Sans", sans-serif;--font-display:"Rokiest", sans-serif;--bg:#fff;--bg-card:#fff;--bg-section:#f7f4f8;--text:#000;--muted:#000;--accent:#664169;--border:#e1dae3;--pastel-lilac:#e1dae3;--chip-bg:#f1edf2;--chip-text:#664169}.site{background:#fff}.section,#projects{padding:clamp(56px,7vw,104px) 0}.section-soft{background:var(--bg-section)}.section>.container,.footer>.container{width:calc(100% - 11.2vw);max-width:1296px}.section-heading,#projects .section-heading{margin-bottom:40px}.section-title{color:var(--accent);font:600 clamp(36px, 4.2vw, 60px)/1.15 var(--font-display);letter-spacing:.01em}.project-preview{background:var(--bg-section);border:1px solid var(--border)}.skill-pill{background:var(--chip-bg);border:1px solid var(--border);color:var(--chip-text);font:400 14px/1.4 var(--font-sans);border-radius:8px;padding:6px 12px}.skills-by-category{gap:24px}.skill-category,.skill-category:nth-child(n){border:1px solid var(--border);background:#fff;border-radius:20px;padding:32px}.skill-category-title{color:var(--accent);text-transform:none;font-size:19px}.skill-pill:hover{background:var(--chip-bg);color:var(--chip-text);border-color:var(--border)}.footer{background:#fff;padding:32px 0}.footer-inner{background:var(--pastel-lilac);border-radius:20px;gap:24px}.footer-name{color:var(--accent);font:600 26px var(--font-display);text-decoration:none}.footer-copy{color:var(--accent)}.site a:focus-visible{outline:2px solid var(--accent);outline-offset:5px;border-radius:4px}.footer-name:hover{text-underline-offset:5px;text-decoration:underline}@media (width<=800px){.project-preview{height:300px}}@media (width<=700px){.section>.container,.footer>.container{width:calc(100% - 40px)}.skills-by-category{grid-template-columns:1fr}.skill-category{padding:24px}.section-heading,#projects .section-heading{margin-bottom:28px}.footer-inner{flex-direction:column;align-items:flex-start;padding:24px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}#projects{background:#f3eef5}#experience,#skills{background:#fff}#skills .skill-category{background:#f7f4f8}.animated-name{color:inherit;font:inherit;letter-spacing:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;margin:0;padding:0;display:inline-block}.name-letter{display:inline-block}@media (prefers-reduced-motion:no-preference){.scroll-reveal{opacity:0;transition:opacity .7s,transform .7s cubic-bezier(.22,1,.36,1);transform:translateY(32px)}.scroll-reveal.scroll-revealed,.scroll-reveal:focus-within{opacity:1;transform:translateY(0)}}@media print{.scroll-reveal{opacity:1;transform:none}}.animated-name:focus-visible{outline:2px solid var(--accent);outline-offset:12px;border-radius:6px}#experience .section-heading{margin-bottom:clamp(40px,5vw,65px)}.experience-list{flex-direction:column;gap:52px;padding-left:clamp(36px,5vw,65px);display:flex;position:relative}.experience-list:before{content:"";background:var(--accent);width:3px;position:absolute;top:17px;bottom:0;left:9px}.work-entry{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,4vw,52px);display:grid;position:relative}.work-entry:before{content:"";border:3px solid var(--accent);background:#fff;border-radius:50%;width:20px;height:20px;position:absolute;top:12px;left:calc(-1*clamp(36px,5vw,65px))}.work-entry:first-child:before{background:var(--accent)}.work-who{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.work-who h3{color:var(--accent);font:600 clamp(28px, 3.2vw, 42px)/1.1 var(--font-display);letter-spacing:.01em;margin:0 0 4px}.work-role,.work-dates,.work-location{color:#000;margin:0;font-size:17px;line-height:1.5}.work-description{color:#000;margin:0;padding-top:6px;font-size:19px;line-height:1.65}@media (width<=700px){.experience-list{gap:40px;padding-left:36px}.work-entry{grid-template-columns:1fr;gap:16px}.work-entry:before{top:7px;left:-36px}.work-description{padding:0;font-size:16px}.work-role,.work-dates,.work-location{font-size:15px}}.work-description{padding-left:20px;list-style:outside}.work-description li{padding-left:4px}.work-description li+li{margin-top:10px}.work-description li::marker{color:var(--accent)}@media (width<=700px){.work-description{padding-left:20px}}.about-placeholder{background:#f3eef5;justify-content:center;align-items:center;gap:clamp(40px,8vw,120px);padding:clamp(56px,7vw,104px) max(5.6vw,50% - 648px);display:flex}.about-placeholder>div{flex:1;min-width:0}.about-placeholder h2{color:var(--accent);margin:0;font:600 clamp(56px,7vw,100px)/1.1 Rokiest,sans-serif}.about-placeholder p{color:#000;margin:16px 0 0;font:400 20px/1.5 Open Sans,sans-serif}.about-placeholder img{border-radius:20px;flex-shrink:0;width:min(35vw,200px);height:auto;display:block}@media (width<=700px){.about-placeholder{flex-direction:column;gap:28px;padding-inline:20px}.about-placeholder img{width:min(70vw,200px)}}html{scroll-padding-top:140px}.site-header-slot{flex-shrink:0;height:92px}.figma-home .home-header{z-index:100;position:fixed;top:20px;left:3.77vw;right:3.77vw;box-shadow:0 4px 8px #00000010,0 10px 24px #00000020}@media (width<=700px){html{scroll-padding-top:100px}.site-header-slot{height:64px}.figma-home .home-header{flex-wrap:nowrap;gap:12px;padding:12px;top:12px;left:20px;right:20px}.figma-home .home-name{flex-shrink:0;font-size:24px}.figma-home .home-nav{letter-spacing:0;flex-wrap:nowrap;flex:1;justify-content:space-between;gap:6px;width:auto;font-size:clamp(10px,2.7vw,15px)}.figma-home .home-nav a{align-items:center;min-height:40px;display:inline-flex}}.preview-room{background:#eee7f0}.room-plan{background:#fcf9f5;border:6px solid #88698e;width:210px;height:190px;margin-top:20px;position:relative;transform:rotate(-9deg);box-shadow:10px 12px #66416915}.room-window{background:#b2ced6;border-inline:4px solid #fcf9f5;width:90px;height:6px;position:absolute;top:-6px;left:45px}.room-rug{background:#e8dfe9;border:2px solid #d7c7d9;border-radius:40%;width:125px;height:112px;position:absolute;top:32px;left:42px}.room-sofa{background:#a9c4b3;border:3px solid #749281;border-radius:10px;flex-direction:column;gap:4px;width:48px;height:112px;padding:10px 6px;display:flex;position:absolute;top:32px;left:14px}.room-sofa i{border:1px solid #749281;border-radius:5px;flex:1}.room-table{background:#e0c5ac;border:3px solid #ba9577;border-radius:18px;width:48px;height:64px;position:absolute;top:66px;left:93px}.room-plant{background:#567952;border:5px solid #8eab8a;border-radius:50%;width:26px;height:26px;position:absolute;top:12px;right:12px}.room-door{border:1px dashed #88698e;border-bottom:6px solid #fcf9f5;border-radius:100% 0 0;width:42px;height:40px;position:absolute;bottom:-6px;right:16px}#projects .project-status{color:#664169;background:#eee7f0;border-radius:999px;flex-shrink:0;padding:5px 11px;font-size:12px}#projects .project-grid{flex-direction:column;gap:32px;display:flex}#projects .project-card{background:#fff;border:1px solid #e1dae3;border-radius:24px;grid-template-columns:minmax(0,.9fr) minmax(0,1.2fr);align-items:center;gap:clamp(28px,4vw,56px);min-height:0;padding:clamp(24px,3vw,40px);display:grid;overflow:visible}#projects .project-preview{border-radius:16px;min-width:0;height:320px}#projects .project-copy{flex-direction:column;min-width:0;padding:0;display:flex}#projects .project-topline{flex-wrap:nowrap;align-items:center;gap:16px;margin-bottom:10px;display:flex}#projects .project-topline h3{color:var(--accent);font:400 clamp(26px, 2.6vw, 36px)/1.2 var(--font-sans);letter-spacing:-.02em}#projects .project-tagline{color:#664169;margin-bottom:16px;font-size:18px;line-height:1.5}#projects .project-description{color:#403944;max-width:60ch;margin-bottom:24px;font-size:17px;line-height:1.75}#projects .project-stack{flex-wrap:wrap;gap:8px;margin:0;padding:0;display:flex}#projects .project-stack span{color:#664169;font:400 13px/1.4 var(--font-sans);background:#f3eef5;border:0;border-radius:999px;align-items:center;padding:7px 13px;display:inline-flex}#projects .project-card .project-stack span,#skills .skill-pill,#skills .skill-pill:hover{color:#664169;font:400 13px/1.4 var(--font-sans);background:#fff;border:1.5px solid #664169;border-radius:999px;padding:7px 13px;box-shadow:0 2px #664169}#projects .project-links{flex-wrap:wrap;gap:8px 24px;margin-top:20px;display:flex}#projects .project-links a{color:var(--accent);min-height:44px;font:400 15px/1.5 var(--font-sans);text-underline-offset:5px;align-items:center;-webkit-text-decoration:underline #66416955;text-decoration:underline #66416955;display:inline-flex}#projects .project-links a:hover{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}@media (width<=900px){#projects .project-card{grid-template-columns:1fr;gap:28px}#projects .project-preview{height:300px}}@media (width<=480px){#projects .project-card{border-radius:20px;gap:24px;padding:20px}#projects .project-preview{height:250px}#projects .project-topline{flex-wrap:wrap;align-items:baseline;gap:8px}#projects .project-description{font-size:16px}#projects .project-tagline{font-size:17px}}
