@font-face{font-family:Archivo Black;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/archivo-black-400.ttf)format("truetype")}@font-face{font-family:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/dm-sans-400.ttf)format("truetype")}@font-face{font-family:DM Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/dm-sans-600.ttf)format("truetype")}@font-face{font-family:DM Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/dm-sans-700.ttf)format("truetype")}:root{--viewport-gutter:clamp(.75rem, 2vw, 1.5rem);--viewport-bottom:max(1rem, env(safe-area-inset-bottom));color:#17223b;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;cursor:url(/images/default.png) 2 2,default;background:#87ceeb;font-family:DM Sans,system-ui,sans-serif}*,:before,:after{box-sizing:border-box}button,input,textarea,select,a{font:inherit}button{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation}html,body,#root{width:100%;height:100%;margin:0;overflow:hidden}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;font-size:16px}body{min-width:320px;min-height:100%}canvas{cursor:inherit}input,textarea{cursor:url(/images/text.png) 14 16,text!important}@media (width<=40em){input,textarea{font-size:max(1rem,16px)}}button:not(:disabled),a,[role=button]{cursor:url(/images/pointer.png) 4 2,pointer!important}.welcome h1,.welcome>p,.section-card h2,.section-card>p,.portfolio-menu h2,.portfolio-menu>p{cursor:url(/images/text.png) 14 16,text}button:focus-visible,a:focus-visible{outline-offset:3px;outline:4px solid #fff}.app-shell{--sky-top:#4e9fda;--sky-mid:#82d0ed;--sky-bottom:#d7f4ff;background:linear-gradient(180deg, var(--sky-top) 0%, var(--sky-mid) 52%, var(--sky-bottom) 100%);color:#17223b;width:100vw;height:100svh;min-height:100dvh;position:relative;overflow:hidden}.app-shell canvas{display:block}@media (prefers-reduced-motion:reduce){*,:before,:after{animation-duration:.01ms!important}}.avatar-speech-bubble{--avatar-bubble-background:#fffffe;--avatar-bubble-text:#17223b;--avatar-bubble-outline:#17223b;--avatar-bubble-button-start:#ffc0d7;--avatar-bubble-button-end:#ff91ba;border:4px solid var(--avatar-bubble-outline);background:var(--avatar-bubble-background);width:max-content;max-width:220px;color:var(--avatar-bubble-text);text-align:center;white-space:normal;border-radius:12px;padding:10px 12px;font:800 14px/1.35 DM Sans,sans-serif;position:relative;box-shadow:5px 5px #17223b}.avatar-speech-bubble:after{border-right:2px solid var(--avatar-bubble-outline);border-bottom:2px solid var(--avatar-bubble-outline);background:var(--avatar-bubble-background);content:"";width:20px;height:20px;position:absolute;bottom:-13px;left:50%;transform:translate(-50%)rotate(45deg)}.avatar-speech-bubble p{z-index:1;margin:0 0 9px;position:relative}.avatar-speech-bubble button{z-index:1;border:2px solid var(--avatar-bubble-outline);background:linear-gradient(135deg, var(--avatar-bubble-button-start), var(--avatar-bubble-button-end));width:100%;color:var(--avatar-bubble-text);box-shadow:0 2px 0 var(--avatar-bubble-outline);border-radius:8px;padding:7px 9px;font:900 13px DM Sans,sans-serif;position:relative}@media (width<=640px){body.portfolio-chat-open .avatar-speech-bubble{visibility:hidden;pointer-events:none}}.speech,.world-label{color:#17223b;white-space:nowrap;pointer-events:none;background:#fff;border:3px solid #17223b;font-family:Archivo Black,sans-serif;box-shadow:5px 5px #17223b}.world-label{pointer-events:auto}.speech{border-radius:14px 14px 14px 2px;padding:10px 14px;font-size:18px}.world-label{text-align:center;border-radius:7px;padding:8px 11px;font-size:13px}.world-label span{letter-spacing:.15em;text-transform:uppercase;opacity:.6;margin-bottom:3px;font:700 9px DM Sans,sans-serif;display:block}.hud{z-index:10;pointer-events:none;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;padding:6px 16px;display:grid;position:fixed;top:0;left:0;right:0}.brand-area{pointer-events:auto;justify-self:start;width:fit-content;position:relative}.brand{align-items:left;aspect-ratio:1;pointer-events:auto;background:#ffd8e6;border:3px solid #17223b;border-radius:70%;justify-content:center;width:clamp(50px,7vw,76px);padding:0;display:inline-flex;overflow:hidden;box-shadow:2px 3px #17223b4d}.brand img{object-fit:contain;object-position:center;width:110%;max-width:none;height:100%;display:block;transform:translate(-1%)}.brand-welcome{background:#fffdf6;border:3px solid #17223b;border-radius:14px;width:210px;padding:13px;animation:.2s ease-out brand-welcome-pop;position:absolute;top:8px;left:calc(100% + 14px);box-shadow:5px 5px #17223b}.brand-welcome:before{content:"";background:#fffdf6;border-top:3px solid #17223b;border-left:3px solid #17223b;width:16px;height:16px;position:absolute;top:24px;left:-10px;transform:rotate(-45deg)}.brand-welcome p{margin:0 0 10px;font-size:.82rem;font-weight:800;line-height:1.35}.brand-welcome button{color:#17223b;background:linear-gradient(135deg,#d8f3ce,#aaf08c);border:2px solid #17223b;border-radius:9px;width:100%;padding:7px 9px;font:900 .78rem DM Sans,sans-serif;box-shadow:0 3px #17223b}@keyframes brand-welcome-pop{0%{opacity:0;transform:translateY(-7px)scale(.94)}}.menu-button,.hud-actions button{color:#17223b;pointer-events:auto;background:#ffb3d2;border:3px solid #17223b;border-radius:12px;justify-self:end;padding:9px 15px;font-weight:800;box-shadow:0 5px #17223b}.hud-actions .menu-button{z-index:13;right:var(--viewport-gutter);bottom:var(--viewport-bottom);box-sizing:border-box;background:linear-gradient(135deg,#ffb3d2 0%,#ff8fba 100%);justify-content:center;width:100px;position:fixed}.progress{pointer-events:auto;gap:6px;display:flex}.progress button{width:22px;min-width:0;height:9px;box-shadow:none;background:#dbe8ff;border:2px solid #17223b;border-radius:99px;padding:0}.progress button.done{background:#ffd84d}.progress button:nth-child(2).done{background:#ff9fca}.progress button:nth-child(3).done{background:#8ee1ff}.progress button:nth-child(4).done{background:#aaf08c}.progress button:nth-child(5).done{background:#c3a7ff}.progress button:nth-child(6).done{background:#ffb778}.progress button:hover,.progress button:focus-visible{background:#fff8c9;outline:none;transform:scale(1.18)}.controls{z-index:6;white-space:nowrap;background:#ffffffdb;border:2px solid #17223b;border-radius:10px;padding:9px 13px;font-size:.75rem;position:fixed;bottom:18px;left:50%;transform:translate(-50%);box-shadow:0 4px #17223b}.controls b{margin-left:8px}.controls b:first-child{margin-left:0}@media (width<=640px){.hud{grid-template-columns:1fr auto;padding:5px 10px}.brand img{width:100%}.brand{width:clamp(48px,14vw,62px)}.brand-welcome{display:none}.progress{top:calc(62px + env(safe-area-inset-top));gap:5px;display:flex;position:fixed;left:50%;transform:translate(-50%)}.progress button{width:18px;height:8px}.hud-actions .menu-button{right:max(12px, env(safe-area-inset-right));top:max(10px, env(safe-area-inset-top));border-width:2px;border-radius:8px;width:72px;min-height:28px;padding:4px 5px;font-size:.56rem;bottom:auto;box-shadow:0 3px #17223b}.controls{bottom:10px}}.hud-actions{pointer-events:auto;justify-content:flex-end;align-items:center;display:flex}.quick-actions{z-index:12;top:clamp(10rem,31vh,22rem);left:var(--viewport-gutter);gap:10px;display:grid;position:fixed}.hud-utility,.music-toggle,.rating-toggle{color:#17223b;letter-spacing:.01em;border:3px solid #17223b;border-radius:12px;justify-content:center;align-items:center;gap:7px;min-width:98px;height:42px;padding:0 10px;font:800 .8rem/1 DM Sans,sans-serif;transition:transform .15s,box-shadow .15s,background .15s,color .15s;display:inline-flex;box-shadow:0 5px #17223b}.music-toggle span{font-size:inherit;line-height:inherit}.control-icon{flex:none;width:18px;height:18px}.hud .hud-utility--skip{background:linear-gradient(135deg,#c9f2ff,#76d6ff);border-radius:12px;min-width:98px;padding:0 10px;box-shadow:0 5px #17223b,inset 0 0 0 2px #ffffff59}.hud-utility--skip .control-icon{width:18px;height:18px}.hud .hud-utility--skip:hover{background:linear-gradient(135deg,#e2f9ff,#a5e6ff)}.hud .hud-utility--popups{z-index:12;bottom:var(--viewport-bottom);left:calc(var(--viewport-gutter) + 6.625rem);background:linear-gradient(135deg,#d4ffdf,#8ff3ae);position:fixed;box-shadow:0 5px #17223b,inset 0 0 0 2px #ffffff59}.music-toggle{z-index:12;left:var(--viewport-gutter);bottom:var(--viewport-bottom);background:linear-gradient(135deg,#ffd9e9,#ff9fca);position:fixed;box-shadow:0 5px #17223b,inset 0 0 0 2px #ffffff59}.rating-toggle{z-index:12;top:calc(clamp(10rem,31vh,22rem) + 3.25rem);left:var(--viewport-gutter);background:linear-gradient(135deg,#fff8b8,#ffe65b);position:fixed;box-shadow:0 5px #17223b,inset 0 0 0 2px #ffffff59}.hud-utility.is-off,.music-toggle.is-off{color:#a4aab3;background:linear-gradient(135deg,#f0f1f4,#d6d9df);box-shadow:0 5px #89919c}.hud-utility:hover,.music-toggle:hover,.rating-toggle:hover{transform:translate(-1px,-2px);box-shadow:5px 7px #17223b,inset 0 0 0 2px #ffffff59}.hud-utility:active,.music-toggle:active,.rating-toggle:active{transform:translateY(3px);box-shadow:0 2px #17223b,inset 0 0 0 2px #ffffff59}@media (width<=640px){.quick-actions{gap:8px;top:auto;bottom:66px;left:6px}.hud-utility,.music-toggle,.rating-toggle{border-width:2px;border-radius:9px;min-width:80px;height:34px;padding:0 6px;font-size:.68rem;box-shadow:0 4px #17223b}.hud-utility--skip{min-width:80px;padding:0 6px}.hud-utility--skip .control-icon,.control-icon{width:15px;height:15px}.music-toggle{bottom:12px;left:6px}.hud-utility--popups{bottom:12px;left:102px}.rating-toggle{top:auto;bottom:58px;left:6px}}.touch-controls{display:none}@media (pointer:coarse){.controls{display:none}.touch-controls{z-index:15;inset:auto 0 calc(10px + env(safe-area-inset-bottom)) 0;padding:0 max(14px, env(safe-area-inset-right)) 0 max(14px, env(safe-area-inset-left));pointer-events:none;justify-content:space-between;align-items:end;display:flex;position:fixed}.touch-controls__hint{bottom:calc(5px + env(safe-area-inset-bottom));white-space:nowrap;border:2px solid var(--ink);box-shadow:0 3px 0 var(--ink);color:var(--ink);background:#ffffffe0;border-radius:999px;margin:0;padding:5px 8px;font:800 .64rem/1 DM Sans,sans-serif;position:absolute;left:50%;transform:translate(-50%)}.touch-dpad{pointer-events:auto;width:150px;height:150px;position:relative}.touch-joystick{pointer-events:auto;touch-action:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;background:#ffffff4d;border:3px solid #17223bd1;border-radius:50%;width:126px;height:126px;position:relative;box-shadow:inset 0 0 0 10px #ffffff24}.touch-joystick__ring,.touch-joystick__knob{border-radius:50%;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.touch-joystick__ring{border:2px solid #17223b47;width:50px;height:50px}.touch-joystick__knob{border:3px solid var(--ink);width:48px;height:48px;box-shadow:0 4px 0 var(--ink);background:#ffd84deb;margin:-24px 0 0 -24px;transition:transform 70ms ease-out,background .12s ease-out}.touch-joystick__knob.is-active{background:#ff9fca}.touch-control{border:3px solid var(--ink);width:46px;height:46px;color:var(--ink);box-shadow:0 4px 0 var(--ink);text-align:center;touch-action:none;-webkit-user-select:none;user-select:none;background:#ffffffe0;border-radius:13px;place-items:center;padding:0;font:900 1.5rem/1 DM Sans,sans-serif;display:grid;position:absolute}.touch-control:active{box-shadow:0 1px 0 var(--ink);background:var(--accent);transform:translateY(3px)}.touch-control--up{top:0;left:52px}.touch-control--left{top:52px;left:0}.touch-control--down{top:104px;left:52px}.touch-control--right{top:52px;left:104px}.touch-control--up-left{top:0;left:0}.touch-control--up-right{top:0;left:104px}.touch-control--down-left{top:104px;left:0}.touch-control--down-right{top:104px;left:104px}.touch-control--jump{background:var(--accent);pointer-events:auto;border-radius:50%;width:72px;height:72px;font-size:.85rem;position:static}.touch-control__glyph{line-height:1;display:block}.touch-control--left .touch-control__glyph{transform:rotate(-90deg)}.touch-control--down .touch-control__glyph{transform:rotate(180deg)}.touch-control--right .touch-control__glyph{transform:rotate(90deg)}.touch-control--up-left .touch-control__glyph{transform:rotate(-45deg)}.touch-control--up-right .touch-control__glyph{transform:rotate(45deg)}.touch-control--down-left .touch-control__glyph{transform:rotate(-135deg)}.touch-control--down-right .touch-control__glyph{transform:rotate(135deg)}.quick-actions{gap:6px;inset:auto auto 298px 14px!important}.hud-utility,.music-toggle,.rating-toggle{border-width:2px!important;border-radius:8px!important;gap:3px!important;width:68px!important;min-width:68px!important;height:28px!important;padding-inline:3px!important;font-size:.56rem!important;box-shadow:0 3px #17223b!important}.rating-toggle{inset:auto auto 260px 14px!important}.music-toggle{bottom:184px!important;left:14px!important;right:auto!important}.hud .hud-utility--popups{bottom:222px!important;left:14px!important;right:auto!important}}.welcome{z-index:25;--surface:#fff;width:min(560px,100% - 32px);max-height:calc(100dvh - 2rem);box-shadow:9px 9px 0 var(--ink);text-align:center;border-radius:20px;padding:25px 28px 22px;position:fixed;top:clamp(88px,13vh,150px);left:50%;overflow-y:auto;transform:translate(-50%)}.eyebrow{color:#765c00;text-transform:uppercase;letter-spacing:.12em;margin:0 0 7px;font-size:.75rem;font-weight:900}.welcome h1,.section-card h2,.portfolio-menu h2{letter-spacing:-.04em;margin:0;font-family:Archivo Black,sans-serif;line-height:1.05}.welcome h1{font-size:clamp(2rem,7vw,4rem)}.welcome>p:not(.eyebrow){max-width:440px;margin:12px auto 18px;line-height:1.5}.welcome button,.continue{padding:12px 18px}.welcome button span{margin-left:20px}.welcome small{opacity:.65;margin-top:15px;font-weight:700;display:block}@media (width<=640px){.welcome{padding:22px 18px 18px;top:82px}.welcome small{font-size:.7rem}}:root{--ink:#17223b;--surface:#fff;--accent:#ffd84d;--control-border:3px solid var(--ink);--control-radius:12px;--control-shadow:0 5px 0 var(--ink);--panel-border:4px solid var(--ink);--panel-radius:18px;--panel-shadow:10px 10px 0 var(--ink)}.ui-button,.welcome button,.menu-button{border:var(--control-border);border-radius:var(--control-radius);background:linear-gradient(135deg, var(--button-highlight,#fff3a3), var(--button-color,var(--accent)));color:var(--ink);box-shadow:var(--control-shadow);font-weight:900}.ui-button:active,.welcome button:active,.menu-button:active{box-shadow:0 2px 0 var(--ink);transform:translateY(3px)}.ui-panel{border:var(--panel-border);border-radius:var(--panel-radius);background:var(--surface);box-shadow:var(--panel-shadow)}.tooltip-layer{z-index:10001;border:2px solid var(--ink);width:max-content;max-width:min(15rem,100vw - 1.5rem);color:var(--ink);box-shadow:3px 3px 0 var(--ink);pointer-events:none;text-align:center;background:#fffdf4;border-radius:.6rem;padding:.45rem .65rem;font-size:.72rem;font-weight:700;line-height:1.25;position:fixed}.tooltip-layer__arrow{background:#fffdf4;width:.78rem;height:.78rem;position:absolute;transform:rotate(45deg)}.tooltip-layer[data-side=top] .tooltip-layer__arrow{border-right:2px solid var(--ink);border-bottom:2px solid var(--ink)}.tooltip-layer[data-side=bottom] .tooltip-layer__arrow{border-top:2px solid var(--ink);border-left:2px solid var(--ink)}.tooltip-layer[data-side=left] .tooltip-layer__arrow{border-top:2px solid var(--ink);border-right:2px solid var(--ink)}.tooltip-layer[data-side=right] .tooltip-layer__arrow{border-bottom:2px solid var(--ink);border-left:2px solid var(--ink)}@media (hover:none){.tooltip-layer{display:none}}.rating-backdrop{z-index:10000;isolation:isolate;padding:max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#17223b8c;place-items:center;display:grid;position:fixed;inset:0}.rating-modal{border-top:14px solid var(--accent);width:min(430px,100%);max-height:100%;padding:34px;position:relative;overflow-y:auto}.rating-modal h2{letter-spacing:-.04em;margin:0 0 18px;font-family:Archivo Black,sans-serif;font-size:clamp(2rem,8vw,3rem);line-height:1.05}.rating-stars{gap:5px;margin:16px 0 22px;display:flex}.rating-stars button{color:#c8ccd0;background:0 0;border:0;padding:0;font-size:2.2rem;line-height:1;transition:transform .15s,color .15s}.rating-stars button.selected,.rating-stars button:hover{color:#f4b400;transform:translateY(-3px)scale(1.08)}.rating-modal label{margin-bottom:7px;font-weight:800;display:block}.rating-modal label span{opacity:.65;font-weight:400}.rating-modal textarea{resize:vertical;border:3px solid var(--ink);width:100%;max-width:100%;color:var(--ink);font:inherit;border-radius:10px;padding:10px}.rating-character-count{text-align:right;color:#526078;margin:5px 0 0;font-size:.78rem}.rating-honeypot{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.rating-submit{width:100%;margin-top:16px;padding:11px 16px}.rating-submit:disabled{cursor:not-allowed;opacity:.45}.rating-thanks{text-align:center;padding:10px 0 2px}.rating-thanks>span{display:none}.rating-thanks p{margin:0}@media (width<=640px){.rating-modal{padding:30px 22px 24px}}.obby-loader{z-index:9999;color:#4e9fda;background:#fff;place-items:center;display:grid;position:fixed;inset:0;overflow:hidden}.obby-loader--leaving{pointer-events:none;animation:.7s ease-in-out forwards loader-fade-out}.obby-loader__content{justify-items:center;gap:24px;display:grid}.obby-loader__percentage{font-variant-numeric:tabular-nums;font-size:clamp(3rem,8vw,5rem);font-weight:800;line-height:1}.obby-loader--leaving .obby-loader__content{opacity:0;transition:opacity .2s}.obby-loader__bar{background:#dceefa;border-radius:999px;width:min(240px,60vw);height:6px;overflow:hidden}.obby-loader__bar-fill{border-radius:inherit;background:#4e9fda;height:100%;transition:width .4s}@keyframes loader-fade-out{to{opacity:0}}@media (prefers-reduced-motion:reduce){.obby-loader--leaving{animation-duration:.01ms}.obby-loader--leaving .obby-loader__content,.obby-loader__bar-fill{transition-duration:.01ms}}.portfolio-chat{z-index:19;right:var(--viewport-gutter);bottom:calc(var(--viewport-bottom) + 4rem);pointer-events:none;position:fixed}.portfolio-chat__toggle,.portfolio-chat__panel{pointer-events:auto}.portfolio-chat__toggle{box-sizing:border-box;border:3px solid var(--ink);width:100px;color:var(--ink);box-shadow:0 5px 0 var(--ink);background:linear-gradient(135deg,#d8f3ce,#aaf08c);border-radius:12px;justify-content:center;align-items:center;gap:6px;padding:9px 5px;font:900 .9rem/1.45 DM Sans,sans-serif;display:inline-flex}.portfolio-chat__toggle:hover{box-shadow:5px 6px 0 var(--ink);transform:translate(-1px,-1px)}.portfolio-chat__toggle:active{box-shadow:0 2px 0 var(--ink);transform:translateY(3px)}.portfolio-chat__toggle span{font-size:1rem;line-height:1;position:relative;top:-1px}.portfolio-chat__panel{width:clamp(300px,29vw,365px);max-width:calc(100vw - 24px);height:min(520px,100dvh - 200px);max-height:calc(100dvh - 200px);box-shadow:8px 8px 0 var(--ink);transform-origin:100% 100%;border-top:12px solid #aaf08c;flex-direction:column;animation:.28s cubic-bezier(.22,.9,.28,1.15) portfolio-chat-open;display:flex;position:absolute;bottom:calc(100% + .75rem);right:0;overflow:hidden}@keyframes portfolio-chat-open{0%{opacity:0;transform:translateY(18px)scale(.86)rotate(1.5deg)}}.portfolio-chat__panel.is-closing{pointer-events:none;animation:.22s ease-in forwards portfolio-chat-close}@keyframes portfolio-chat-close{to{opacity:0;transform:translateY(14px)scale(.9)rotate(-1deg)}}.portfolio-chat__header{border-bottom:2px solid #dce6d7;align-items:center;gap:10px;padding:14px 16px 12px;display:flex}.portfolio-chat__header .eyebrow{margin:0 0 3px}.portfolio-chat__title{flex:1}.portfolio-chat__header h2{margin:0;font-size:1.55rem}.portfolio-chat__close{border:2px solid var(--ink);width:32px;height:32px;color:var(--ink);background:#fff;border-radius:50%;font-size:1.35rem;font-weight:900;line-height:1}.portfolio-chat__messages{background:#fffdf6;flex-direction:column;flex:1;gap:12px;min-height:0;padding:16px 20px;display:flex;overflow-y:auto}.portfolio-chat__message{border:2px solid var(--ink);border-radius:12px;min-width:0;max-width:calc(100% - 44px);padding:10px 12px;font-size:.9rem;line-height:1.45;box-shadow:3px 3px #17223b29}.portfolio-chat__message p{white-space:pre-line;overflow-wrap:anywhere;word-break:break-word;margin:0}.portfolio-chat__message--assistant{background:#e8f8e1}.portfolio-chat__message--user{background:#ffe0ed}.portfolio-chat__message-row{align-items:flex-start;gap:8px;min-width:0;display:flex}.portfolio-chat__message-row--user{justify-content:flex-end}.portfolio-chat__message-avatar{border:2px solid var(--ink);object-fit:cover;object-position:center 38%;background:#ffd8e6;border-radius:50%;flex:none;width:34px;height:34px}.portfolio-chat__sources{border-top:1px solid #17223b33;margin-top:10px;padding-top:8px;font-size:.72rem}.portfolio-chat__sources>span{font-weight:900;display:block}.portfolio-chat__sources ul{flex-wrap:wrap;gap:5px;margin:6px 0 0;padding:0;list-style:none;display:flex}.portfolio-chat__sources li{border:1px solid var(--ink);background:#fff;border-radius:999px;font-weight:700}.portfolio-chat__sources button{border-radius:inherit;color:inherit;font:inherit;background:0 0;border:0;padding:3px 6px}.portfolio-chat__sources button:hover,.portfolio-chat__sources button:focus-visible{background:linear-gradient(135deg,#d8f3ce,#aaf08c);outline:none}.portfolio-chat__thinking{color:#526078;margin:0;font-size:.82rem;font-style:italic}.portfolio-chat__form{background:#fff;border-top:2px solid #dce6d7;padding:14px 16px 16px}.portfolio-chat__input-wrap{position:relative}.portfolio-chat__form textarea{box-sizing:border-box;resize:none;border:2px solid var(--ink);width:100%;color:var(--ink);font:inherit;border-radius:9px;padding:9px 9px 25px}.portfolio-chat__character-count{color:#667085;pointer-events:none;text-align:right;padding:0 8px;font-size:.5rem;line-height:1;position:absolute;bottom:7px;right:10px}.portfolio-chat__send{background:linear-gradient(135deg,#d8f3ce,#aaf08c);width:100%;margin-top:9px;padding:9px 12px}.portfolio-chat__send:disabled{cursor:not-allowed;opacity:.55}.portfolio-chat__error{color:#a41437;margin:7px 0 0;font-size:.8rem;font-weight:700}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}@media (width<=640px){.portfolio-chat{right:max(12px, env(safe-area-inset-right));bottom:calc(var(--viewport-bottom) + 5.5rem)}.portfolio-chat__toggle{width:68px;min-height:28px;box-shadow:0 3px 0 var(--ink);border-width:2px;border-radius:8px;padding:4px 3px;font-size:.56rem;line-height:1.2}.portfolio-chat__toggle span{font-size:.64rem}.portfolio-chat__panel{width:calc(100vw - 24px);height:min(600px,100dvh - 9.5rem);max-height:calc(100dvh - 9.5rem)}body.portfolio-chat-open .hud,body.portfolio-chat-open .rating-toggle,body.portfolio-chat-open .music-toggle,body.portfolio-chat-open .touch-controls,body.portfolio-chat-open .controls{visibility:hidden;pointer-events:none}}@media (height<=700px){.portfolio-chat__panel{height:calc(100dvh - 172px);max-height:calc(100dvh - 172px)}.portfolio-chat__header{padding:11px 14px 9px}.portfolio-chat__messages{padding:12px 14px}.portfolio-chat__form{padding:10px 12px 12px}}
