:root{--ink:#24352f;--muted:#66736d;--cream:#fffaf5;--paper:#fffefd;--pink:#f7a9bd;--pink-dark:#db6d8d;--lilac:#c8b8f8;--purple:#765ea8;--mint:#a8dbc5;--sage:#58977b;--yellow:#f8d979;--line:rgba(36,53,47,.13);--shadow:0 22px 70px rgba(74,57,67,.12);--radius:28px;--font-body:"DM Sans",sans-serif;--font-display:"Quicksand",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--font-body);overflow-x:hidden}.noise{position:fixed;inset:0;pointer-events:none;opacity:.035;z-index:20;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E")}.cursor-dot{width:12px;height:12px;border-radius:50%;background:var(--pink-dark);position:fixed;z-index:100;pointer-events:none;transform:translate(-50%,-50%);mix-blend-mode:multiply;opacity:0;transition:width .2s,height .2s,opacity .2s}.cursor-dot.active{width:34px;height:34px;opacity:.35}a{color:inherit;text-decoration:none}button{font:inherit}.site-header{height:88px;max-width:1280px;margin:auto;padding:0 34px;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:30}.logo{font:700 25px var(--font-display);width:48px;height:48px;border:1px solid var(--line);background:rgba(255,255,255,.72);border-radius:16px;display:grid;place-items:center;position:relative;box-shadow:0 7px 25px rgba(45,64,57,.07)}.logo-spark{position:absolute;font-size:12px;color:var(--pink-dark);right:6px;top:4px}.desktop-nav{display:flex;gap:36px;font-size:14px;font-weight:600}.desktop-nav a{position:relative}.desktop-nav a:after{content:"";position:absolute;left:0;right:100%;bottom:-8px;height:2px;background:var(--pink-dark);transition:.3s}.desktop-nav a:hover:after{right:0}.mini-cta{padding:12px 17px;border:1px solid var(--ink);border-radius:99px;font-size:13px;font-weight:700;transition:.25s}.mini-cta:hover{background:var(--ink);color:white;transform:translateY(-2px)}.menu-button{display:none;background:none;border:0}.hero{max-width:1280px;min-height:calc(100vh - 88px);margin:auto;padding:60px 34px 90px;display:grid;grid-template-columns:1.12fr .88fr;align-items:center;gap:50px;position:relative}.eyebrow,.section-tag{font-size:12px;text-transform:uppercase;letter-spacing:.17em;font-weight:700;color:var(--sage)}.eyebrow{display:inline-flex;gap:10px;align-items:center;padding:9px 14px;border:1px solid rgba(88,151,123,.25);border-radius:99px;background:rgba(168,219,197,.16)}.status-dot{width:8px;height:8px;border-radius:50%;background:#5cb789;box-shadow:0 0 0 5px rgba(92,183,137,.14);animation:pulse 2s infinite}.hero h1{font:700 clamp(42px,5.7vw,78px)/1.04 var(--font-display);letter-spacing:-.05em;margin:25px 0 24px}.name-highlight{position:relative;color:var(--pink-dark);z-index:1}.name-highlight:after{content:"";position:absolute;height:13px;background:var(--yellow);left:-3px;right:-4px;bottom:5px;z-index:-1;border-radius:60% 40% 50% 45%;transform:rotate(-2deg);opacity:.65}.wiggle{display:inline-block;position:relative}.wiggle:after{content:"~~~~~~~";font:700 18px var(--font-display);letter-spacing:-5px;color:var(--lilac);position:absolute;left:2px;bottom:-18px}.hero-lead{font-size:18px;line-height:1.72;color:var(--muted);max-width:670px}.hero-lead strong{color:var(--ink)}.hero-actions{display:flex;gap:12px;margin-top:32px;flex-wrap:wrap}.button{padding:16px 22px;border-radius:99px;font-weight:700;font-size:14px;display:inline-flex;align-items:center;gap:12px;transition:transform .25s,box-shadow .25s,background .25s}.button-primary{background:var(--ink);color:white;box-shadow:0 13px 30px rgba(36,53,47,.17)}.button-primary:hover{transform:translateY(-3px);box-shadow:0 17px 35px rgba(36,53,47,.24)}.button-ghost{border:1px solid var(--line);background:rgba(255,255,255,.6)}.wave{display:inline-block;animation:wave 2s infinite}.hero-note{font-size:13px;color:var(--muted);margin-top:35px}.hero-note span{color:var(--pink-dark);font-size:17px}.hero-visual{height:580px;position:relative;display:grid;place-items:center}.main-blob{width:390px;height:440px;border-radius:46% 54% 56% 44%/42% 38% 62% 58%;background:linear-gradient(145deg,var(--lilac),#e0d8ff);position:relative;box-shadow:inset 18px 15px 50px rgba(255,255,255,.35),var(--shadow);animation:morph 8s ease-in-out infinite}.blob-face{position:absolute;top:82px;left:50%;transform:translateX(-50%);width:105px}.eye{position:absolute;width:10px;height:13px;background:var(--ink);border-radius:50%;top:0}.eye.left{left:22px}.eye.right{right:22px}.smile{position:absolute;width:31px;height:16px;border-bottom:3px solid var(--ink);border-radius:50%;top:12px;left:37px}.chart-card{position:absolute;width:270px;height:210px;background:rgba(255,255,255,.9);border:1px solid rgba(255,255,255,.8);backdrop-filter:blur(10px);border-radius:24px;left:58px;bottom:64px;padding:23px;box-shadow:0 18px 45px rgba(80,62,105,.18);transform:rotate(-2deg)}.card-label{font-size:12px;font-weight:700}.bars{height:95px;display:flex;align-items:end;gap:13px;padding-top:18px}.bars i{flex:1;border-radius:8px 8px 3px 3px;background:var(--pink);animation:grow 1.8s ease-in-out infinite alternate;transform-origin:bottom}.bars i:nth-child(1){height:43%;background:var(--mint)}.bars i:nth-child(2){height:68%;animation-delay:.2s}.bars i:nth-child(3){height:58%;background:var(--yellow);animation-delay:.4s}.bars i:nth-child(4){height:88%;background:var(--sage);animation-delay:.6s}.tiny-result{font-size:11px;color:var(--sage);font-weight:700}.floating-pill{position:absolute;padding:13px 17px;background:white;border-radius:16px;box-shadow:0 13px 35px rgba(74,57,67,.13);font-size:13px;font-weight:700;animation:float 4s ease-in-out infinite}.pill-ai{top:100px;right:-20px;transform:rotate(4deg)}.pill-ai span{color:var(--purple)}.pill-data{bottom:90px;left:-30px;animation-delay:-2s;transform:rotate(-4deg)}.pill-data span{color:var(--pink-dark)}.orbit{position:absolute;border:1px dashed rgba(118,94,168,.28);border-radius:50%;animation:spin 18s linear infinite}.orbit-one{width:510px;height:510px}.orbit-two{width:585px;height:585px;animation-direction:reverse;animation-duration:26s}.orbit span{position:absolute;left:50%;top:-10px;color:var(--pink-dark)}.daisy{position:absolute;width:52px;height:52px;animation:spin 12s linear infinite}.daisy-one{right:20px;bottom:45px}.daisy-two{left:25px;top:70px;transform:scale(.65);animation-direction:reverse}.daisy i{position:absolute;width:20px;height:28px;border-radius:50%;background:#fff;left:16px;top:0;transform-origin:10px 26px}.daisy i:nth-child(2){transform:rotate(90deg)}.daisy i:nth-child(3){transform:rotate(180deg)}.daisy i:nth-child(4){transform:rotate(270deg)}.daisy b{position:absolute;width:17px;height:17px;border-radius:50%;background:var(--yellow);left:18px;top:18px}.scroll-hint{position:absolute;bottom:28px;left:34px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:11px}.scroll-hint span{width:34px;height:1px;background:var(--muted)}.section{max-width:1280px;margin:auto;padding:115px 34px}.about{border-top:1px solid var(--line)}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px;margin-top:30px}.section-heading h2,.experience-intro h2,.projects-heading h2,.contact h2{font:700 clamp(36px,4.2vw,59px)/1.09 var(--font-display);letter-spacing:-.045em;margin:0}.section-heading h2 span,.projects-heading h2 span{color:var(--pink-dark)}.about-copy p{font-size:17px;line-height:1.75;color:var(--muted);margin:0 0 15px}.skill-cloud{display:flex;gap:9px;flex-wrap:wrap;margin-top:28px}.skill-cloud span,.mini-tags span{font-size:12px;font-weight:700;padding:9px 12px;border-radius:99px;background:white;border:1px solid var(--line)}.skill-cloud span:nth-child(3n+1){background:#edf8f2}.skill-cloud span:nth-child(3n+2){background:#fff1f4}.skill-cloud span:nth-child(3n){background:#f3efff}.fact-strip{margin-top:80px;background:var(--ink);color:white;border-radius:var(--radius);display:grid;grid-template-columns:repeat(4,1fr);padding:38px 20px;box-shadow:var(--shadow)}.fact-strip div{text-align:center;border-right:1px solid rgba(255,255,255,.15)}.fact-strip div:last-child{border:0}.fact-strip strong{display:block;font:700 35px var(--font-display);color:var(--yellow)}.fact-strip span{display:block;font-size:12px;opacity:.72;margin-top:7px}.experience{background:#f1f8f4;max-width:none;padding-left:max(34px,calc((100vw - 1212px)/2));padding-right:max(34px,calc((100vw - 1212px)/2))}.experience-intro{display:grid;grid-template-columns:1.2fr .8fr;align-items:end;gap:100px;margin:30px 0 75px}.experience-intro p,.projects-heading>p{color:var(--muted);line-height:1.7;max-width:420px}.timeline{position:relative}.timeline:before{content:"";position:absolute;left:calc(18% + 30px);top:0;bottom:0;width:1px;background:rgba(88,151,123,.3)}.timeline-item{display:grid;grid-template-columns:18% 60px 1fr;margin-bottom:30px;align-items:start}.timeline-date{font:700 14px var(--font-display);padding-top:27px;color:var(--sage)}.timeline-dot{width:48px;height:48px;margin-top:13px;background:var(--paper);border:1px solid rgba(88,151,123,.25);border-radius:50%;display:grid;place-items:center;position:relative;z-index:2;box-shadow:0 5px 18px rgba(56,100,78,.1)}.timeline-card{background:rgba(255,255,255,.78);border:1px solid rgba(88,151,123,.16);border-radius:22px;padding:29px 32px;transition:.3s}.timeline-card:hover{transform:translateY(-4px);box-shadow:0 18px 45px rgba(56,100,78,.1);background:white}.accent-card{box-shadow:inset 5px 0 var(--pink)}.card-top{display:flex;justify-content:space-between;gap:20px;font-size:12px}.company{font-weight:700;color:var(--sage)}.type{padding:4px 9px;background:#edf8f2;border-radius:99px}.timeline-card h3{font:700 22px var(--font-display);margin:12px 0}.timeline-card p{color:var(--muted);line-height:1.7;margin:0}.mini-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.mini-tags span{padding:7px 10px;background:transparent}.projects-heading{display:flex;align-items:end;justify-content:space-between;gap:70px;margin-bottom:55px}.projects-heading .section-tag{margin-bottom:25px}.project-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:24px}.project-card{background:white;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;position:relative;transition:.35s}.project-card:hover{transform:translateY(-7px);box-shadow:var(--shadow)}.project-number{position:absolute;top:20px;left:22px;z-index:2;width:35px;height:35px;border-radius:50%;background:rgba(255,255,255,.8);display:grid;place-items:center;font-size:11px;font-weight:700}.project-visual{height:330px;position:relative;overflow:hidden}.sentiment-visual{background:linear-gradient(135deg,#f8c0cf,#fbe3b7)}.review{position:absolute;background:white;border-radius:15px;padding:13px 17px;font-size:12px;font-weight:700;box-shadow:0 12px 35px rgba(135,72,89,.14);animation:float 5s ease-in-out infinite}.review-a{left:10%;top:26%;transform:rotate(-5deg)}.review-a span{color:var(--pink-dark)}.review-b{right:9%;top:18%;color:#e29f28;animation-delay:-1.4s}.review-c{right:13%;bottom:20%;transform:rotate(4deg);animation-delay:-2.8s}.analysis-line{position:absolute;left:13%;right:13%;bottom:38%;height:80px;display:flex;align-items:end;gap:7px}.analysis-line i{flex:1;border-radius:99px;background:rgba(255,255,255,.6);height:20%}.analysis-line i:nth-child(2){height:53%}.analysis-line i:nth-child(3){height:38%}.analysis-line i:nth-child(4){height:74%}.analysis-line i:nth-child(5){height:90%;background:rgba(88,151,123,.75)}.news-visual{background:linear-gradient(145deg,#beb0ed,#ebe5ff);display:grid;place-items:center}.paper{width:150px;height:190px;background:white;border-radius:9px;padding:36px 20px;transform:rotate(-5deg);box-shadow:0 18px 45px rgba(80,62,105,.2);position:relative}.paper span{height:7px;background:#eae6ee;display:block;margin-bottom:14px;border-radius:9px}.paper span:first-child{width:70%;background:var(--pink)}.paper b{font:700 50px var(--font-display);color:var(--purple);position:absolute;right:18px;bottom:8px}.scanner{position:absolute;width:220px;height:2px;background:#fff;box-shadow:0 0 16px 5px rgba(255,255,255,.65);animation:scan 2.6s ease-in-out infinite}.verified{position:absolute;bottom:30px;right:25px;background:var(--ink);color:white;border-radius:99px;padding:9px 12px;font-size:10px}.project-body{padding:30px}.project-meta{display:flex;justify-content:space-between;gap:10px;color:var(--pink-dark);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em}.project-body h3{font:700 25px/1.25 var(--font-display);margin:14px 0}.project-body p{color:var(--muted);line-height:1.7}.community{padding-top:30px}.community-card{background:#fbe9ef;border-radius:36px;min-height:440px;display:grid;grid-template-columns:.8fr 1.2fr;overflow:hidden}.community-art{background:var(--pink);position:relative;min-height:380px}.heart{position:absolute;color:#fff;font-size:80px;animation:float 4s infinite}.heart-one{left:18%;top:17%;transform:rotate(-12deg)}.heart-two{right:15%;top:40%;font-size:47px;animation-delay:-2s}.people{position:absolute;left:50%;bottom:13%;transform:translateX(-50%);display:flex;align-items:end}.people i{display:block;width:70px;height:130px;border-radius:50px 50px 20px 20px;background:#fff4d1;border:5px solid var(--ink);position:relative}.people i:before{content:"";position:absolute;width:52px;height:52px;border-radius:50%;background:#ffe0c2;border:5px solid var(--ink);left:4px;top:-41px}.people i:nth-child(2){height:165px;background:#ded5ff;z-index:2}.people i:nth-child(3){background:#d4f0e4}.community-copy{padding:70px;align-self:center}.community-copy h2{font:700 43px var(--font-display);margin:20px 0 30px}.community-copy h2 span{color:var(--pink-dark)}.community-copy h3{font:700 18px var(--font-display)}.community-copy p{color:var(--muted);line-height:1.75}.community-projects{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}.community-projects span{background:rgba(255,255,255,.65);padding:10px 13px;border-radius:12px;font-size:12px;font-weight:700}.education{padding-top:70px}.education-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:25px;margin-top:30px}.degree-card{background:var(--yellow);border-radius:var(--radius);padding:45px;min-height:380px;display:flex;flex-direction:column;justify-content:flex-end;position:relative;overflow:hidden}.degree-card:before{content:"✦";position:absolute;color:rgba(255,255,255,.6);font-size:140px;right:-15px;top:-25px;transform:rotate(14deg)}.degree-icon{font-size:45px;position:absolute;top:42px}.degree-card>span{font-size:12px;font-weight:700}.degree-card h2{font:700 31px var(--font-display);margin:12px 0 7px}.degree-card p{margin:0}.certificates{padding:28px 42px;background:white;border:1px solid var(--line);border-radius:var(--radius)}.certificates h3{font:700 22px var(--font-display)}.certificates ul{list-style:none;padding:0;margin:20px 0 0}.certificates li{display:grid;grid-template-columns:42px 1fr auto;align-items:center;border-top:1px solid var(--line);gap:10px}.certificates li>span{color:var(--pink-dark);font-size:11px;font-weight:700}.certificates li p{font-size:14px}.certificates li b{font-size:11px;color:var(--muted)}.contact{padding-bottom:70px}.contact-card{background:var(--ink);color:white;border-radius:38px;text-align:center;padding:90px 30px;position:relative;overflow:hidden}.contact-kicker{display:inline-block;color:var(--mint);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.12em}.contact h2{margin:25px 0 20px}.contact h2 span{color:var(--pink)}.contact-card>p{color:rgba(255,255,255,.65)}.contact-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin:34px 0 25px}.button-light{background:white;color:var(--ink)}.button-outline-light{border:1px solid rgba(255,255,255,.35)}.email-link{font-size:13px;color:var(--yellow);border-bottom:1px solid rgba(248,217,121,.4)}.contact-deco{position:absolute;font-size:60px;color:var(--pink);animation:float 5s infinite}.deco-one{left:9%;top:20%}.deco-two{right:9%;top:18%;color:var(--yellow);animation-delay:-2s}.deco-three{right:14%;bottom:10%;color:var(--mint);animation-delay:-1s}footer{max-width:1280px;margin:auto;padding:18px 34px 50px;display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:11px}.footer-logo{transform:scale(.8)}footer p span{color:var(--pink-dark)}.reveal{opacity:0;transform:translateY(28px);transition:opacity .75s ease,transform .75s ease}.reveal.visible{opacity:1;transform:none}@keyframes pulse{50%{box-shadow:0 0 0 9px rgba(92,183,137,0)}}@keyframes wave{0%,100%{transform:rotate(0)}20%{transform:rotate(18deg)}40%{transform:rotate(-10deg)}60%{transform:rotate(12deg)}}@keyframes morph{0%,100%{border-radius:46% 54% 56% 44%/42% 38% 62% 58%}50%{border-radius:55% 45% 41% 59%/55% 57% 43% 45%}}@keyframes float{0%,100%{translate:0 0}50%{translate:0 -13px}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes grow{to{transform:scaleY(.78)}}@keyframes scan{0%,100%{transform:translateY(-80px)}50%{transform:translateY(80px)}}
@media(max-width:900px){.desktop-nav{display:none}.hero{grid-template-columns:1fr;padding-top:35px}.hero-copy{text-align:center}.eyebrow{margin:auto}.hero-lead{margin-left:auto;margin-right:auto}.hero-actions{justify-content:center}.hero-visual{height:480px;transform:scale(.85);margin-top:-25px}.hero-note{margin-bottom:0}.about-grid,.experience-intro,.projects-heading,.community-card,.education-grid{grid-template-columns:1fr;gap:30px}.timeline:before{left:23px}.timeline-item{grid-template-columns:55px 1fr}.timeline-date{grid-column:2;padding:0 0 9px}.timeline-dot{grid-row:1/3;grid-column:1}.project-grid{grid-template-columns:1fr}.community-art{min-height:350px}.community-copy{padding:45px}.fact-strip{grid-template-columns:repeat(2,1fr);gap:30px 0}.fact-strip div:nth-child(2){border-right:0}.projects-heading{display:grid}.projects-heading>p{margin:0}.scroll-hint{display:none}}
@media(max-width:600px){.site-header{height:74px;padding:0 20px}.mini-cta{font-size:0;padding:11px 13px}.mini-cta:before{content:"CV";font-size:12px}.mini-cta span{font-size:13px}.hero{padding:35px 20px 70px;min-height:auto}.hero h1{font-size:42px}.hero-lead{font-size:16px}.hero-visual{height:370px;transform:scale(.68);margin:-20px -75px -30px}.section{padding:80px 20px}.about-grid{gap:35px}.fact-strip{margin-top:50px;padding:28px 10px}.fact-strip strong{font-size:28px}.experience{padding-left:20px;padding-right:20px}.experience-intro{margin-bottom:50px}.timeline-item{grid-template-columns:45px 1fr}.timeline-dot{width:38px;height:38px}.timeline:before{left:18px}.timeline-card{padding:23px 20px}.card-top{display:block}.type{display:inline-block;margin-top:8px}.project-visual{height:260px}.project-body{padding:23px 20px}.project-meta{display:block}.project-meta span{display:block;margin-bottom:5px}.community{padding-top:15px}.community-card{border-radius:28px}.community-copy{padding:38px 23px}.community-copy h2{font-size:34px}.education{padding-top:60px}.degree-card{min-height:330px;padding:30px}.certificates{padding:23px 20px}.certificates li{grid-template-columns:32px 1fr}.certificates li b{display:none}.contact{padding-bottom:40px}.contact-card{padding:70px 20px}.contact-deco{font-size:35px;opacity:.45}footer{padding:10px 20px 35px;flex-direction:column;gap:10px}.cursor-dot{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}

/* Multi-page portfolio */
.desktop-nav a.active{color:var(--pink-dark)}.desktop-nav a.active:after{right:0}.home-links{padding-top:65px}.page-link-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:30px}.page-link-card{min-height:250px;background:white;border:1px solid var(--line);border-radius:24px;padding:28px;display:flex;flex-direction:column;position:relative;transition:transform .3s,box-shadow .3s,background .3s}.page-link-card:hover{transform:translateY(-7px);box-shadow:var(--shadow)}.page-link-card:nth-child(2){background:#edf8f2}.page-link-card:nth-child(3){background:#f3efff}.page-link-card:nth-child(4){background:#fff1f4}.page-link-card>span{font-size:11px;font-weight:700;color:var(--pink-dark)}.page-link-card b{font:700 25px var(--font-display);margin-top:auto}.page-link-card p{color:var(--muted);font-size:13px;line-height:1.55;margin-bottom:0}.page-link-card i{position:absolute;right:23px;top:23px;font-style:normal;font-size:19px}.page-hero{max-width:1280px;min-height:520px;margin:auto;padding:80px 34px 90px;display:grid;grid-template-columns:1.15fr .85fr;align-items:center;gap:80px}.page-hero-copy h1{font:700 clamp(44px,5.7vw,76px)/1.05 var(--font-display);letter-spacing:-.05em;margin:25px 0}.page-hero-copy h1 span{color:var(--pink-dark)}.page-hero-copy p{font-size:18px;line-height:1.7;color:var(--muted);max-width:680px}.page-sticker{min-height:210px;border-radius:50% 44% 48% 43%;background:var(--yellow);display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:wrap;padding:40px;transform:rotate(3deg);box-shadow:var(--shadow);font:700 15px var(--font-display);animation:morph 8s ease-in-out infinite}.page-sticker b{color:var(--pink-dark)}.experience-page-hero .page-sticker{background:var(--mint)}.projects-page-hero .page-sticker{background:var(--lilac)}.inner-section{padding-top:85px}.next-page{text-align:center;padding-top:55px;padding-bottom:90px}.next-page p{font-size:12px;color:var(--sage);text-transform:uppercase;letter-spacing:.14em;font-weight:700}.next-page a{font:700 clamp(28px,4vw,50px) var(--font-display);border-bottom:3px solid var(--pink);padding-bottom:6px}.contact-main{padding-top:25px}.contact-details{padding-top:0;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.contact-details a{background:white;border:1px solid var(--line);border-radius:20px;padding:25px;display:grid;grid-template-columns:1fr auto;gap:10px;transition:.25s}.contact-details a:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.contact-details span{grid-column:1/3;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.1em}.contact-details b{font-size:13px;overflow-wrap:anywhere}.contact-details i{font-style:normal;color:var(--pink-dark)}
@media(max-width:900px){.menu-button{display:flex;width:42px;height:42px;border:1px solid var(--line);border-radius:13px;flex-direction:column;align-items:center;justify-content:center;gap:6px;position:relative;z-index:42;background:white}.menu-button span{display:block;width:18px;height:2px;background:var(--ink);transition:.25s}.menu-button.open span:first-child{transform:translateY(4px) rotate(45deg)}.menu-button.open span:last-child{transform:translateY(-4px) rotate(-45deg)}.site-header .desktop-nav{display:none;position:absolute;left:20px;right:20px;top:74px;background:white;border:1px solid var(--line);border-radius:20px;padding:12px;box-shadow:var(--shadow);flex-direction:column;gap:3px}.site-header .desktop-nav.open{display:flex}.site-header .desktop-nav a{padding:14px 16px;border-radius:12px}.site-header .desktop-nav a.active{background:#fff1f4}.site-header .desktop-nav a:after{display:none}.page-link-grid{grid-template-columns:repeat(2,1fr)}.page-hero{grid-template-columns:1fr;gap:30px;padding-top:60px}.page-sticker{min-height:150px;max-width:500px}.contact-details{grid-template-columns:1fr}}
@media(max-width:600px){.page-link-grid{grid-template-columns:1fr}.page-link-card{min-height:210px}.page-hero{min-height:auto;padding:55px 20px 70px}.page-hero-copy h1{font-size:43px}.page-hero-copy p{font-size:16px}.page-sticker{min-height:125px;padding:28px}.next-page{padding-top:35px}.contact-main{padding-top:0}.contact-details{padding-top:0}}

/* Motion system */
body>header,body>main,body>footer{transition:opacity .42s ease,transform .42s cubic-bezier(.22,1,.36,1),filter .42s ease}body.page-entering:not(.page-ready)>header,body.page-entering:not(.page-ready)>main,body.page-entering:not(.page-ready)>footer{opacity:0;transform:translateY(12px);filter:blur(5px)}body.page-ready>header,body.page-ready>main,body.page-ready>footer{opacity:1;transform:none;filter:none}body.page-leaving>header,body.page-leaving>main,body.page-leaving>footer{opacity:0;transform:translateY(-10px) scale(.992);filter:blur(5px)}
.site-loader{position:fixed;inset:0;z-index:9999;background:var(--cream);display:grid;place-content:center;justify-items:center;gap:18px;transition:opacity .5s ease,visibility .5s ease}.page-ready .site-loader{opacity:0;visibility:hidden}.site-loader p{font:700 12px var(--font-display);letter-spacing:.08em;color:var(--sage)}.loader-friend{width:92px;height:82px;border-radius:48% 52% 45% 55%/56% 44% 56% 44%;background:var(--lilac);position:relative;animation:loaderBounce 1.15s ease-in-out infinite;box-shadow:0 18px 40px rgba(118,94,168,.18)}.loader-friend i{position:absolute;top:31px;width:8px;height:11px;background:var(--ink);border-radius:50%;animation:blink 2s infinite}.loader-friend i:first-child{left:27px}.loader-friend i:nth-child(2){right:27px}.loader-friend b{position:absolute;width:22px;height:11px;border-bottom:3px solid var(--ink);border-radius:50%;left:35px;top:42px}.loader-friend span{position:absolute;right:-16px;top:-11px;color:var(--pink-dark);font-size:25px;animation:spin 3s linear infinite}
.cursor-aurora{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none}.cursor-aurora i{position:absolute;border-radius:50%;filter:blur(55px);opacity:.18;will-change:transform}.cursor-aurora i:first-child{width:340px;height:340px;background:var(--pink);left:0;top:0;transform:translate3d(calc(var(--mouse-x,50vw) - 170px),calc(var(--mouse-y,50vh) - 170px),0)}.cursor-aurora i:nth-child(2){width:420px;height:420px;background:var(--mint);right:-130px;top:22%;animation:auroraDrift 12s ease-in-out infinite}.cursor-aurora i:nth-child(3){width:300px;height:300px;background:var(--lilac);left:15%;bottom:-140px;animation:auroraDrift 15s ease-in-out infinite reverse}
.title-letter{display:inline-block;opacity:0;transform:translateY(.7em) rotate(5deg);filter:blur(5px);transition:opacity .5s ease calc(var(--letter-index)*24ms + 180ms),transform .6s cubic-bezier(.22,1,.36,1) calc(var(--letter-index)*24ms + 180ms),filter .5s ease calc(var(--letter-index)*24ms + 180ms)}.letters-visible .title-letter{opacity:1;transform:none;filter:none}.title-letter:hover{color:var(--pink-dark);transform:translateY(-.08em) rotate(-3deg)}
.tilt-card{transform-style:preserve-3d;will-change:transform;transition:transform .18s ease-out,box-shadow .3s ease!important}.tilt-card:after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(circle at var(--shine-x,50%) var(--shine-y,50%),rgba(255,255,255,.38),transparent 35%);opacity:0;transition:opacity .25s}.tilt-card:hover:after{opacity:1}.tilt-card .project-body,.tilt-card .project-number{transform:translateZ(22px)}
.card-mascot{position:absolute;right:17px;bottom:15px;width:42px;height:37px;border-radius:48% 52% 44% 56%;background:var(--yellow);z-index:8;opacity:0;transform:translateY(12px) rotate(8deg) scale(.8);transition:.3s cubic-bezier(.22,1,.36,1);box-shadow:0 8px 20px rgba(74,57,67,.12);pointer-events:none}.card-mascot i{position:absolute;top:14px;width:4px;height:6px;background:var(--ink);border-radius:50%;transition:.2s}.card-mascot i:first-child{left:12px}.card-mascot i:nth-child(2){right:12px}.card-mascot b{position:absolute;width:11px;height:5px;border-bottom:2px solid var(--ink);border-radius:50%;left:15px;top:20px}.card-mascot em{position:absolute;right:-6px;top:-9px;color:var(--pink-dark);font-style:normal;font-weight:700}.project-card:hover .card-mascot,.page-link-card:hover .card-mascot,.timeline-card:hover .card-mascot{opacity:1;transform:translateY(0) rotate(-4deg) scale(1)}.project-card:hover .card-mascot i:first-child,.page-link-card:hover .card-mascot i:first-child,.timeline-card:hover .card-mascot i:first-child{height:2px;top:16px}.timeline-card,.page-link-card{position:relative;overflow:hidden}.timeline-card .card-mascot{background:var(--lilac)}.page-link-card .card-mascot{background:var(--mint)}
.timeline{--timeline-progress:0%}.timeline:after{content:"";position:absolute;left:calc(18% + 30px);top:0;width:3px;height:var(--timeline-progress);border-radius:99px;background:linear-gradient(var(--mint),var(--pink),var(--lilac));transform:translateX(-1px);z-index:1;box-shadow:0 0 14px rgba(219,109,141,.35)}.timeline-item{position:relative}.timeline-dot{transition:transform .35s,background .35s}.timeline-item:hover .timeline-dot{transform:scale(1.15) rotate(-7deg);background:#fff2f5}
@keyframes loaderBounce{0%,100%{transform:translateY(0) rotate(-2deg);border-radius:48% 52% 45% 55%/56% 44% 56% 44%}50%{transform:translateY(-13px) rotate(2deg);border-radius:55% 45% 53% 47%/45% 53% 47% 55%}}@keyframes blink{0%,45%,49%,100%{transform:scaleY(1)}47%{transform:scaleY(.1)}}@keyframes auroraDrift{0%,100%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(45px,-35px,0) scale(1.12)}}
@media(max-width:900px){.timeline:after{left:23px}.card-mascot{opacity:.85;transform:scale(.8)}}
@media(max-width:600px){.timeline:after{left:18px}.site-loader p{font-size:10px}}
@media(prefers-reduced-motion:reduce){body>header,body>main,body>footer{transition:none!important}.site-loader{display:none}.cursor-aurora{display:none}.title-letter{opacity:1!important;transform:none!important;filter:none!important;transition:none!important}.tilt-card{transform:none!important}.timeline:after{height:100%}.card-mascot{transition:none}}
body>header,body>main,body>footer{position:relative;z-index:1}.cursor-aurora{z-index:0}.card-mascot b{margin:0}.title-letter{transition:opacity .5s ease var(--letter-delay),transform .6s cubic-bezier(.22,1,.36,1) var(--letter-delay),filter .5s ease var(--letter-delay)}

/* Piko mascot */
.mascot-hero{isolation:isolate}.mascot-halo{position:absolute;width:430px;height:430px;border-radius:46% 54% 56% 44%/42% 38% 62% 58%;background:linear-gradient(145deg,#eee9ff,#fbe4eb);box-shadow:inset 18px 15px 50px rgba(255,255,255,.55),var(--shadow);animation:morph 8s ease-in-out infinite;z-index:-1}.hero-mascot{position:relative;width:510px;height:510px;object-fit:contain;z-index:2;filter:drop-shadow(0 24px 24px rgba(80,62,105,.16));animation:mascotFloat 4.5s ease-in-out infinite;will-change:transform}.mascot-label{position:absolute;right:-2px;bottom:56px;z-index:4;background:rgba(255,255,255,.88);border:1px solid rgba(255,255,255,.8);backdrop-filter:blur(10px);border-radius:18px;padding:12px 16px;box-shadow:0 14px 36px rgba(74,57,67,.13);transform:rotate(3deg);display:flex;flex-direction:column}.mascot-label b{font:700 15px var(--font-display);color:var(--pink-dark)}.mascot-label span{font-size:10px;color:var(--muted);margin-top:2px}.mascot-guide{position:fixed;right:24px;bottom:20px;z-index:80;width:68px;height:68px;border:1px solid rgba(118,94,168,.18);border-radius:24px;background:rgba(255,255,255,.9);box-shadow:0 16px 45px rgba(74,57,67,.18);padding:3px;cursor:pointer;transition:transform .3s cubic-bezier(.22,1,.36,1),border-radius .3s}.mascot-guide:hover{transform:translateY(-5px) rotate(2deg)}.mascot-guide>img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 5px 5px rgba(80,62,105,.12))}.mascot-guide>span{position:absolute;right:0;bottom:79px;width:245px;text-align:left;background:var(--ink);color:white;border-radius:18px 18px 5px 18px;padding:15px 17px;font:500 12px/1.5 var(--font-body);box-shadow:var(--shadow);opacity:0;visibility:hidden;transform:translateY(8px) scale(.95);transform-origin:bottom right;transition:.25s}.mascot-guide>span:after{content:"";position:absolute;right:19px;bottom:-7px;width:15px;height:15px;background:var(--ink);transform:rotate(45deg)}.mascot-guide>span b{display:block;color:var(--yellow);font:700 14px var(--font-display);margin-bottom:3px}.mascot-guide>span i{color:var(--pink);font-style:normal}.mascot-guide.open{border-radius:50%;transform:translateY(-4px)}.mascot-guide.open>span{opacity:1;visibility:visible;transform:none}.loader-friend{width:105px;height:105px;background:#f0ebff;border-radius:50%;overflow:visible}.loader-friend img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 8px 8px rgba(80,62,105,.12))}.loader-friend i,.loader-friend b{display:none}.loader-friend span{right:-8px;top:0}
@keyframes mascotFloat{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-14px) rotate(1.5deg)}}
@media(max-width:900px){.hero-mascot{width:470px;height:470px}.mascot-label{right:20px}.mascot-guide{right:15px;bottom:15px}}
@media(max-width:600px){.hero-mascot{width:455px;height:455px}.mascot-halo{width:400px;height:400px}.mascot-label{right:30px;bottom:42px}.mascot-guide{width:58px;height:58px;border-radius:19px}.mascot-guide>span{bottom:69px;width:225px}.loader-friend{width:88px;height:88px}}
@media(prefers-reduced-motion:reduce){.hero-mascot{animation:none}.mascot-guide{transition:none}}

/* Piko interactions */
.mascot-character{position:relative;width:510px;height:510px;display:grid;place-items:center;border:0;padding:0;background:transparent;z-index:2;cursor:pointer;transform:translate3d(var(--piko-x,0),var(--piko-y,0),0) rotateX(var(--piko-rx,0)) rotateY(var(--piko-ry,0));transform-style:preserve-3d;transition:transform .24s ease-out}.mascot-character:focus-visible{outline:3px solid var(--pink-dark);outline-offset:4px;border-radius:42%}.mascot-character .hero-mascot{width:100%;height:100%;z-index:auto;pointer-events:none}.mascot-blink{position:absolute;top:33.1%;width:3.7%;height:7.2%;border-radius:50%;background:#fff9e9;z-index:4;transform:scaleY(0);transform-origin:center;animation:pikoBlink 5.2s infinite;pointer-events:none}.blink-left{left:44.5%}.blink-right{left:57.8%;animation-delay:.03s}.mascot-spark{position:absolute;z-index:5;font-style:normal;font-weight:700;pointer-events:none;opacity:.8;animation:sparkDrift 3.6s ease-in-out infinite}.spark-one{left:18%;top:20%;color:var(--yellow);font-size:25px}.spark-two{right:18%;top:27%;color:var(--pink-dark);font-size:22px;animation-delay:-1.2s}.spark-three{right:20%;bottom:20%;color:var(--sage);font-size:19px;animation-delay:-2.4s}.mascot-character:hover .hero-mascot{filter:drop-shadow(0 30px 29px rgba(80,62,105,.23))}.mascot-character.celebrating{animation:pikoCelebrate .82s cubic-bezier(.2,.8,.2,1)}.mascot-guide.celebrating>img{animation:guideCelebrate .82s cubic-bezier(.2,.8,.2,1)}.piko-confetti{position:fixed;width:9px;height:9px;border-radius:3px;background:var(--confetti-color);z-index:999;pointer-events:none;animation:confettiPop .78s cubic-bezier(.18,.7,.25,1) forwards;transform:translate(-50%,-50%)}
@keyframes pikoBlink{0%,42%,46%,49%,100%{transform:scaleY(0)}44%,47%{transform:scaleY(1)}}@keyframes sparkDrift{0%,100%{transform:translateY(0) rotate(-8deg) scale(.85);opacity:.55}50%{transform:translateY(-10px) rotate(8deg) scale(1.12);opacity:1}}@keyframes pikoCelebrate{0%,100%{transform:translate3d(var(--piko-x,0),var(--piko-y,0),0)}28%{transform:translateY(-28px) rotate(-6deg) scale(1.04)}55%{transform:translateY(-6px) rotate(7deg) scale(.98)}76%{transform:translateY(-14px) rotate(-3deg) scale(1.02)}}@keyframes guideCelebrate{0%,100%{transform:none}30%{transform:translateY(-16px) rotate(-10deg) scale(1.08)}60%{transform:rotate(9deg) scale(.96)}}@keyframes confettiPop{0%{opacity:1;transform:translate(-50%,-50%) scale(.3) rotate(0)}75%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--confetti-x)),calc(-50% + var(--confetti-y))) scale(1) rotate(260deg)}}
@media(max-width:900px){.mascot-character{width:470px;height:470px}}
@media(max-width:600px){.mascot-character{width:455px;height:455px}.mascot-blink{top:33.1%}}
@media(prefers-reduced-motion:reduce){.mascot-character{transform:none;transition:none}.mascot-blink,.mascot-spark{animation:none}.mascot-blink{display:none}.piko-confetti{display:none}}
.mascot-guide:not(.open):not(:hover){animation:guidePeek 7s ease-in-out infinite}@keyframes guidePeek{0%,82%,100%{transform:translateY(0) rotate(0)}86%{transform:translateY(-8px) rotate(-5deg)}90%{transform:translateY(0) rotate(4deg)}94%{transform:translateY(-4px) rotate(-2deg)}}@media(prefers-reduced-motion:reduce){.mascot-guide{animation:none!important}}

/* Larger floating Piko */
.mascot-guide{width:88px;height:88px;border-radius:28px;padding:4px}.mascot-guide>span{bottom:100px}.mascot-guide.open{border-radius:50%}
@media(max-width:600px){.mascot-guide{width:74px;height:74px;border-radius:23px}.mascot-guide>span{bottom:86px}}
