:root{--paper:#f5f2eb;--ink:#1d2523;--muted:#777d76;--line:#d8d7ce;--blue:#335cdd;--coral:#e5684e;--yellow:#edc958;--green:#b5c99b;--mono:"DM Mono",monospace;--sans:"DM Sans",sans-serif;--display:"Manrope",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.wrap{width:min(1160px,calc(100% - 80px));margin:0 auto}.topbar{height:82px;display:flex;align-items:center;justify-content:space-between;padding:0 max(40px,calc((100% - 1160px)/2));border-bottom:1px solid rgba(29,37,35,.12);font-size:12px;letter-spacing:.06em}.wordmark{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:11px;letter-spacing:.14em;font-weight:500}.mark{display:grid;place-items:center;width:31px;height:31px;background:var(--blue);color:#fff;font-family:var(--display);font-size:18px;font-weight:800;letter-spacing:-.1em;border-radius:50% 50% 50% 8px}.topbar nav{display:flex;align-items:center;gap:34px}.topbar nav>a{color:#515852;transition:color .2s}.topbar nav>a:hover{color:var(--blue)}.topbar nav .nav-cta{color:var(--ink);font-weight:700}.nav-cta span{margin-left:5px;color:var(--coral)}.hero{min-height:644px;display:grid;grid-template-columns:1fr 1fr;align-items:center;position:relative;padding-top:20px;padding-bottom:65px}.hero-copy{padding:18px 0 30px}.eyebrow{font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:.14em;color:#686f67;margin:0 0 22px}.status-dot,.location-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#76a875;margin-right:8px;vertical-align:1px}.hero h1{font:700 clamp(38px,4.8vw,64px)/1.04 var(--display);letter-spacing:-.075em;margin:0;max-width:600px}.hero h1 em,.approach-section h2 em,.contact-section h2 em{font-style:normal;color:var(--blue)}.intro{color:#616862;line-height:1.8;max-width:430px;margin:25px 0 29px;font-size:15px}.hero-actions{display:flex;align-items:center;gap:20px}.button{display:inline-flex;align-items:center;justify-content:center;gap:26px;min-height:47px;padding:0 19px;font-size:12px;font-weight:700;letter-spacing:.015em;transition:transform .2s,background .2s}.button:hover{transform:translateY(-2px)}.button-dark{background:var(--ink);color:#fff}.button-dark:hover{background:var(--blue)}.button span{font-size:16px}.location{font-family:var(--mono);font-size:9px;color:#74796f;letter-spacing:.02em}.location-dot{width:6px;height:6px;background:var(--coral);margin-right:5px}.scroll-cue{position:absolute;bottom:28px;left:0;font:9px var(--mono);letter-spacing:.12em;color:#868a82;display:flex;align-items:center;gap:10px}.scroll-cue span{width:1px;height:22px;background:var(--coral)}
.hero-art{height:494px;position:relative;overflow:hidden;background:#dce4d2;border-radius:48% 48% 6px 6px;isolation:isolate}.hero-art:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 57% 38%,rgba(255,255,255,.45),transparent 34%),linear-gradient(148deg,transparent 45%,rgba(255,255,255,.2) 45.2%,transparent 45.6%);z-index:-1}.art-orbit{position:absolute;border:1px solid rgba(40,58,44,.18);border-radius:50%;transform:rotate(-28deg)}.orbit-one{width:520px;height:180px;top:155px;left:-45px}.orbit-two{width:480px;height:150px;top:230px;left:35px;transform:rotate(28deg)}.art-label{position:absolute;font:9px var(--mono);letter-spacing:.12em;color:#64705d}.label-top{top:36px;left:38px}.label-bottom{bottom:26px;right:34px}.art-window{position:absolute;background:#f7f5ed;box-shadow:0 18px 48px rgba(40,54,41,.13);border:1px solid rgba(30,40,33,.1)}.window-back{width:230px;height:174px;top:101px;left:58px;transform:rotate(-7deg);padding:0 14px}.window-top{height:26px;border-bottom:1px solid #e1e0d8;display:flex;align-items:center;gap:4px}.window-top span{width:5px;height:5px;border-radius:50%;background:#d1d2c8}.window-top i{font:7px var(--mono);color:#8a8e84;margin-left:auto;font-style:normal;letter-spacing:.07em}.stock-lines{padding-top:17px;display:grid;gap:7px}.stock-lines b{height:5px;background:#e4e3dc;width:74%;border-radius:4px}.stock-lines b:nth-child(2){width:51%}.stock-lines b:nth-child(3){width:65%}.stock-lines b:nth-child(4){width:43%}.stock-chart{position:absolute;bottom:15px;right:14px;left:14px;height:35px;display:flex;align-items:end;gap:5px;border-bottom:1px solid #d9dbd1}.stock-chart i{display:block;flex:1;background:#9db68f;height:33%;border-radius:2px 2px 0 0}.stock-chart i:nth-child(2){height:53%}.stock-chart i:nth-child(3){height:43%}.stock-chart i:nth-child(4){height:73%;background:var(--coral)}.stock-chart i:nth-child(5){height:56%}.stock-chart i:nth-child(6){height:88%;background:#739164}.stock-chart i:nth-child(7){height:68%}.window-front{width:250px;height:203px;top:203px;left:108px;transform:rotate(3deg);padding:0 15px}.flow-row{display:flex;align-items:center;height:50px;border-bottom:1px solid #ecebe5;gap:10px}.flow-icon{display:grid;place-items:center;width:25px;height:25px;background:#dce7d6;color:#526848;font-size:14px;border-radius:6px}.flow-icon.coral{background:#fae1d9;color:#bd503b}.flow-icon.yellow{background:#f7ebc7;color:#956d14}.flow-row span:nth-child(2){display:grid;gap:3px}.flow-row b{font-size:10px}.flow-row small{font-size:8px;color:#868b82}.flow-row strong{margin-left:auto;font:9px var(--mono);color:#a1a499}.phone-card{position:absolute;right:28px;top:136px;width:116px;height:224px;border:4px solid #25312d;border-radius:20px;background:#faf8f1;padding:15px 10px;box-shadow:0 20px 36px rgba(37,49,45,.2);transform:rotate(8deg);z-index:2}.phone-speaker{position:absolute;top:5px;left:43px;width:27px;height:4px;border-radius:5px;background:#25312d}.phone-date{display:block;text-align:center;font:6px var(--mono);letter-spacing:.1em;color:#899087;margin-top:2px}.phone-number{font:700 17px var(--display);letter-spacing:-.07em;margin-top:30px}.phone-number span{font-size:10px;color:#7c8477}.phone-caption{font:6px var(--mono);color:#858a80;letter-spacing:.08em;margin-top:3px}.phone-bars{height:52px;display:flex;align-items:end;gap:4px;border-bottom:1px solid #d9dad1;margin-top:14px}.phone-bars i{flex:1;background:#8fa57c;border-radius:3px 3px 0 0;height:39%}.phone-bars i:nth-child(2){height:65%}.phone-bars i:nth-child(3){height:51%;background:var(--coral)}.phone-bars i:nth-child(4){height:87%}.phone-bars i:nth-child(5){height:57%}.phone-bars i:nth-child(6){height:73%}.phone-bars i:nth-child(7){height:43%}.art-stamp{position:absolute;bottom:72px;left:45px;background:var(--blue);color:white;width:79px;height:79px;border-radius:50%;display:grid;place-content:center;text-align:center;font:8px/1.45 var(--mono);letter-spacing:.09em;transform:rotate(-12deg);z-index:3}.art-stamp span{font-size:12px}.signal-band{background:#e9e7dc;border-top:1px solid rgba(29,37,35,.08);border-bottom:1px solid rgba(29,37,35,.08)}.signal-inner{height:75px;display:grid;grid-template-columns:145px 1fr 70px;align-items:center;gap:16px}.signal-inner>span{font:9px var(--mono);letter-spacing:.1em;color:#797e75}.signal-inner p{font:600 12px var(--display);letter-spacing:.01em;margin:0}.signal-inner p b{color:var(--coral);padding:0 14px;font-size:11px}.signal-index{text-align:right}
.work-section{padding-top:113px;padding-bottom:122px}.section-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:55px}.section-head .eyebrow{margin-bottom:17px}.section-head h2,.approach-section h2,.contact-section h2{font:700 clamp(40px,5vw,58px)/1.08 var(--display);letter-spacing:-.07em;margin:0}.section-note{max-width:270px;color:#6f756d;font-size:13px;line-height:1.75;margin:0 0 7px}.project{display:grid;grid-template-columns:1.08fr .72fr;gap:92px;align-items:center;padding:0 0 83px;border-bottom:1px solid var(--line);margin-bottom:83px}.project:last-child{margin:0;padding:0;border:0}.project-reverse{grid-template-columns:.72fr 1.08fr}.project-reverse .project-visual{order:2}.project-reverse .project-copy{order:1;padding-left:35px}.project-visual{height:392px;position:relative;overflow:hidden;background:#e3e8db}.visual-tag{position:absolute;top:20px;left:23px;font:8px var(--mono);letter-spacing:.12em;color:#6e7869}.visual-foot{position:absolute;bottom:18px;left:22px;font:9px var(--mono);color:#747b70}.inventory-screen{position:absolute;inset:59px 32px 50px;background:#f8f7f1;border:1px solid #d9ded2;box-shadow:0 16px 30px rgba(43,58,42,.1);padding:19px 20px}.screen-head{display:flex;justify-content:space-between;align-items:center;font:600 12px var(--display)}.screen-pill{font:7px var(--mono);color:#727b6e;border:1px solid #d9ddd4;padding:7px 9px}.screen-metrics{display:grid;grid-template-columns:1fr 1fr;margin-top:22px}.screen-metrics>div{display:grid;gap:5px}.screen-metrics small,.screen-table-head{font:7px var(--mono);letter-spacing:.08em;color:#81877d}.screen-metrics b{font-size:10px}.screen-metrics b span{color:var(--blue)}.screen-divider{height:1px;background:#e2e4dc;margin:17px 0 14px}.screen-table-head{display:flex;justify-content:space-between;margin-bottom:4px}.screen-table-head span:last-child{color:var(--blue)}.receipt-row{height:35px;border-bottom:1px solid #eceee7;display:flex;align-items:center;gap:9px;font-size:9px}.receipt-row small{margin-left:auto;color:#899084;font-size:8px}.receipt-row b{font:8px var(--mono);color:#9ba093}.receipt-dot{width:7px;height:7px;border-radius:50%;background:#8ca27d}.coral-bg{background:var(--coral)}.yellow-bg{background:#d7ae3b}.project-copy{padding:8px 0}.project-number{font:9px var(--mono);letter-spacing:.1em;color:#82877d;margin:0 0 21px}.project-number span{color:var(--coral);padding:0 3px}.project-copy h3{font:700 clamp(34px,4vw,46px)/1.08 var(--display);letter-spacing:-.065em;margin:0 0 18px}.project-copy>p:not(.project-number){font-size:13px;line-height:1.85;color:#687068;margin:0 0 19px;max-width:390px}.project-points{padding:0;list-style:none;display:grid;gap:10px;margin:0 0 24px}.project-points li{font-size:11px;color:#414942;display:flex;gap:9px;align-items:baseline}.project-points li:before{content:"↗";color:var(--coral);font-size:11px}.chips{display:flex;flex-wrap:wrap;gap:7px}.chips span{border:1px solid #d6d7ce;border-radius:20px;padding:7px 10px;font:8px var(--mono);color:#697066;letter-spacing:.02em}.mobile-visual{background:#e8ded0}.mobile-abstract{position:absolute;inset:52px 0 39px;overflow:hidden;background:radial-gradient(ellipse at 57% 42%,#f6efe1 0,#eee5d7 54%,transparent 55%)}.mobile-device{position:absolute;width:158px;height:278px;top:10px;left:calc(50% - 79px);background:#f8f5ec;border:5px solid #26302c;border-radius:25px;transform:rotate(-7deg);box-shadow:0 15px 29px rgba(51,46,39,.19);padding:16px 12px;z-index:2}.device-camera{position:absolute;width:40px;height:7px;background:#26302c;border-radius:0 0 7px 7px;top:0;left:54px}.device-top{font:7px var(--mono);display:flex;justify-content:space-between;margin-top:2px}.device-greeting{font:500 15px/1.15 var(--display);letter-spacing:-.04em;margin-top:20px}.device-greeting strong{color:#426d49}.device-total{background:#e5eadc;border-radius:9px;padding:12px;margin-top:12px;display:grid;gap:7px}.device-total small{font:6px var(--mono);color:#788372;letter-spacing:.08em}.device-total b{font:700 16px var(--display);letter-spacing:-.06em}.device-total span{font-size:7px;color:#788372}.device-list{display:grid;margin-top:15px}.device-list span{display:flex;align-items:center;border-bottom:1px solid #e5e2d9;padding:9px 0;font-size:7px}.device-list i{width:16px;height:16px;background:#f3d6c9;border-radius:5px;margin-right:8px}.device-list b{margin-left:auto;color:#73796e}.device-tab{position:absolute;bottom:10px;left:14px;right:14px;display:flex;justify-content:space-around;color:#899086;font-size:12px}.device-tab .active{background:var(--blue);color:white;border-radius:50%;width:22px;height:22px;display:grid;place-items:center;margin-top:-6px}.mobile-note{position:absolute;width:130px;height:88px;background:#fbf7ee;padding:14px;box-shadow:0 8px 20px rgba(61,54,46,.1);display:grid;z-index:3}.mobile-note span{font:7px var(--mono);letter-spacing:.08em;color:#86857a}.mobile-note b{font:600 12px/1.2 var(--display);letter-spacing:-.04em}.mobile-note i{position:absolute;right:12px;bottom:12px;color:var(--coral);font-style:normal}.note-a{top:23px;left:20px;transform:rotate(-7deg)}.note-b{bottom:24px;right:18px;transform:rotate(5deg);background:#d9e3d2}.mobile-scribble{position:absolute;bottom:22px;left:25px;font:8px/1.5 var(--mono);letter-spacing:.09em;color:#8b7767;transform:rotate(-10deg)}.project-reverse .visual-foot{left:auto;right:20px;text-align:right}
.approach-section{background:#252d29;color:#f5f2eb;padding:92px 0 104px}.approach-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:90px}.approach-section .eyebrow{color:#b0b7ab}.approach-section h2{font-size:49px}.approach-section h2 em{color:#9cb785}.approach-list{padding-top:12px}.approach-item{display:grid;grid-template-columns:37px 1fr 20px;gap:15px;border-bottom:1px solid rgba(245,242,235,.17);padding:18px 0 21px}.approach-item>span{font:9px var(--mono);color:#9cb785;padding-top:3px}.approach-item h3{font:600 15px var(--display);margin:0 0 7px;letter-spacing:-.02em}.approach-item p{font-size:11px;line-height:1.7;color:#aeb5ab;margin:0;max-width:420px}.approach-item>b{color:#9cb785;font-weight:400}.contact-section{padding:99px 0 90px}.contact-top{display:flex;justify-content:space-between;align-items:center}.contact-top .eyebrow{margin:0}.contact-star{color:var(--coral);font-size:25px}.contact-section h2{font-size:clamp(46px,6vw,68px);margin:35px 0}.contact-bottom{display:flex;align-items:end;justify-content:space-between;border-top:1px solid var(--line);padding-top:23px}.contact-bottom p{max-width:360px;color:#6f756d;font-size:13px;line-height:1.8;margin:0}.button-light{background:var(--blue);color:#fff}.button-light:hover{background:var(--ink)}.footer{min-height:77px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr 1fr auto;align-items:center;gap:18px}.footer .wordmark .mark{width:25px;height:25px;font-size:15px}.footer p,.footer>a:not(.wordmark),.footer small{font:8px var(--mono);letter-spacing:.07em;color:#858a80}.footer p{justify-self:center}.footer>a:not(.wordmark){text-align:right}.footer small{text-align:right}
@media(max-width:900px){.wrap{width:min(100% - 48px,700px)}.topbar{padding:0 24px}.hero{grid-template-columns:1fr 0.9fr;gap:15px;min-height:570px}.hero-art{height:420px}.hero h1{font-size:clamp(43px,7vw,61px)}.phone-card{right:17px;top:126px;transform:scale(.88) rotate(8deg);transform-origin:top right}.window-back{left:18px}.window-front{left:65px}.art-stamp{left:22px;bottom:52px}.hero-actions{align-items:flex-start;flex-direction:column;gap:15px}.project{gap:42px;grid-template-columns:1fr .8fr}.project-reverse{grid-template-columns:.8fr 1fr}.project-reverse .project-copy{padding-left:0}.project-visual{height:340px}.approach-grid{gap:40px}.signal-inner{grid-template-columns:120px 1fr 58px}.signal-inner p{font-size:10px}.signal-inner p b{padding:0 7px}}
@media(max-width:620px){.wrap{width:calc(100% - 40px)}.topbar{height:68px;padding:0 20px}.topbar nav{gap:15px}.topbar nav>a{font-size:10px}.topbar nav>a:first-child{display:none}.wordmark{font-size:9px}.mark{width:27px;height:27px;font-size:16px}.hero{display:flex;flex-direction:column;align-items:stretch;padding-top:56px;padding-bottom:56px;gap:39px}.hero-copy{padding:0}.hero h1{font-size:clamp(47px,12vw,65px)}.intro{font-size:13px;line-height:1.75;margin:20px 0}.hero-actions{flex-direction:row;align-items:center;flex-wrap:wrap}.button{min-height:44px;gap:16px;padding:0 15px}.location{font-size:8px}.hero-art{height:370px;border-radius:44% 44% 4px 4px}.window-back{top:68px;left:8%;width:58%;height:150px}.window-front{top:174px;left:19%;width:62%;height:184px}.phone-card{width:108px;height:198px;right:5%;top:105px;transform:scale(.86) rotate(8deg)}.phone-number{font-size:14px;margin-top:24px}.phone-bars{height:42px}.art-stamp{width:65px;height:65px;left:7%;bottom:43px;font-size:7px}.label-top{left:22px;top:28px;font-size:7px}.label-bottom{right:22px;bottom:18px;font-size:7px}.scroll-cue{bottom:20px}.signal-inner{height:auto;min-height:82px;grid-template-columns:1fr auto;padding-top:13px;padding-bottom:13px;gap:7px}.signal-inner>span{font-size:8px}.signal-inner .signal-index{display:none}.signal-inner p{grid-column:1/-1;font-size:11px;line-height:1.7}.signal-inner p b{padding:0 7px}.work-section{padding-top:73px;padding-bottom:79px}.section-head{display:block;margin-bottom:38px}.section-head h2,.approach-section h2{font-size:43px}.section-note{margin-top:17px;font-size:12px}.project,.project-reverse{display:flex;flex-direction:column;align-items:stretch;gap:27px;margin-bottom:53px;padding-bottom:52px}.project-reverse .project-visual,.project-reverse .project-copy{order:initial}.project-visual{height:326px;width:100%}.inventory-screen{inset:58px 19px 48px;padding:15px}.screen-head{font-size:10px}.screen-metrics{margin-top:17px}.receipt-row{gap:6px;font-size:8px}.receipt-row small{font-size:7px}.project-copy h3{font-size:39px}.project-copy>p:not(.project-number){font-size:12px}.project-points li{font-size:10px}.mobile-device{transform:scale(.88) rotate(-7deg);transform-origin:top center;top:1px}.note-a{left:5px;transform:scale(.8) rotate(-7deg);transform-origin:top left}.note-b{right:4px;transform:scale(.8) rotate(5deg);transform-origin:bottom right}.mobile-scribble{font-size:7px;left:12px}.project-reverse .visual-foot{max-width:160px}.approach-section{padding:71px 0 75px}.approach-grid{display:block}.approach-section h2{font-size:43px}.approach-list{padding-top:30px}.approach-item{grid-template-columns:26px 1fr 18px;gap:11px}.approach-item h3{font-size:13px}.approach-item p{font-size:10px}.contact-section{padding:74px 0 66px}.contact-section h2{font-size:49px;margin:31px 0}.contact-bottom{display:block}.contact-bottom p{font-size:12px;margin-bottom:20px}.footer{grid-template-columns:1fr 1fr;gap:12px;padding:17px 0}.footer p{justify-self:end;text-align:right}.footer>a:not(.wordmark){text-align:left}.footer small{text-align:right}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

/* Portfolio Q&A assistant */
[hidden]{display:none!important}
.portfolio-chat{position:fixed;z-index:1000;right:max(20px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));font-family:var(--sans)}
.chat-toggle{display:flex;align-items:center;justify-content:center;gap:10px;min-height:54px;padding:0 18px;border:0;border-radius:30px;background:var(--ink);color:#fff;box-shadow:0 10px 28px rgba(29,37,35,.22);font:600 13px var(--sans);cursor:pointer;transition:background .2s,transform .2s}
.chat-toggle:hover{background:var(--blue);transform:translateY(-2px)}
.chat-toggle:focus-visible,.chat-close:focus-visible,.chat-suggestions button:focus-visible,.chat-send:focus-visible,.chat-form input:focus-visible{outline:3px solid #edc958;outline-offset:3px}
.chat-toggle-icon{width:20px;height:20px;flex:none}
.chat-panel{position:absolute;right:0;bottom:70px;display:flex;flex-direction:column;width:min(380px,calc(100vw - 32px));height:min(560px,calc(100dvh - 112px));min-height:390px;overflow:hidden;border:1px solid rgba(29,37,35,.12);border-radius:18px;background:#fbfaf6;box-shadow:0 20px 65px rgba(29,37,35,.2);animation:chat-rise .18s ease-out}
.chat-panel[hidden]{display:none!important}
.chat-header{display:flex;align-items:center;gap:11px;padding:16px 17px;background:var(--ink);color:#fff}
.chat-avatar{display:grid;place-items:center;width:37px;height:37px;flex:none;border-radius:50% 50% 50% 8px;background:var(--blue);font:800 20px var(--display);letter-spacing:-.1em}
.chat-heading{min-width:0;flex:1}.chat-heading h2{margin:0 0 4px;font:700 14px var(--display);letter-spacing:-.02em}.chat-heading p{margin:0;color:#c3c9bd;font:10px var(--mono);letter-spacing:.025em}
.chat-online-dot{display:inline-block;width:6px;height:6px;margin-right:6px;border-radius:50%;background:#a9c58f;vertical-align:1px}
.chat-close{display:grid;place-items:center;width:34px;height:34px;border:0;border-radius:50%;background:transparent;color:#e9eee5;font:300 27px/1 var(--sans);cursor:pointer}.chat-close:hover{background:rgba(255,255,255,.12)}
.chat-content{display:flex;flex:1;min-height:0;flex-direction:column;padding:15px 14px 10px}
.chat-messages{display:flex;flex:1;min-height:0;flex-direction:column;gap:10px;overflow-y:auto;padding:0 2px 12px;overscroll-behavior:contain;scrollbar-color:#c8cdc2 transparent;scrollbar-width:thin}
.chat-message{max-width:88%;padding:10px 12px;border-radius:13px;font-size:12px;line-height:1.65;overflow-wrap:anywhere;animation:chat-in .16s ease-out}
.chat-message p{margin:0}.assistant-message{align-self:flex-start;border:1px solid #e5e5dc;border-bottom-left-radius:4px;background:#fff;color:#303934}.user-message{align-self:flex-end;border-bottom-right-radius:4px;background:var(--blue);color:#fff}
.chat-message a{color:var(--blue);font-weight:700;text-decoration:underline;text-underline-offset:2px}.user-message a{color:#fff}
.chat-suggestions{display:flex;flex-wrap:wrap;gap:7px;padding:7px 0 12px}
.chat-suggestions button{padding:7px 10px;border:1px solid #d7d9d0;border-radius:18px;background:#f7f5ee;color:#4f5a51;font:10px var(--mono);cursor:pointer;transition:border-color .18s,color .18s,background .18s}
.chat-suggestions button:hover{border-color:var(--blue);background:#eef1ff;color:#2848b5}
.chat-form{display:flex;align-items:center;gap:8px;padding:7px 7px 7px 13px;border:1px solid #d9dcd3;border-radius:13px;background:#fff}
.chat-form:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px rgba(51,92,221,.11)}
.chat-form input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--ink);font:12px var(--sans)}.chat-form input::placeholder{color:#8a9087}
.chat-send{display:grid;place-items:center;width:34px;height:34px;flex:none;border:0;border-radius:9px;background:var(--blue);color:#fff;font:600 22px var(--sans);cursor:pointer;transition:background .2s}.chat-send:hover{background:var(--ink)}
.chat-footnote{margin:8px 0 0;text-align:center;color:#81877d;font:9px var(--mono)}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@keyframes chat-rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes chat-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:620px){.portfolio-chat{right:max(14px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom))}.chat-panel{right:0;bottom:66px;width:min(380px,calc(100vw - 28px));height:min(560px,calc(100dvh - 98px));min-height:min(390px,calc(100dvh - 98px))}.chat-toggle{min-height:50px;padding:0 15px;font-size:12px}.chat-content{padding:12px 11px 9px}.chat-message{font-size:12px}}
@media(prefers-reduced-motion:reduce){.chat-panel,.chat-message{animation:none}}
/* Personal portfolio refinements */
:root{--paper:#f7f5f0;--blue:#234f45;--coral:#c67a54;--ink:#202825;--display:"DM Sans",sans-serif}
.hero h1{letter-spacing:-.065em}.hero-art{border-radius:48% 48% 6px 6px;background:#dfe5d8}.mark{background:var(--blue)}
.project-visual{background:#e5e8df}.approach-section{background:#202825}.about-note{max-width:390px;color:#b7beb5;line-height:1.8;font-size:13px;margin:22px 0 0}
.approach-section h2 em,.contact-section h2 em{color:#c67a54}.button-dark:hover,.chat-toggle:hover{background:#315e52}.button-light{background:#234f45}
@media(max-width:620px){.about-note{font-size:12px;margin-top:16px}}
.security-visual{background:#202825;color:#eef0e8}.security-visual .visual-tag,.security-visual .visual-foot{color:#c1c9bd}.terminal-window{position:absolute;inset:76px 28px 56px;background:#171d1b;border:1px solid #414a43;padding:22px 20px;box-shadow:0 20px 50px rgba(0,0,0,.18)}.terminal-head{display:flex;align-items:center;gap:5px;padding-bottom:14px;border-bottom:1px solid #343d36;color:#c67a54;font-size:10px}.terminal-head b{margin-left:auto;color:#c2c8bc;font:9px var(--mono)}.terminal-window p{font:9px/1.6 var(--mono);color:#d7ddd1;margin:16px 0 0;white-space:nowrap}.terminal-window p i{color:#93a68b;font-style:normal}.terminal-window p.alert{color:#e8a178}.terminal-window p.alert i{color:#e8a178}.terminal-rule{display:flex;justify-content:space-between;border-top:1px solid #343d36;margin-top:24px;padding-top:13px;font:8px var(--mono);color:#aeb8a8}.terminal-rule span{color:#c67a54}
@media(max-width:620px){.terminal-window{inset:68px 15px 50px;padding:17px 12px}.terminal-window p{font-size:7px}.terminal-head b{font-size:7px}.terminal-rule{font-size:7px}}
