:root,[data-theme=lavender]{--bg: #fbfaff;--bg-soft: #f4f0fc;--paper: #ffffff;--ink: oklch(.27 .05 285);--ink-soft: oklch(.45 .04 285);--ink-faint: oklch(.65 .03 285);--lavender: oklch(.86 .06 295);--lavender-deep: oklch(.72 .1 295);--sky: oklch(.88 .06 230);--sky-deep: oklch(.74 .1 230);--blush: oklch(.89 .05 20);--mint: oklch(.89 .05 160);--butter: oklch(.92 .06 95);--line: oklch(.92 .02 290);--shadow-sm: 0 2px 6px rgba(120, 100, 180, .06);--shadow-md: 0 12px 28px -10px rgba(120, 100, 180, .18);--shadow-lg: 0 24px 48px -16px rgba(120, 100, 180, .24);--radius-sm: 10px;--radius: 18px;--radius-lg: 28px;--radius-xl: 40px;--blob-1: oklch(.95 .04 295);--blob-2: oklch(.95 .04 230);--blob-3: oklch(.96 .03 20)}[data-theme=matcha]{--bg: #f7f4ea;--bg-soft: #ece7d5;--paper: #fffdf6;--ink: oklch(.28 .04 130);--ink-soft: oklch(.45 .03 130);--ink-faint: oklch(.62 .025 130);--lavender: oklch(.86 .06 145);--lavender-deep: oklch(.68 .1 145);--sky: oklch(.88 .05 95);--sky-deep: oklch(.7 .09 80);--blush: oklch(.86 .06 60);--mint: oklch(.88 .06 160);--butter: oklch(.92 .06 95);--line: oklch(.88 .02 130);--shadow-sm: 0 2px 6px rgba(110, 130, 80, .08);--shadow-md: 0 12px 28px -10px rgba(110, 130, 80, .2);--shadow-lg: 0 24px 48px -16px rgba(110, 130, 80, .26);--blob-1: oklch(.93 .06 145);--blob-2: oklch(.94 .06 95);--blob-3: oklch(.95 .04 60)}[data-theme=strawberry]{--bg: #fdf3f4;--bg-soft: #f9e3e6;--paper: #ffffff;--ink: oklch(.3 .05 20);--ink-soft: oklch(.46 .04 20);--ink-faint: oklch(.64 .03 20);--lavender: oklch(.88 .06 15);--lavender-deep: oklch(.7 .13 18);--sky: oklch(.9 .05 40);--sky-deep: oklch(.74 .13 40);--blush: oklch(.9 .05 350);--mint: oklch(.9 .04 160);--butter: oklch(.93 .06 95);--line: oklch(.91 .03 18);--shadow-sm: 0 2px 6px rgba(190, 110, 130, .08);--shadow-md: 0 12px 28px -10px rgba(190, 110, 130, .2);--shadow-lg: 0 24px 48px -16px rgba(190, 110, 130, .26);--blob-1: oklch(.94 .06 15);--blob-2: oklch(.95 .05 40);--blob-3: oklch(.96 .04 350)}[data-theme=peach]{--bg: #fff3e8;--bg-soft: #ffe2cb;--paper: #fffaf3;--ink: oklch(.3 .06 50);--ink-soft: oklch(.46 .05 50);--ink-faint: oklch(.64 .04 50);--lavender: oklch(.86 .08 55);--lavender-deep: oklch(.72 .13 50);--sky: oklch(.9 .1 85);--sky-deep: oklch(.78 .14 85);--blush: oklch(.88 .07 30);--mint: oklch(.89 .05 160);--butter: oklch(.93 .1 95);--line: oklch(.91 .04 50);--shadow-sm: 0 2px 6px rgba(210, 140, 90, .1);--shadow-md: 0 12px 28px -10px rgba(210, 140, 90, .22);--shadow-lg: 0 24px 48px -16px rgba(210, 140, 90, .28);--blob-1: oklch(.93 .08 55);--blob-2: oklch(.94 .1 85);--blob-3: oklch(.95 .06 30)}[data-theme=midnight]{--bg: #1a1b2e;--bg-soft: #25273f;--paper: #2a2c47;--ink: #ffffff;--ink-soft: #ffffff;--ink-faint: #ffffff;--lavender: oklch(.45 .1 295);--lavender-deep: oklch(.78 .14 295);--sky: oklch(.45 .1 230);--sky-deep: oklch(.78 .14 220);--blush: oklch(.78 .12 350);--mint: oklch(.8 .12 160);--butter: oklch(.85 .12 95);--line: oklch(.38 .04 280);--shadow-sm: 0 2px 6px rgba(0, 0, 0, .25);--shadow-md: 0 12px 28px -10px rgba(0, 0, 0, .45);--shadow-lg: 0 24px 48px -16px rgba(0, 0, 0, .55);--blob-1: oklch(.38 .1 295);--blob-2: oklch(.36 .1 230);--blob-3: oklch(.38 .08 320)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:Quicksand,system-ui,sans-serif;color:var(--ink);background-color:var(--bg);background-image:radial-gradient(1100px 600px at 8% -5%,var(--blob-1) 0%,transparent 55%),radial-gradient(900px 500px at 100% 10%,var(--blob-2) 0%,transparent 60%),radial-gradient(700px 500px at 50% 110%,var(--blob-3) 0%,transparent 65%);min-height:100vh;font-size:17px;line-height:1.55;letter-spacing:-.005em;padding-bottom:56px;transition:color .5s ease}h1,h2,h3,.display{font-family:Caprasimo,Quicksand,serif;font-weight:400;letter-spacing:-.015em;line-height:1.05;margin:0;color:var(--ink)}a{color:inherit}.blob{position:fixed;border-radius:50%;filter:blur(60px);opacity:.55;pointer-events:none;z-index:0}.blob.b1{width:360px;height:360px;background:var(--blob-1);top:-80px;left:-100px;animation:drift 18s ease-in-out infinite}.blob.b2{width:300px;height:300px;background:var(--blob-2);top:30%;right:-80px;animation:drift 22s ease-in-out -6s infinite}.blob.b3{width:260px;height:260px;background:var(--blob-3);bottom:12%;left:12%;animation:drift 26s ease-in-out -10s infinite}@keyframes drift{0%,to{transform:translate(0)}33%{transform:translate(30px,-20px)}66%{transform:translate(-20px,25px)}}.nav{position:sticky;top:16px;z-index:50;margin:16px auto 0;width:min(1100px,calc(100% - 32px));background:color-mix(in oklab,var(--paper) 75%,transparent);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);border:1px solid color-mix(in oklab,var(--paper) 90%,transparent);box-shadow:var(--shadow-md);border-radius:100px;padding:10px 14px 10px 22px;display:flex;align-items:center;justify-content:space-between;gap:12px}.nav .brand{font-family:Caprasimo,serif;font-size:22px;display:flex;align-items:center;gap:10px}.nav .brand .dot{width:28px;height:28px;border-radius:50%;background:conic-gradient(from 120deg,var(--lavender),var(--sky),var(--blush),var(--lavender));box-shadow:inset 0 0 0 3px #fff,var(--shadow-sm);animation:spin 14s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.nav .links{display:flex;gap:4px}.nav a.link{text-decoration:none;font-weight:600;font-size:15px;padding:9px 16px;border-radius:100px;color:var(--ink-soft);cursor:pointer;transition:all .25s cubic-bezier(.2,.8,.2,1);position:relative}.nav a.link:hover{color:var(--ink);background:#b4a0dc1f}.nav a.link.active{color:var(--ink);background:var(--paper);box-shadow:var(--shadow-sm)}.page{position:relative;z-index:1;width:min(1100px,calc(100% - 32px));margin:36px auto 60px;animation:pagein .5s cubic-bezier(.2,.8,.2,1)}@keyframes pagein{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.btn{display:inline-flex;align-items:center;gap:10px;padding:14px 24px;border-radius:100px;border:none;font-family:inherit;font-weight:700;font-size:15px;cursor:pointer;transition:transform .2s cubic-bezier(.2,.8,.2,1),box-shadow .2s}.btn.primary{background:linear-gradient(135deg,var(--lavender-deep),var(--sky-deep));color:#fff;box-shadow:0 8px 20px -6px #8c78dc80}.btn.primary:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 14px 28px -8px #8c78dc8c}.btn.ghost{background:var(--paper);color:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow-sm)}.btn.ghost:hover{transform:translateY(-2px)}.tag-row{display:flex;gap:6px;flex-wrap:wrap}.chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:100px;font-size:13px;font-weight:600;background:var(--paper);border:1px solid var(--line);color:var(--ink-soft)}.hero{display:grid;grid-template-columns:1.2fr 1fr;gap:60px;align-items:center;padding:40px 0 20px}.hero .eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--lavender-deep);background:var(--bg-soft);padding:8px 14px;border-radius:100px;border:1px solid var(--line);margin-bottom:24px}.hero .eyebrow .pulse{width:8px;height:8px;border-radius:50%;background:#45ba50;box-shadow:0 0 #45ba50;animation:pulse 2s infinite}@keyframes pulse{0%{box-shadow:0 0 #45ba5080}70%{box-shadow:0 0 0 8px #45ba5000}to{box-shadow:0 0 #45ba5000}}.hero h1{font-size:clamp(48px,6vw,84px);line-height:1.18;margin-bottom:22px}.hero h1 .wave{display:inline-block;transform-origin:70% 70%;animation:wave 2.4s ease-in-out infinite}@keyframes wave{0%,60%,to{transform:rotate(0)}10%,30%{transform:rotate(16deg)}20%,40%{transform:rotate(-8deg)}}.hero h1 em{font-style:normal;background:linear-gradient(135deg,var(--lavender-deep),var(--sky-deep));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding:0 .1em .08em 0}.hero p.lede{font-size:19px;color:var(--ink-soft);max-width:48ch;margin:0 0 32px}.hero .cta-row{display:flex;gap:12px;flex-wrap:wrap}.collage{position:relative;height:460px}.collage .card-tile{position:absolute;background:var(--paper);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:18px;border:1px solid var(--line)}.collage .t-avatar{width:240px;height:280px;top:30px;left:0;z-index:2;background:linear-gradient(160deg,var(--lavender) 0%,var(--sky) 100%);transform:rotate(-4deg);position:relative;overflow:hidden}.collage .t-avatar .glyph{font-family:Caprasimo,serif;font-size:140px;color:#fff;text-shadow:0 6px 20px rgba(0,0,0,.08)}.collage .t-card1{width:200px;top:0;right:0;transform:rotate(6deg);animation:float1 6s ease-in-out infinite}.collage .t-card2{width:180px;bottom:30px;right:0;transform:rotate(-3deg);animation:float1 7s ease-in-out -2s infinite}.collage .t-card3{width:160px;bottom:0;left:0;transform:rotate(4deg);animation:float1 8s ease-in-out -4s infinite}@keyframes float1{0%,to{transform:rotate(var(--r, 0deg)) translateY(0)}50%{transform:rotate(var(--r, 0deg)) translateY(-8px)}}.t-card1{--r: 6deg}.t-card2{--r: -3deg}.t-card3{--r: 4deg}.tile-label{font-size:11px;font-weight:700;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.1em;margin-bottom:6px}.tile-body{font-family:Caprasimo,serif;font-size:20px;line-height:1.1}.marquee{margin-top:80px;overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--bg-soft);padding:18px 0}.marquee-track{display:flex;gap:48px;animation:marquee 30s linear infinite;white-space:nowrap;font-family:Caprasimo,serif;font-size:22px;color:var(--ink-soft)}.marquee-track span{display:inline-flex;align-items:center;gap:48px}.marquee-track .star{color:var(--lavender-deep)}@keyframes marquee{to{transform:translate(-50%)}}.section-head{margin-bottom:36px}.section-head .kicker{font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--sky-deep);margin-bottom:12px}.section-head h2{font-size:clamp(36px,4.5vw,56px)}.section-head p{color:var(--ink-soft);max-width:60ch;margin-top:16px;font-size:17px}.timeline-sort{margin-bottom:8px}.timeline-sort .btn{font-size:13px;padding:4px 12px}.timeline{position:relative;padding:20px 0 20px 40px}.timeline:before{content:"";position:absolute;left:12px;top:30px;bottom:30px;width:3px;background:repeating-linear-gradient(to bottom,var(--lavender) 0,var(--lavender) 6px,transparent 6px,transparent 12px);border-radius:3px}.t-item{position:relative;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:22px 26px;margin-bottom:18px;box-shadow:var(--shadow-sm);transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s;cursor:pointer}.t-item:hover{transform:translate(6px);box-shadow:var(--shadow-md)}.t-item .dot-marker{position:absolute;left:-34px;top:26px;width:22px;height:22px;border-radius:50%;background:var(--paper);border:3px solid var(--lavender-deep);box-shadow:0 0 0 4px #b4a0dc2e}.t-item.education .dot-marker{border-color:var(--sky-deep);box-shadow:0 0 0 4px #8cb4e62e}.t-item .year{font-size:13px;font-weight:700;color:var(--ink-faint)}.t-item h3{font-size:22px;margin:4px 0}.t-item .org{font-weight:600;color:var(--lavender-deep);font-size:15px}.t-item .cgpa{position:absolute;bottom:16px;right:20px;font-weight:500;font-size:13px;color:var(--ink-faint)}.t-item.education .org{color:var(--sky-deep)}.t-item p{color:var(--ink-soft);margin:10px 0 0;font-size:15px}.t-item .badge{position:absolute;top:18px;right:22px;font-size:11px;font-weight:700;letter-spacing:.06em;padding:4px 10px;border-radius:100px;text-transform:uppercase;background:var(--bg-soft);color:var(--lavender-deep)}.t-item.education .badge{background:var(--sky);color:var(--sky-deep)}.beyond-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:28px}.hobby{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:22px 18px 20px;text-align:center;transition:transform .3s cubic-bezier(.2,.8,.2,1);cursor:default}.hobby:hover{transform:translateY(-6px) rotate(-1deg)}.hobby .icon{width:56px;height:56px;border-radius:50%;margin:0 auto 12px;display:grid;place-items:center;font-size:28px;background:var(--bg-soft)}.hobby h4{font-family:Caprasimo,serif;font-size:18px;margin:0 0 4px}.hobby p{font-size:13px;color:var(--ink-soft);margin:0}.about-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:56px;align-items:start}.about-bio{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);padding:28px 30px;box-shadow:var(--shadow-sm);position:sticky;top:100px}.about-bio h3{font-size:26px;margin-bottom:12px}.about-bio p{color:var(--ink-soft);font-size:15px;margin-bottom:14px}.about-bio .stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px;padding-top:18px;border-top:1px dashed var(--line)}.about-bio .stats div{text-align:center}.about-bio .stats strong{font-family:Caprasimo,serif;font-size:26px;display:block;color:var(--lavender-deep)}.about-bio .stats span{font-size:12px;color:var(--ink-faint)}.proj-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}.proj-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;transition:transform .4s cubic-bezier(.2,.8,.2,1),box-shadow .4s;display:flex;flex-direction:column}.proj-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-lg)}.proj-card .thumb{height:200px;position:relative;overflow:hidden}.proj-card .thumb-shape{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;transition:transform .5s cubic-bezier(.2,.8,.2,1)}.proj-card:hover .thumb-shape{transform:scale(1.08)}.proj-card .thumb-shape .glyph{font-family:Caprasimo,serif;font-size:72px;color:#ffffffeb;text-shadow:0 8px 24px rgba(0,0,0,.1)}.proj-card .body{padding:22px 24px 24px}.proj-card h3{font-size:22px;margin-bottom:8px}.proj-card .summary{color:var(--ink-soft);font-size:14px;margin-bottom:14px}.proj-card .tag-row{display:flex;gap:6px;flex-wrap:wrap}.skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:28px}.skill-section{position:relative;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:28px 32px;height:250px;overflow:hidden}.skill-section:before{content:"";position:absolute;top:22px;right:22px;bottom:22px;left:22px;border-radius:var(--radius-lg);background-image:radial-gradient(circle at 2.5px 2.5px,rgba(255,255,255,.85) 1px,transparent 1px),radial-gradient(circle at 3px 3px,oklch(.75 .06 290 / .5) 2.5px,transparent 2.5px);background-size:28px 28px;opacity:1;pointer-events:none}.sticker{position:relative;display:inline-flex;align-items:center;gap:8px;padding:12px 18px;border-radius:100px;font-family:Quicksand,sans-serif;font-weight:700;font-size:15px;background:var(--paper);border:2px solid var(--line);box-shadow:0 6px 14px -6px #7864b42e;cursor:grab;transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s;-webkit-user-select:none;user-select:none;z-index:1}.sticker:hover{transform:scale(1.06) rotate(-2deg);box-shadow:0 10px 22px -6px #7864b447;z-index:5}.sticker:active{cursor:grabbing;transform:scale(1.1)}.sticker .dot{width:12px;height:12px;border-radius:50%}.sticker .sticker-icon{width:20px;height:20px;object-fit:contain;flex-shrink:0}.sticker.v-lav{background:#efebff;background:oklch(.95 .04 295);border-color:var(--lavender);color:#38255f}.sticker.v-lav .dot{background:var(--lavender-deep)}.sticker.v-sky{background:#e2f5ff;background:oklch(.96 .04 230);border-color:var(--sky);color:#00384d;color:oklch(.32 .1 230)}.sticker.v-sky .dot{background:var(--sky-deep)}.sticker.v-blush{background:#ffeceb;background:oklch(.96 .03 20);border-color:var(--blush);color:#7a3336}.sticker.v-blush .dot{background:#e68485}.sticker.v-mint{background:#e1f8eb;border-color:var(--mint);color:#004a2e;color:oklch(.36 .1 160)}.sticker.v-mint .dot{background:#49af7e}.sticker.v-butter{background:#fdf6d8;border-color:var(--butter);color:#5c4c00;color:oklch(.42 .09 95)}.sticker.v-butter .dot{background:#bca341}.skill-cluster{display:flex;flex-wrap:wrap;gap:12px;position:relative;z-index:1}.cluster-label{font-family:Caprasimo,serif;font-size:22px;display:flex;align-items:center;gap:10px;margin:24px 0 14px;position:relative;z-index:1}.cluster-label:first-child{margin-top:0}.cluster-label .swatch{min-width:14px;width:14px;min-height:14px;height:14px;border-radius:50%;flex-shrink:0}.swatch-languages{background:var(--sky-deep)}.swatch-frameworks{background:#49af7e}.swatch-libraries{background:#40b1b7}.swatch-infrastructure{background:#3ea576}.swatch-tools{background:var(--lavender-deep)}.swatch-softskills{background:#e68485}.tools-row{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-top:24px}.tool-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:18px 12px;text-align:center;font-weight:600;font-size:13px;transition:transform .25s cubic-bezier(.2,.8,.2,1);cursor:default}.tool-card:hover{transform:translateY(-4px) rotate(-2deg)}.tool-card .glyph{font-size:28px;display:block;margin-bottom:6px}.tool-card .tool-icon{width:28px;height:28px;display:block;margin:0 auto 6px}.contact-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:40px;align-items:stretch}.contact-side{background:linear-gradient(160deg,var(--lavender) 0%,var(--sky) 100%);border-radius:var(--radius-lg);padding:36px;color:var(--ink);position:relative;overflow:hidden;box-shadow:var(--shadow-md)}.contact-side:before,.contact-side:after{content:"";position:absolute;border-radius:50%;background:#fff3}.contact-side:before{width:200px;height:200px;bottom:-60px;right:-60px}.contact-side:after{width:100px;height:100px;top:20px;right:40px}.contact-side h3{font-size:32px;color:var(--ink);margin-bottom:12px;position:relative}.contact-side p{font-size:15px;color:var(--ink-soft);margin:0 0 26px;position:relative}.contact-side .social{display:flex;flex-direction:column;gap:10px;position:relative}.contact-side .social a{display:flex;align-items:center;gap:12px;background:color-mix(in oklab,var(--paper) 55%,transparent);padding:12px 16px;border-radius:14px;text-decoration:none;color:var(--ink);font-weight:600;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:transform .2s,background .2s}.contact-side .social a:hover{transform:translate(6px);background:color-mix(in oklab,var(--paper) 80%,transparent)}.contact-side .social a .icon{width:26px;height:26px;display:grid;place-items:center;flex:0 0 auto}.contact-side .social a .icon img{width:22px;height:22px;object-fit:contain;display:block;filter:brightness(0);opacity:.82}[data-theme=midnight] .contact-side .social a .icon img{filter:brightness(0) invert(1);opacity:1}.contact-side .social .social-label{font-size:14px;font-weight:700;letter-spacing:.01em;color:var(--ink)}.contact-side .social .social-value{font-size:13px;font-weight:500;color:var(--ink-soft)}.contact-form{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);padding:36px;box-shadow:var(--shadow-sm)}.contact-form .field{margin-bottom:18px}.contact-form label{font-size:13px;font-weight:700;color:var(--ink-soft);display:block;margin-bottom:8px}.contact-form input,.contact-form textarea{width:100%;padding:14px 16px;border:1.5px solid var(--line);border-radius:14px;font-family:inherit;font-size:15px;background:var(--bg);transition:border .2s,box-shadow .2s,background .2s;color:var(--ink)}.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--lavender-deep);background:var(--paper);box-shadow:0 0 0 4px #b4a0dc2e}.contact-form textarea{resize:vertical;min-height:120px;font-family:inherit}.contact-form .err{color:#c53637;font-size:12px;margin-top:6px;font-weight:600}.contact-form .submit-row{display:flex;align-items:center;gap:14px;margin-top:10px}.contact-form .success{background:#dbf8da;color:#004b0f;color:oklch(.36 .12 145);padding:14px 18px;border-radius:14px;font-weight:600;font-size:14px;display:flex;align-items:center;gap:10px;animation:pagein .4s}.catbar{position:fixed;bottom:0;left:0;right:0;z-index:60;background:color-mix(in oklab,var(--paper) 85%,transparent);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);border-top:1px solid var(--line);box-shadow:var(--shadow-md)}.catbar-inner{max-width:1100px;margin:0 auto;display:flex;align-items:center;gap:16px;padding:6px 20px;min-height:44px}.catbar{transition:bottom .4s cubic-bezier(.2,.8,.2,1)}.catbar.collapsed{bottom:-44px}.catbar-toggle{position:absolute;left:50%;top:-25px;transform:translate(-50%);width:56px;height:26px;border:1px solid var(--line);border-bottom:none;background:color-mix(in oklab,var(--paper) 92%,transparent);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);border-radius:28px 28px 0 0;cursor:pointer;display:grid;place-items:center;color:var(--ink-soft);box-shadow:0 -4px 12px -6px rgba(var(--shadow-tint, 120 100 180),.18);transition:color .2s,background .2s;padding:0;z-index:65}.catbar-toggle:hover{color:var(--ink);background:var(--paper)}.catbar-toggle svg{width:18px;height:18px;transition:transform .4s cubic-bezier(.2,.8,.2,1)}.catbar-toggle.collapsed svg{transform:rotate(180deg)}.catbar .stage{width:0;height:0;position:relative;flex-shrink:0}.catbar .ground{position:absolute;bottom:4px;left:6px;right:6px;height:6px;border-radius:50%;background:radial-gradient(ellipse at center,rgba(120,100,180,.18),transparent 70%)}.catbar .info{flex:1;min-width:0;display:flex;align-items:center;gap:10px;text-align:left}.catbar .name-row{display:flex;align-items:baseline;gap:8px;flex-shrink:0}.catbar .name{font-family:Caprasimo,serif;font-size:16px;line-height:1}.catbar .mood{font-size:12px;color:var(--ink-faint);font-weight:600;line-height:1}.catbar .bars{display:flex;gap:12px;flex:1;max-width:320px;margin-left:8px}.catbar .bar-wrap{flex:1;min-width:0;display:flex;align-items:center;gap:6px}.catbar .bar-label{font-size:10px;font-weight:700;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.06em;flex-shrink:0}.catbar .bar-pct{font-size:11px;font-weight:700;color:var(--ink-soft);font-variant-numeric:tabular-nums;flex-shrink:0;min-width:30px;text-align:right}.catbar .bar{flex:1;height:5px;border-radius:5px;background:var(--bg-soft);overflow:hidden}.catbar .bar>i{display:block;height:100%;border-radius:6px;transition:width .5s cubic-bezier(.2,.8,.2,1)}.catbar .bar.hunger>i{background:linear-gradient(90deg,var(--blush),oklch(.78 .12 20))}.catbar .bar.fun>i{background:linear-gradient(90deg,var(--mint),oklch(.74 .12 160))}.catbar .actions{display:flex;gap:6px;flex-shrink:0}.catbar .actions button{border:1.5px solid var(--line);background:var(--paper);padding:5px 12px;border-radius:100px;font-family:inherit;font-weight:700;font-size:12px;line-height:1.4;cursor:pointer;color:var(--ink);display:inline-flex;align-items:center;gap:5px;transition:transform .2s,background .2s,border-color .2s}.catbar .actions button:hover{transform:translateY(-2px)}.catbar .actions .feed{background:#ffe7e6;background:oklch(.95 .04 20);border-color:var(--blush);color:#822b31}.catbar .actions .play{background:#d9f7e5;border-color:var(--mint);color:#005032;color:oklch(.38 .12 160)}.catbar .actions .pet{background:#efebff;background:oklch(.95 .04 295);border-color:var(--lavender);color:#4e3680}.cat-svg{position:absolute;bottom:0;left:50%;transform-origin:50% 92%;animation:catbreath 3.4s ease-in-out infinite}.cat-svg.happy{animation:cathop .6s cubic-bezier(.2,.8,.2,1) 3}.cat-svg.eating{animation:cateat .4s cubic-bezier(.2,.8,.2,1) 5}@keyframes catbreath{0%,to{transform:translate(-50%) scaleY(1) scaleX(1)}50%{transform:translate(-50%) scaleY(1.025) scaleX(.99)}}@keyframes cathop{0%,to{transform:translate(-50%) translateY(0) rotate(0)}50%{transform:translate(-50%) translateY(-10px) rotate(-3deg)}}@keyframes cateat{0%,to{transform:translate(-50%) translateY(0) rotate(0)}50%{transform:translate(-50%) translateY(-2px) rotate(2deg)}}.tail{transform-origin:0% 50%;animation:tailwag 1.6s ease-in-out infinite}.cat-svg.happy .tail{animation:tailwag .35s ease-in-out infinite}@keyframes tailwag{0%,to{transform:rotate(0)}50%{transform:rotate(-18deg)}}.eye{transform-origin:50% 50%;animation:blink 5s infinite}.eye.r{animation-delay:.05s}@keyframes blink{0%,92%,to{transform:scaleY(1)}94%,96%{transform:scaleY(.05)}}.particle{position:absolute;font-size:18px;pointer-events:none;animation:rise 1.2s ease-out forwards}@keyframes rise{0%{transform:translateY(0) scale(.5) rotate(0);opacity:1}to{transform:translateY(-60px) scale(1.2) rotate(20deg);opacity:0}}@media(max-width:880px){.hero{grid-template-columns:1fr;gap:30px}.collage{height:360px}.about-grid{grid-template-columns:1fr}.about-bio{position:static}.proj-grid{grid-template-columns:1fr}.beyond-grid{grid-template-columns:repeat(2,1fr)}.contact-grid{grid-template-columns:1fr}.tools-row{grid-template-columns:repeat(3,1fr)}.nav .links{display:none}.nav .links.mobile-open{display:flex;flex-direction:column;position:absolute;top:60px;right:12px;background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:8px;box-shadow:var(--shadow-md)}.nav .menu-toggle{display:inline-flex!important}.catbar-inner{padding:6px 14px;gap:10px}}@media(max-width:640px){.catbar .bars{display:none}}@media(max-width:480px){.catbar .name-row .mood{display:none}}.menu-toggle{display:none;align-items:center;justify-content:center;width:40px;height:40px;border:none;background:var(--bg-soft);color:var(--ink);border-radius:50%;cursor:pointer;font-size:18px}.nav-actions{display:flex;align-items:center;gap:6px}.gear-btn{position:relative;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:var(--paper);color:var(--ink-soft);cursor:pointer;display:grid;place-items:center;box-shadow:var(--shadow-sm);transition:transform .3s cubic-bezier(.2,.8,.2,1),color .2s}.gear-btn:hover{transform:rotate(30deg);color:var(--ink)}.gear-btn:active{transform:rotate(120deg) scale(.92)}.gear-btn svg{width:18px;height:18px}.settings-panel{position:fixed;right:24px;top:84px;z-index:75;width:300px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:22px 22px 20px;animation:popin .3s cubic-bezier(.2,.8,.2,1);transform-origin:top right}@keyframes popin{0%{opacity:0;transform:scale(.9) translateY(-6px)}to{opacity:1;transform:scale(1) translateY(0)}}.settings-panel h4{font-family:Caprasimo,serif;font-size:13px;font-weight:400;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 12px}.settings-panel h4:not(:first-child){margin-top:22px}.theme-row{display:flex;gap:8px;flex-wrap:nowrap}.theme-swatch{width:44px;height:44px;border-radius:50%;border:2px solid var(--line);cursor:pointer;position:relative;overflow:hidden;transition:transform .25s cubic-bezier(.2,.8,.2,1)}.theme-swatch:hover{transform:scale(1.1) rotate(-4deg)}.theme-swatch.active{border:2px solid var(--ink);transform:scale(1.05)}.theme-swatch.active:after{content:"✓";position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:18px;font-weight:700;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.35)}.theme-swatch .half-a,.theme-swatch .half-b{position:absolute;top:0;right:0;bottom:0;left:0}.theme-swatch .half-b{clip-path:polygon(100% 0,100% 100%,0 100%)}.theme-label{margin-top:10px;font-size:13px;font-weight:600;color:var(--ink-soft);text-align:center}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;background:var(--bg-soft);border-radius:14px}.toggle-row .meta{font-size:14px}.toggle-row .meta b{display:block;font-weight:700}.toggle-row .meta small{color:var(--ink-faint);font-size:12px}.switch{position:relative;width:44px;height:26px;border-radius:100px;background:var(--line);border:none;cursor:pointer;transition:background .25s;flex-shrink:0}.switch:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;background:#fff;border-radius:50%;box-shadow:0 2px 4px #00000026;transition:transform .25s cubic-bezier(.2,.8,.2,1)}.switch.on{background:linear-gradient(135deg,var(--lavender-deep),var(--sky-deep))}.switch.on:after{transform:translate(18px)}.settings-foot{display:flex;align-items:center;gap:8px;margin-top:18px;padding-top:14px;border-top:1px dashed var(--line);font-size:12px;color:var(--ink-faint)}.vol-row{display:flex;align-items:center;gap:10px;margin-top:10px;padding:8px 14px;background:var(--bg-soft);border-radius:14px;transition:opacity .25s}.vol-row.disabled{opacity:.4;pointer-events:none}.vol-ico{font-size:15px;width:20px;text-align:center;flex-shrink:0}.vol-pct{font-size:12px;font-weight:700;color:var(--ink-soft);font-variant-numeric:tabular-nums;min-width:22px;text-align:right}.vol-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:1;height:6px;border-radius:6px;background:linear-gradient(to right,var(--lavender-deep) 0%,var(--sky-deep) var(--pct),var(--line) var(--pct),var(--line) 100%);cursor:pointer;outline:none}.vol-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:#fff;border:2px solid var(--lavender-deep);box-shadow:var(--shadow-sm);cursor:grab;transition:transform .15s}.vol-slider::-webkit-slider-thumb:active{transform:scale(1.2);cursor:grabbing}.vol-slider::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#fff;border:2px solid var(--lavender-deep);box-shadow:var(--shadow-sm);cursor:grab}.settings-foot .pip{width:6px;height:6px;border-radius:50%;background:#45ba50}.cat-host{position:fixed;z-index:61;width:84px;height:80px;transition:left .1s linear,top .1s linear;will-change:transform,left,top}.cat-host.dragging{z-index:999;cursor:grabbing!important;transition:none}.cat-host.placed{position:absolute;z-index:55;transition:none}.cat-host.walking{transition:left .18s linear,top .3s ease}.cat-host.teleporting{transition:left .6s cubic-bezier(.5,1.6,.5,1),top .6s cubic-bezier(.5,1.6,.5,1)}.cat-host .scale-wrap{position:relative;width:100%;height:100%;transform-origin:50% 92%;cursor:grab}.cat-host.dragging .scale-wrap{transform:rotate(-12deg) scale(1.08);animation:dangle 1.2s ease-in-out infinite}.cat-host.placed .scale-wrap{cursor:grab}.cat-host.placed .ground{opacity:0}@keyframes dangle{0%,to{transform:rotate(-12deg) scale(1.08)}50%{transform:rotate(-8deg) scale(1.08)}}.cat-host .ground{position:absolute;bottom:4px;left:6px;right:6px;height:6px;border-radius:50%;background:radial-gradient(ellipse at center,color-mix(in oklab,var(--ink) 25%,transparent),transparent 70%);transition:opacity .3s}.cat-host.facing-left .cat-svg,.cat-host.facing-left.dragging .cat-svg{transform:translate(-50%) scaleX(-1)}.cat-host.walking .cat-svg{animation:walkbob .55s ease-in-out infinite}@keyframes walkbob{0%,to{translate:0 0}50%{translate:0 -2px}}.cat-host.walking .tail{animation:tailwag .45s ease-in-out infinite!important}.cat-host.walking .leg-fl,.cat-host.walking .leg-bl{animation:legA .55s ease-in-out infinite;transform-origin:50% 0%}.cat-host.walking .leg-fr,.cat-host.walking .leg-br{animation:legB .55s ease-in-out infinite;transform-origin:50% 0%}@keyframes legA{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes legB{0%,to{transform:translateY(-3px)}50%{transform:translateY(0)}}.cat-host.grooming .scale-wrap{animation:groom 1.4s ease-in-out infinite;transform-origin:50% 90%}@keyframes groom{0%,to{transform:rotate(0)}35%,65%{transform:rotate(-18deg)}}.cat-host.looking .scale-wrap{animation:lookaround 2.4s ease-in-out infinite}@keyframes lookaround{0%,to{transform:rotate(0)}25%{transform:rotate(-6deg)}75%{transform:rotate(6deg)}}.cat-host .pickup-hint{position:absolute;top:-28px;left:50%;transform:translate(-50%);background:var(--paper);border:1px solid var(--line);border-radius:100px;padding:3px 10px;font-size:11px;font-weight:700;color:var(--ink-soft);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .2s;box-shadow:var(--shadow-sm)}.cat-host.placed:hover .pickup-hint{opacity:1}.catbar .stage .cat-svg-static{display:none}.catbar .stage{visibility:hidden}@media(max-width:880px){.settings-panel{right:12px;width:calc(100vw - 24px);max-width:320px}}.proj-detail-back{margin-bottom:28px}.proj-detail-hero{display:grid;grid-template-columns:1fr 1.05fr;gap:48px;align-items:center;margin-bottom:56px}.proj-detail-kicker{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--sky-deep);margin-bottom:10px}.proj-detail-head h1{font-size:clamp(32px,4vw,48px);margin-bottom:14px;text-wrap:balance}.proj-detail-summary{color:var(--ink-soft);font-size:17px;max-width:60ch;margin:0 0 18px;text-wrap:pretty}.proj-gallery{margin:0;padding:14px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md)}.proj-detail-preview-img{height:320px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius)}.proj-detail-preview-img img{width:100%;height:100%;object-fit:contain;display:block}.proj-detail-preview-img .glyph{font-family:Caprasimo,serif;font-size:96px;color:#ffffffe0;text-shadow:0 8px 24px rgba(0,0,0,.1)}.proj-section+.proj-section{margin-top:40px}.proj-section:last-of-type{margin-bottom:24px}.proj-section-title{font-family:Caprasimo,serif;font-size:22px;font-weight:400;margin:0 0 16px;padding-bottom:10px;border-bottom:1px solid var(--line);color:var(--ink)}.proj-section p{color:var(--ink-soft);font-size:16px;line-height:1.75;margin:0 0 14px;text-wrap:pretty}.proj-section p:last-child{margin-bottom:0}.tech-grid{display:flex;flex-wrap:wrap;gap:8px}.tech-item{display:flex;flex-direction:column;gap:3px;padding:10px 16px;border-radius:8px;background:var(--bg-soft);border:1px solid var(--line);transition:transform .2s cubic-bezier(.2,.8,.2,1),box-shadow .2s}.tech-item:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}.tech-item-name{font-size:14px;font-weight:700;color:var(--ink);line-height:1.2}.tech-item-role{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);line-height:1.2}.collab-row{display:flex;flex-wrap:wrap;gap:10px}.collab-card{display:inline-flex;align-items:center;gap:12px;padding:10px 18px 10px 10px;border-radius:8px;background:var(--bg-soft);border:1px solid var(--line);text-decoration:none;transition:transform .2s cubic-bezier(.2,.8,.2,1),box-shadow .2s}.collab-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}.collab-avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--lavender-deep),var(--sky-deep));color:#fff;font-family:Caprasimo,serif;font-size:16px;flex:0 0 auto;overflow:hidden}.collab-avatar img{width:100%;height:100%;object-fit:cover;display:block}.collab-text{display:flex;flex-direction:column;gap:3px}.collab-name{font-size:14px;font-weight:700;color:var(--ink);line-height:1.2}.collab-role{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);line-height:1.2}.proj-detail-features{margin:0;padding-left:20px;color:var(--ink-soft);font-size:16px;line-height:1.7}.proj-detail-features li{margin-bottom:6px}.proj-detail-features li::marker{color:var(--lavender-deep)}.proj-detail-links-row{display:flex;flex-direction:column;gap:10px}.proj-detail-link{display:flex;align-items:center;gap:10px;width:100%;padding:14px 20px;border-radius:var(--radius-sm);font-size:14px;font-weight:700;text-decoration:none;transition:transform .2s cubic-bezier(.2,.8,.2,1)}.proj-detail-link-icon{width:18px;height:18px;flex:0 0 auto}.proj-detail-link-arrow{margin-left:auto}.proj-detail-link:hover{transform:translate(4px)}.proj-detail-link-gh{background:#efebff;background:oklch(.95 .04 295);border:1px solid var(--lavender);color:#4e3680}.proj-detail-link-live{background:#e2f5ff;background:oklch(.96 .04 230);border:1px solid var(--sky);color:#004f6a;color:oklch(.4 .12 230)}.proj-detail-nav{display:flex;align-items:center;justify-content:space-between;padding-top:24px;margin-top:12px;border-top:1px dashed var(--line)}.proj-detail-nav-btn{background:none;border:none;font-family:inherit;font-size:14px;font-weight:700;color:var(--lavender-deep);cursor:pointer;padding:8px 4px;transition:color .2s,transform .2s}.proj-detail-nav-btn:hover{color:var(--ink)}.proj-detail-nav-btn:first-child:hover{transform:translate(-3px)}.proj-detail-nav-btn:last-child:hover{transform:translate(3px)}.carousel{width:100%}.carousel-viewport{position:relative;width:100%;aspect-ratio:16 / 9;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.carousel-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;opacity:0;pointer-events:none;transition:opacity .5s ease}.carousel-img-active{opacity:1;pointer-events:auto}.carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:38px;height:38px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:50%;background:color-mix(in oklab,var(--paper) 82%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:var(--shadow-sm);color:var(--ink);font-family:inherit;font-size:16px;line-height:1;cursor:pointer;padding:0;opacity:0;transition:opacity .25s,transform .25s cubic-bezier(.2,.8,.2,1),background .25s}.carousel-arrow-prev{left:12px}.carousel-arrow-next{right:12px}.carousel:hover .carousel-arrow,.carousel-arrow:focus-visible{opacity:1}.carousel-arrow:hover{background:var(--paper)}.carousel-arrow-prev:hover{transform:translateY(-50%) translate(-2px) scale(1.08)}.carousel-arrow-next:hover{transform:translateY(-50%) translate(2px) scale(1.08)}.carousel-dots{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 0 4px}.carousel-count{position:absolute;right:2px;top:50%;transform:translateY(-50%);font-size:12px;font-weight:600;color:var(--ink-faint);font-variant-numeric:tabular-nums;letter-spacing:.02em}.carousel-dot{width:10px;height:10px;border-radius:50%;border:1.5px solid var(--lavender);background:transparent;cursor:pointer;padding:0;transition:background .25s,transform .25s}.carousel-dot:hover{transform:scale(1.25)}.carousel-dot-active{background:var(--lavender-deep);border-color:var(--lavender-deep);transform:scale(1.15)}.carousel-dot-active:hover{transform:scale(1.3)}@media(max-width:880px){.proj-detail-hero{grid-template-columns:1fr;gap:28px;margin-bottom:40px}}[data-theme=midnight] .sticker.v-lav{background:#2b243f;color:#dad0fc}[data-theme=midnight] .sticker.v-lav .dot{background:#dad0fc}[data-theme=midnight] .sticker.v-sky{background:#072d3d;color:#b0e0f8}[data-theme=midnight] .sticker.v-sky .dot{background:#b0e0f8}[data-theme=midnight] .sticker.v-blush{background:#3e1e1e;color:#fdc8c7}[data-theme=midnight] .sticker.v-blush .dot{background:#fdc8c7}[data-theme=midnight] .sticker.v-mint{background:#0e3020;color:#b6e4ca}[data-theme=midnight] .sticker.v-mint .dot{background:#b6e4ca}[data-theme=midnight] .sticker.v-butter{background:#362d0d;color:#eadeb2}[data-theme=midnight] .sticker.v-butter .dot{background:#eadeb2}[data-theme=midnight] .skill-section:before{background-image:radial-gradient(circle at 1px 1px,oklch(.65 .04 290 / .28) 1px,transparent 0);background-size:24px 24px;opacity:.6}[data-theme=midnight] .catbar .actions .feed{background:#3e1e1e;color:#fdc8c7}[data-theme=midnight] .catbar .actions .play{background:#0e3020;color:#b6e4ca}[data-theme=midnight] .catbar .actions .pet,[data-theme=midnight] .proj-detail-link-gh{background:#2b243f;color:#dad0fc}[data-theme=midnight] .proj-detail-link-live{background:#072d3d;color:#b0e0f8}[data-theme=midnight] .contact-form .success{background:#182f19;color:#c0e3c0}.chat-fab{position:fixed;right:20px;bottom:74px;width:60px;height:60px;border-radius:50%;border:3px solid var(--paper);cursor:pointer;font-size:24px;line-height:1;color:#fff;overflow:hidden;padding:0;background:linear-gradient(145deg,var(--lavender),var(--lavender-deep));box-shadow:0 0 0 2px var(--lavender-deep),0 8px 22px #00000038;z-index:80;display:flex;align-items:center;justify-content:center;transition:transform .2s cubic-bezier(.2,.8,.2,1),box-shadow .2s}.chat-fab-img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.7) translateY(-1%)}.chat-fab:hover{transform:translateY(-2px) scale(1.05);box-shadow:0 0 0 2px var(--lavender-deep),0 12px 28px #00000047}.chat-fab.open{transform:rotate(90deg)}.chat-panel{position:fixed;right:20px;bottom:142px;width:350px;max-width:calc(100vw - 40px);height:480px;max-height:calc(100vh - 180px);background:var(--paper);border:1px solid var(--lavender);border-radius:20px;box-shadow:0 18px 50px #00000040;z-index:80;display:flex;flex-direction:column;overflow:hidden;animation:chatPop .22s cubic-bezier(.2,.9,.3,1.2)}@keyframes chatPop{0%{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.chat-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:var(--lavender);color:var(--ink);flex:0 0 auto}.chat-head-title{position:relative;flex:1;display:flex;align-items:center;justify-content:center;min-height:40px}.chat-head-title>div{text-align:center}.chat-head-title strong{display:block;font-size:15px}.chat-avatar{position:absolute;left:8px;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;object-fit:cover}.chat-status{font-size:11px;color:var(--ink-soft)}.chat-close{background:transparent;border:none;cursor:pointer;font-size:15px;color:var(--ink-soft);padding:4px 6px;border-radius:8px}.chat-close:hover{background:#00000014}.chat-msgs{flex:1 1 auto;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px}.chat-bubble{max-width:82%;padding:9px 13px;border-radius:15px;font-size:14px;line-height:1.45;white-space:pre-wrap;word-wrap:break-word}.chat-bubble.bot{align-self:flex-start;background:var(--lavender);color:var(--ink);border-bottom-left-radius:5px}.chat-bubble.user{align-self:flex-end;background:var(--lavender-deep);color:#fff;border-bottom-right-radius:5px}.chat-typing{display:flex;gap:4px;align-items:center}.chat-typing span{width:6px;height:6px;border-radius:50%;background:var(--ink-faint);animation:chatDot 1s infinite ease-in-out}.chat-typing span:nth-child(2){animation-delay:.15s}.chat-typing span:nth-child(3){animation-delay:.3s}@keyframes chatDot{0%,60%,to{transform:translateY(0);opacity:.5}30%{transform:translateY(-4px);opacity:1}}.chat-input-row{flex:0 0 auto;display:flex;gap:8px;padding:10px;border-top:1px solid var(--lavender)}.chat-input{flex:1 1 auto;border:1px solid var(--lavender);border-radius:12px;padding:9px 12px;font-size:14px;font-family:inherit;color:var(--ink);background:var(--paper);outline:none}.chat-input:focus{border-color:var(--lavender-deep)}.chat-send{flex:0 0 auto;width:40px;border:none;border-radius:12px;background:var(--lavender-deep);color:#fff;cursor:pointer;font-size:15px}.chat-send:disabled{opacity:.45;cursor:default}@media(max-width:480px){.chat-panel{right:12px;bottom:132px}.chat-fab{right:14px}}
