:root{--ink:#21364a;--muted:#6c7c8e;--blue:#356eaf;--ice:#e9f2fb;--paper:#f6f8fa;--line:#dce3e9;--serif:Georgia,'Times New Roman',serif;--sans:'Segoe UI',Inter,Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.5 var(--sans);-webkit-font-smoothing:antialiased}button,input{font:inherit;color:inherit}button,a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #5998e0;outline-offset:4px}svg{display:block}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;left:20px;top:5px;z-index:100;background:white;padding:14px;transform:translateY(-150%)}.skip-link:focus{transform:none}
.topbar{height:98px;max-width:1440px;margin:auto;padding:0 56px;display:flex;align-items:center;justify-content:space-between;gap:32px}.brand{display:flex;align-items:center;gap:11px;font-size:24px;font-weight:650;letter-spacing:3.5px;line-height:1}.brand small{display:block;font-size:7px;letter-spacing:2.1px;font-weight:500;margin-top:9px;color:#718396}.brand-symbol{width:29px;height:34px;display:flex;flex-direction:column;justify-content:center;gap:4px;transform:skewY(-10deg)}.brand-symbol i{height:7px;background:linear-gradient(120deg,#b1d7ff,#437cb9 65%,#dcc7aa);border-radius:1px;box-shadow:inset 0 1px 1px #fff,2px 2px 2px #bac6d1}.brand-symbol i:nth-child(2){width:22px}.brand-symbol i:nth-child(3){width:15px}.topbar nav{display:flex;gap:36px;font-size:13px;font-weight:550;color:#687b8e}.topbar nav a{padding:12px 0;position:relative}.topbar nav a:after{content:'';position:absolute;left:0;bottom:6px;width:0;height:1px;background:#578ac0;transition:width .2s}.topbar nav a:hover:after{width:100%}.private-label{display:flex;align-items:center;gap:8px;font-size:11px;color:#7b8997}.private-label svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.5}.avatar{display:grid;place-items:center;width:33px;height:33px;background:linear-gradient(135deg,#fff,#e1eaf2);border:1px solid #fff;box-shadow:0 2px 5px #21364a12;border-radius:50%;margin-left:12px;color:#43607b;font-size:10px;font-weight:600}
main{max-width:1440px;margin:auto}.hero{--hero-visual-height:460px;position:relative;isolation:isolate;margin:0 28px;overflow:hidden;border-radius:17px;background:linear-gradient(100deg,#eef2f7 0%,#f6f6f3 64%,#e7edf2 100%);border:1px solid #fff;box-shadow:0 12px 40px #26384a05,inset 0 0 40px #fff8}.hero-visual{position:absolute;z-index:-1;right:0;top:0;width:77%;height:100%;mask-image:linear-gradient(to right,transparent 0%,#000 26%);-webkit-mask-image:linear-gradient(to right,transparent 0%,#000 26%)}.hero-visual img{width:100%;height:100%;object-fit:cover;object-position:center}.hero-visual:after{content:'';position:absolute;inset:0;background:linear-gradient(to top,#eef2f3 1%,transparent 20%)}.hero-content{position:relative;padding:55px 0 0 58px;max-width:540px}.eyebrow{font-size:9px;font-weight:600;letter-spacing:2.2px;color:#6e849b;display:flex;align-items:center;gap:9px}.hero .eyebrow span{width:21px;height:1px;background:#7c9ab8}.hero h1{font-size:58px;font-weight:450;letter-spacing:-2.6px;line-height:1.08;margin:25px 0 19px}.hero h1 em{font-family:var(--serif);font-weight:400;color:#4776a6;font-size:57px;letter-spacing:-2.5px}.hero p{font-size:13px;line-height:1.9;color:#6d7f90;max-width:350px;margin:0 0 24px}.primary-link{display:inline-flex;align-items:center;gap:28px;padding:12px 17px;background:#fff9;border:1px solid #fff;border-radius:6px;box-shadow:0 3px 10px #3f617c0a;font-size:11px;font-weight:600;backdrop-filter:blur(10px)}.primary-link span{font-size:17px;color:#4d85c0}.primary-link:hover{background:white}.hero-bottom{position:absolute;bottom:19px;left:58px;right:33px;display:flex;justify-content:space-between;gap:20px;font-size:7px;letter-spacing:1.5px;color:#8293a3}.light-indicator{letter-spacing:.5px;display:flex;align-items:center;gap:7px}.light-indicator i{width:4px;height:4px;background:#79aee0;border-radius:50%;box-shadow:0 0 7px #79aee0}.light-paths{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.light-paths>path{fill:none;stroke:#a6d2ff;stroke-width:1.5;opacity:.16}.hero-light{position:absolute;inset:0;background:radial-gradient(ellipse at 55% 45%,#e7f4ff50,transparent 55%);animation:light-breathe 6s ease-in-out infinite;mix-blend-mode:screen}@keyframes light-breathe{50%{opacity:.2}}
.portfolio{padding:55px 58px 0}.overview-bar{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-bottom:34px}.overview-bar h2{font-size:26px;font-weight:450;letter-spacing:-.8px;margin:5px 0 0}.overview-tools{display:flex;align-items:center;gap:13px}.search{display:flex;align-items:center;gap:10px;width:263px;padding:11px 14px;background:#fff9;border:1px solid #e2e7ed;border-radius:7px}.search svg{width:15px;height:15px;fill:none;stroke:#8194a6;stroke-width:1.5;flex-shrink:0}.search input{border:0;background:transparent;outline:none;min-width:0;width:100%;font-size:11px}.search input::placeholder{color:#8d9aa8}.search kbd{font:10px var(--sans);border:1px solid #e0e7ee;padding:1px 5px;border-radius:3px;color:#97a4b1}.motion-button{border:0;background:none;display:flex;align-items:center;gap:6px;font-size:9px;color:#8797a7;min-height:40px}.motion-button>span:first-child{font-size:13px}.project-section{margin-bottom:53px;scroll-margin-top:25px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:25px;margin-bottom:22px;padding-bottom:14px;border-bottom:1px solid var(--line)}.section-title{display:flex;align-items:baseline;gap:12px}.section-title .number{font-size:9px;letter-spacing:.5px;color:#88a0b8}.section-title h2{font-size:20px;font-weight:550;letter-spacing:-.4px;margin:0}.section-title .count{font-size:10px;color:#8797a7;font-weight:400;padding-left:3px}.section-heading>p{font-size:11px;color:#8491a0;margin:0}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}.project-card{position:relative;min-width:0;background:#fff;border:1px solid #e1e7ed;border-radius:12px;overflow:hidden;box-shadow:0 4px 15px #26384a03;transition:transform .3s,box-shadow .3s,border-color .3s}.project-card:hover{transform:translateY(-5px);border-color:#bfd3e7;box-shadow:0 15px 30px #3555730d}.card-visual{position:relative;height:205px;overflow:hidden;background:linear-gradient(140deg,#e9eff4,#f8f6f0);border-bottom:1px solid #e7ebef}.card-visual.image-screen{padding:18px 15px 0;background:linear-gradient(145deg,#e7edf3,#f2f4f7 65%,#e2e7ee)}.image-screen .image-mount{height:100%;border-radius:5px 5px 0 0;overflow:hidden;box-shadow:0 8px 25px #20395125;border:3px solid #fff9;background:#fff}.card-visual img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s}.card-visual.image-screen img{object-fit:cover;object-position:top center}.card-visual.image-art img{object-fit:cover}.project-card:hover .image-art img{transform:scale(1.035)}.visual-tag{position:absolute;bottom:10px;left:12px;border-radius:3px;background:#ffffffdc;backdrop-filter:blur(10px);padding:3px 6px;font-size:6px;letter-spacing:1px;color:#4b6e8e;border:1px solid #ffffffa0}.card-body{padding:23px 23px 20px}.card-kicker{font-size:8px;line-height:1.4;color:#7b8da0;letter-spacing:1.5px;text-transform:uppercase;min-height:12px}.card-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:8px 0 11px}.card-heading h3{font-size:23px;letter-spacing:-.6px;font-weight:550;margin:0;line-height:1.2}.badge{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;font-size:8px;line-height:1;padding:5px 7px;border-radius:4px;background:#eef2f7;color:#6b80a0;font-weight:500}.badge:before{content:'';height:4px;width:4px;border-radius:50%;background:currentColor}.badge-active{background:#e8f4ed;color:#4d9474}.badge-built{background:#e8f1fb;color:#4b85bf}.badge-development{background:#edf1fc;color:#728bc0}.badge-specification,.badge-idea{background:#f4efe5;color:#9b8356}.badge-preparation{background:#f3edf6;color:#9a7aaa}.card-summary{font-size:12px;color:#7b8898;line-height:1.75;margin:0;min-height:43px}.card-actions{display:flex;align-items:center;gap:10px;border-top:1px solid #edf0f4;padding-top:16px;margin-top:20px}.card-open{display:inline-flex;align-items:center;gap:15px;background:none;border:0;padding:2px 0;min-height:30px;font-size:10px;font-weight:600}.card-open .arrow{color:#588bc0;font-size:16px;transition:transform .2s}.card-open:hover .arrow{transform:translate(2px,-2px)}.card-shortcuts{display:flex;align-items:center;gap:5px;margin-left:auto}.shortcut{display:inline-flex;align-items:center;gap:4px;border:1px solid #e4e9ef;border-radius:4px;min-height:28px;padding:4px 7px;background:white;font-size:8px;color:#8192a4}.shortcut:hover{color:#356eaf;background:#f0f6fd;border-color:#c9daec}.shortcut svg{width:11px;height:11px;stroke:currentColor;fill:none;stroke-width:1.5}.search-status{font-size:12px;color:#6d8398;padding:0 0 26px}.empty-state{text-align:center;padding:75px 20px}.empty-state h3{font-size:23px;font-weight:500}.empty-state p{color:var(--muted)}.empty-state button{padding:10px 20px;background:white;border:1px solid #cfdae4;border-radius:6px}
/* Purpose-built glass objects for projects without a published visual. */
.model-scene{height:100%;position:relative;display:flex;align-items:center;justify-content:center;perspective:700px;overflow:hidden;background:radial-gradient(ellipse at 50% 60%,#fff 0%,#edf2f7 60%,#e5edf4)}.model-scene:before{content:'';position:absolute;inset:50% -20% -60%;background:linear-gradient(#bacfdd22 1px,transparent 1px),linear-gradient(90deg,#bacfdd22 1px,transparent 1px);background-size:32px 32px;transform:rotateX(65deg);transform-origin:50% 0}.glass-object{position:relative;width:170px;height:110px;border:1px solid #fff;border-radius:12px;background:linear-gradient(120deg,#ffffffd9,#cee2f059 48%,#ffffffb3);box-shadow:inset 2px 2px 1px #fff,inset -3px -3px 2px #97b5cd66,10px 12px 0 -5px #b3ccdc33,15px 22px 20px #3c648318;transform:rotateY(-23deg) rotateX(13deg) rotateZ(-5deg);animation:glass-float 7s ease-in-out infinite;backdrop-filter:blur(5px)}.glass-object:after{content:'';position:absolute;inset:7px;border:1px solid #ffffffaa;border-radius:7px;pointer-events:none}.model-scene svg{position:absolute;inset:16px;width:calc(100% - 32px);height:calc(100% - 32px);fill:none;stroke:#6691ba;stroke-width:1.3;filter:drop-shadow(0 2px 1px white)}.model-label{position:absolute;bottom:12px;font-size:6px;letter-spacing:1.3px;color:#92a6b8}.glass-satellite{position:absolute;width:45px;height:45px;border-radius:7px;border:1px solid #fff;background:linear-gradient(135deg,#fff9,#b7d5f05c);box-shadow:inset 1px 1px 1px white,3px 7px 10px #56799722;left:calc(50% + 58px);top:32px;transform:rotateY(-25deg) rotateZ(-7deg);animation:glass-float 7s -2s ease-in-out infinite}.glass-satellite svg{inset:10px;width:25px;height:25px}.glass-object.model-nodes{width:110px;height:110px;border-radius:25px}.model-nodes+.glass-satellite{left:calc(50% - 100px);top:60px}.model-plans svg{stroke:#758fa7}.model-keys{width:125px;height:125px}.model-documents{height:122px;width:96px}.model-orbit{border-radius:50%;width:110px;height:110px}.model-scene .orbit-ring{position:absolute;width:180px;height:70px;border:2px solid #b6ccdf;border-radius:50%;transform:rotate(-30deg);box-shadow:0 1px 1px white;pointer-events:none}@keyframes glass-float{50%{translate:0 -7px}}
.ideas-section{border:1px solid #dce5ed;border-radius:10px;background:linear-gradient(120deg,#eef3f8,#f9fafb);overflow:hidden;margin-bottom:40px}.ideas-section summary{list-style:none;display:flex;align-items:center;gap:18px;padding:23px 26px;cursor:pointer}.ideas-section summary::-webkit-details-marker{display:none}.ideas-section summary .ideas-symbol{font-size:25px;color:#9baec0;font-weight:300}.ideas-section summary h2{font-size:16px;font-weight:500;margin:0}.ideas-section summary p{font-size:11px;color:#91a0af;margin:3px 0 0}.ideas-section summary .ideas-count{margin-left:auto;color:#8b9eb0;font-size:10px}.ideas-section summary .chevron{font-size:21px;color:#7a93ac;transition:transform .3s}.ideas-section[open] summary .chevron{transform:rotate(45deg)}.ideas-section .project-grid{padding:0 23px 23px}.ideas-section .card-visual{height:170px}.ideas-section .card-heading h3{font-size:19px}.ideas-section .card-heading{align-items:flex-start;flex-direction:column;gap:10px}.footer{display:flex;justify-content:space-between;align-items:center;gap:25px;border-top:1px solid #dfe6ec;padding:31px 0 42px;margin:0 58px;color:#8d9caa;font-size:9px}.footer-wordmark{font-size:17px;letter-spacing:3px;color:#536c84;font-weight:600}.footer-wordmark span{display:block;font-size:8px;letter-spacing:.4px;margin-top:5px;font-weight:400;color:#98a6b3}.footer p{margin:0;text-align:center;line-height:1.8}.footer>a:last-child{margin-right:70px;display:flex;gap:15px}
.project-dialog{border:1px solid #fff;border-radius:16px;padding:0;width:min(950px,calc(100% - 40px));max-height:91dvh;color:var(--ink);background:#fbfcfd;box-shadow:0 30px 100px #162f4a33;overflow:auto}.project-dialog::backdrop{background:#1b344b80;backdrop-filter:blur(10px)}.dialog-visual{position:relative;height:300px;background:#e5edf3;overflow:hidden}.dialog-visual>img{height:100%;width:100%;object-fit:cover}.dialog-visual.image-screen{padding:24px 40px 0;background:linear-gradient(140deg,#e3eaf3,#f1f4f8)}.dialog-visual.image-screen>img{object-fit:contain;object-position:center top}.dialog-visual .model-scene{height:100%;transform:none}.close-dialog{position:absolute;top:15px;right:15px;display:grid;place-items:center;border:1px solid #fff;background:#ffffffe0;backdrop-filter:blur(10px);width:38px;height:38px;border-radius:50%;font-size:25px;color:#4f7090;z-index:2}.dialog-body{padding:33px 40px 36px}.dialog-heading{display:flex;align-items:center;gap:15px}.dialog-heading .eyebrow{font-size:8px}.dialog-body h2{font-size:34px;font-weight:500;letter-spacing:-1px;margin:8px 0 14px}.dialog-detail{font-size:14px;line-height:1.9;color:#6e8396;margin:0 0 30px;max-width:780px}.dialog-columns{display:grid;grid-template-columns:1fr 1fr;gap:45px}.dialog-section-title{font-size:9px;text-transform:uppercase;letter-spacing:1.5px;color:#7690a8;font-weight:600;margin:0 0 12px}.feature-list{padding:0;list-style:none;margin:0 0 25px}.feature-list li{font-size:12px;line-height:1.7;padding:7px 0 7px 17px;border-bottom:1px solid #e9edf2;position:relative}.feature-list li:before{content:'✓';position:absolute;left:0;color:#7ea8cb;font-size:10px}.next-note{padding:16px;background:#eef3f8;border:1px solid #e1e8ef;border-radius:6px}.next-note p,.evidence-note{font-size:11px;line-height:1.8;color:#7c8fa2;margin:0}.evidence-details{margin-top:24px}.evidence-details summary{font-size:10px;color:#8c9cad;cursor:pointer}.evidence-note{padding-top:10px}.dialog-links{display:flex;flex-direction:column;gap:8px;margin-bottom:24px}.resource-link{font-size:11px;display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:44px;padding:10px 12px;border:1px solid #dce5ed;border-radius:5px;background:#fff}.resource-link:hover{border-color:#a3c3e0;color:#407cb7}.resource-link svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.5;flex-shrink:0}.dialog-footnote{border-top:1px solid #e0e7ee;margin-top:29px;padding-top:15px;font-size:8px;letter-spacing:.3px;color:#a2aeb9}.dialog-gallery{margin-top:22px}.dialog-gallery img{width:100%;height:auto;border-radius:6px}.no-materials{font-size:11px;color:#98a7b4}
/* Small, functional guide. The character is built in CSS, with no external service. */
.assistant-widget{position:fixed;bottom:17px;right:25px;z-index:15}.guide-toggle{position:relative;display:block;width:87px;height:98px;border:0;background:none;padding:0}.robot{display:block;width:76px;height:80px;position:relative;animation:robot-hover 4s ease-in-out infinite;filter:drop-shadow(0 8px 8px #537ba326)}.robot-head{position:absolute;left:10px;top:18px;width:57px;height:42px;border-radius:16px;background:linear-gradient(135deg,#fff 12%,#e5edf5 48%,#b4c8db 100%);box-shadow:inset 2px 2px 3px white,inset -2px -3px 3px #8ba9c1,0 2px 2px #527da52a;z-index:3;transform:rotate(-5deg)}.robot-screen{position:absolute;inset:8px 7px 9px;border-radius:10px;background:radial-gradient(ellipse at 50% 100%,#316b98,#1e3652 75%);box-shadow:inset 0 1px 3px #031e30,0 1px 2px white;display:flex;justify-content:center;gap:11px;align-items:center}.robot-screen i{width:5px;height:7px;border-radius:3px;background:#91d6ff;box-shadow:0 0 4px #8ed8ff;animation:robot-blink 6s infinite}.robot-screen b{position:absolute;bottom:4px;left:19px;width:6px;height:3px;border-bottom:1px solid #8cd6ff;border-radius:0 0 5px 5px}.robot-antenna{position:absolute;left:37px;top:7px;height:12px;width:2px;background:linear-gradient(#a4bfd5,#e5edf2);transform:rotate(-8deg)}.robot-antenna:before{content:'';position:absolute;top:-2px;left:-2px;width:6px;height:6px;border-radius:50%;background:#a0d5f9;box-shadow:0 0 8px #6eaee6}.robot-ear{position:absolute;top:31px;width:8px;height:16px;background:linear-gradient(#fff,#8da9c2);border-radius:4px;z-index:1}.robot-ear.left{left:6px}.robot-ear.right{right:3px}.robot-body{position:absolute;left:25px;top:56px;width:30px;height:22px;background:linear-gradient(130deg,#fff,#c3d5e3);border-radius:7px 7px 13px 13px;box-shadow:inset -2px -2px 2px #94b2cc;z-index:2}.robot-body i{position:absolute;left:13px;top:6px;width:5px;height:5px;border-radius:50%;background:#8fc5f3;box-shadow:0 0 5px #a5d9ff}.robot-arm{position:absolute;left:59px;top:54px;width:10px;height:18px;background:linear-gradient(100deg,#fff,#bad0e0);border-radius:5px;transform-origin:4px 14px;transform:rotate(-35deg);animation:robot-wave 7s infinite}.robot-shadow{position:absolute;left:20px;top:88px;width:40px;height:5px;background:#8aa3b455;filter:blur(5px);border-radius:50%}.guide-label{position:absolute;right:79px;top:37px;background:#ffffffdb;border:1px solid #fff;backdrop-filter:blur(10px);border-radius:5px;padding:6px 10px;font-size:9px;color:#7c93a8;white-space:nowrap;box-shadow:0 4px 20px #29435f08;opacity:0;translate:5px 0;transition:.2s}.guide-toggle:hover .guide-label,.guide-toggle:focus-visible .guide-label{opacity:1;translate:0}.guide-panel{position:absolute;width:305px;bottom:103px;right:9px;border-radius:13px;padding:20px;background:#ffffffed;backdrop-filter:blur(25px);border:1px solid white;box-shadow:0 15px 70px #26435c25}.guide-top{display:flex;align-items:center;justify-content:space-between;gap:15px}.guide-top>span{display:flex;align-items:center;gap:7px;font-size:8px;letter-spacing:1.4px;color:#8da4b9}.guide-top i{width:4px;height:4px;border-radius:50%;background:#82b5e4}.guide-top button{width:28px;height:28px;background:none;border:0;color:#98aabd;font-size:20px}.guide-panel h2{font-size:24px;font-weight:450;letter-spacing:-.7px;margin:13px 0 2px}.guide-panel>p{font-size:11px;color:#8a9daf;margin:0 0 18px}.guide-quick{display:flex;flex-direction:column;gap:6px}.guide-quick button{min-height:39px;display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border:1px solid #e1e9f0;border-radius:5px;background:#f9fbfd;text-align:left;font-size:10px}.guide-quick button:hover{background:#eaf3fc}.guide-quick span{color:#8caaca}.guide-panel form{display:flex;border:1px solid #dbe5ef;border-radius:6px;margin-top:15px;overflow:hidden;background:white}.guide-panel input{width:100%;min-width:0;border:0;background:none;font-size:11px;padding:11px}.guide-panel form button{background:#edf4fb;border:0;width:40px;color:#6a94bb}.guide-results{font-size:10px;max-height:220px;overflow:auto;color:#8296a9;line-height:1.8}.guide-results:not(:empty){margin-top:12px}.guide-results button,.guide-results a{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid #e8edf3;padding:8px 2px;font-size:11px}.guide-results small{font-size:9px;color:#98aabd}.noscript{padding:30px;text-align:center}@keyframes robot-hover{50%{translate:0 -5px;rotate:2deg}}@keyframes robot-blink{0%,40%,44%,100%{scale:1 1}42%{scale:1 .15}}@keyframes robot-wave{0%,70%,100%{rotate:0deg}75%,85%{rotate:-20deg}80%,90%{rotate:10deg}}
.motion-paused *,.motion-paused *:before,.motion-paused *:after{animation-play-state:paused!important}.motion-paused .flow-pulse{display:none}
@media(min-width:1500px){.topbar{height:110px}.hero{--hero-visual-height:490px}.hero-content{padding-top:65px}.hero h1{font-size:62px}.hero h1 em{font-size:61px}.card-visual{height:225px}}
@media(max-width:1100px){.topbar{padding:0 32px;gap:20px}.topbar nav{gap:24px}.hero{margin:0 18px;--hero-visual-height:425px}.hero-content{padding:48px 0 0 36px;max-width:450px}.hero h1{font-size:50px}.hero h1 em{font-size:49px}.hero-visual{width:83%;right:-12%}.hero-bottom{left:36px}.portfolio{padding:43px 33px 0}.project-grid{gap:17px}.card-visual{height:175px}.card-body{padding:18px 17px 16px}.card-heading{align-items:flex-start;flex-direction:column;gap:10px}.card-heading h3{font-size:22px}.card-summary{min-height:63px}.card-actions{gap:5px}.card-shortcuts{gap:4px}.card-open{gap:8px;font-size:9px}.shortcut{font-size:7px;padding:3px 5px}.footer{margin:0 33px}.section-heading>p{font-size:10px}.section-title h2{font-size:19px}.private-label{font-size:10px}.private-label .avatar{margin-left:4px}}
@media(max-width:800px){.topbar{height:85px}.topbar nav{gap:22px;font-size:11px}.brand{font-size:21px}.brand small{font-size:6px}.private-label{font-size:0;gap:0}.private-label>svg{display:none}.private-label .avatar{font-size:9px;margin-left:0}.hero{--hero-visual-height:400px}.hero-content{padding-top:43px}.hero h1{font-size:45px}.hero h1 em{font-size:44px}.hero .eyebrow{font-size:7px;letter-spacing:1.7px}.hero p{font-size:11px;max-width:280px}.hero-visual{width:100%;right:-24%;opacity:.86;mask-image:linear-gradient(to right,transparent 0%,#000 48%)}.hero-bottom{font-size:6px;right:24px}.hero-bottom .light-indicator{display:none}.portfolio{padding-top:38px}.overview-bar h2{font-size:23px}.overview-tools{gap:3px}.motion-text{display:none}.search{width:215px}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.card-visual{height:200px}.card-heading{flex-direction:row;align-items:center}.card-heading h3{font-size:22px}.card-summary{min-height:43px}.card-actions{gap:10px}.card-open{font-size:10px;gap:10px}.shortcut{font-size:8px;padding:4px 7px}.section-heading>p{display:none}.dialog-columns{gap:25px}.footer p{font-size:8px}.footer>a:last-child{margin-right:55px}.assistant-widget{right:15px;bottom:10px}}
@media(max-width:600px){html{scroll-padding-top:20px}.topbar{padding:0 23px;height:78px;gap:15px}.brand{font-size:20px;gap:8px;letter-spacing:3px}.brand small{font-size:5.5px;letter-spacing:1.55px;margin-top:7px}.brand-symbol{width:22px;height:27px;gap:3px}.brand-symbol i{height:5px}.brand-symbol i:nth-child(2){width:17px}.brand-symbol i:nth-child(3){width:12px}.topbar nav{gap:14px;font-size:10px}.avatar{width:27px;height:27px}.hero{margin:0 12px;--hero-visual-height:565px;border-radius:12px}.hero-content{padding:30px 25px 0;max-width:none}.hero .eyebrow{font-size:7px;letter-spacing:1.7px}.hero h1{font-size:45px;letter-spacing:-2px;margin:21px 0 15px}.hero h1 em{font-size:43px;letter-spacing:-1.9px}.hero p{font-size:11px;line-height:1.85;max-width:290px;margin-bottom:17px}.primary-link{font-size:10px;padding:9px 13px;gap:24px}.hero-visual{height:300px;width:100%;top:auto;bottom:5px;right:0;opacity:1;mask-image:linear-gradient(to bottom,transparent 0%,#000 26%);-webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 26%)}.hero-visual img{object-position:55% center}.hero-bottom{bottom:15px;left:25px;right:25px;font-size:5px;letter-spacing:1.1px}.portfolio{padding:35px 24px 0}.overview-bar{align-items:flex-start;flex-direction:column;gap:20px;margin-bottom:28px}.overview-bar .eyebrow{font-size:7px;letter-spacing:1.8px}.overview-bar h2{font-size:25px;margin-top:4px}.overview-tools{width:100%;flex-direction:row-reverse;justify-content:space-between;gap:15px}.search{width:100%;padding:12px 13px}.search input{font-size:12px}.search kbd{display:none}.motion-button{padding:8px;min-height:42px}.project-grid{grid-template-columns:1fr;gap:24px}.project-section{margin-bottom:38px}.section-heading{padding-bottom:11px;margin-bottom:18px}.section-title{gap:10px}.section-title h2{font-size:20px}.section-title .number{font-size:8px}.section-title .count{font-size:9px}.card-visual{height:215px}.card-visual.image-screen{padding:20px 17px 0}.card-body{padding:22px 23px 18px}.card-kicker{font-size:7px;letter-spacing:1.5px}.card-heading{margin-top:9px;margin-bottom:13px}.card-heading h3{font-size:25px}.badge{font-size:8px;padding:6px 7px}.card-summary{font-size:13px;line-height:1.75;min-height:0}.card-actions{margin-top:20px;padding-top:13px}.card-open{font-size:11px;min-height:39px;gap:17px}.shortcut{min-height:36px;font-size:9px;padding:7px 9px}.shortcut svg{height:12px;width:12px}.ideas-section summary{padding:20px 17px;gap:12px}.ideas-section summary h2{font-size:15px}.ideas-section summary p{font-size:9px}.ideas-section .project-grid{padding:0 13px 15px}.ideas-section .card-visual{height:175px}.ideas-section .card-heading{flex-direction:row;align-items:center}.ideas-section .card-heading h3{font-size:20px}.ideas-section .card-body{padding:18px}.footer{margin:0 24px;padding:25px 0 115px;align-items:flex-start;gap:15px;flex-wrap:wrap}.footer-wordmark{font-size:17px}.footer p{text-align:left;font-size:8px}.footer>a:last-child{width:100%;margin-right:0;margin-top:4px;font-size:9px}.project-dialog{width:calc(100% - 22px);max-height:94dvh;border-radius:11px}.dialog-visual{height:225px}.dialog-visual.image-screen{padding:35px 12px 0}.close-dialog{height:36px;width:36px;font-size:23px;top:10px;right:10px}.dialog-body{padding:25px 23px}.dialog-heading{gap:10px;flex-wrap:wrap}.dialog-heading .eyebrow{font-size:7px;letter-spacing:1px}.dialog-body h2{font-size:29px;margin-top:12px}.dialog-detail{font-size:13px;line-height:1.8;margin-bottom:25px}.dialog-columns{grid-template-columns:1fr;gap:24px}.dialog-section-title{font-size:9px}.feature-list li{font-size:12px}.next-note p,.evidence-note{font-size:11px}.resource-link{font-size:12px}.dialog-footnote{font-size:8px}.assistant-widget{right:12px;bottom:8px}.guide-toggle{width:74px;height:91px}.robot{scale:.9;transform-origin:100% 100%}.guide-panel{right:0;bottom:96px;width:min(305px,calc(100vw - 28px))}.guide-label{display:none}}
@media(max-width:370px){.topbar{padding:0 17px}.topbar nav{gap:10px;font-size:9px}.private-label{display:none}.hero h1{font-size:40px}.hero h1 em{font-size:39px}.hero-content{padding-left:22px}.portfolio{padding-left:18px;padding-right:18px}.card-body{padding-left:19px;padding-right:19px}.card-heading h3{font-size:23px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.flow-pulse{display:none}.project-card:hover{transform:none}}
.visual-button{display:block;width:100%;border:0;text-align:initial;padding:0;color:inherit;cursor:pointer;font:inherit}.visual-button.image-screen{padding:18px 15px 0}.visual-button:focus-visible{outline-offset:-4px;outline:3px solid #78b4ed}.visual-button .model-scene{pointer-events:none}
@media(max-width:600px){.visual-button.image-screen{padding:20px 17px 0}}
.card-summary{color:#68798c;font-size:13px}.card-kicker{color:#6d8196;font-size:8px}.shortcut{color:#647e98}.section-heading>p{color:#71869a}.hero p{color:#5f7489}.card-heading h3{overflow-wrap:anywhere}
@media(max-width:600px){.brand small{display:none}.hero{--hero-visual-height:505px}.hero-visual{height:255px}.hero h1{margin-top:19px}.topbar{height:73px}}
/* Client presentation: stronger message, concrete applications and a clear contact path. */
.header-contact{font-size:11px;font-weight:600;display:flex;align-items:center;gap:22px;padding:10px 15px;border:1px solid #dbe4ed;background:#fff8;border-radius:5px;color:#4a718f}.header-contact:hover{background:white}.header-contact span{color:#7ca3c9}.hero{--hero-visual-height:495px}.hero-content{padding-top:54px;max-width:590px}.hero h1{font-size:55px;letter-spacing:-2.5px;margin-top:24px}.hero h1 em{font-size:54px;letter-spacing:-2.2px}.hero p{font-size:14px;line-height:1.85;max-width:400px;color:#566f86}.hero-actions{display:flex;align-items:center;gap:23px}.primary-link{font-size:12px;background:#244b70;color:white;border-color:#244b70;box-shadow:0 5px 20px #284d7120}.primary-link span{color:#bbdcfc}.primary-link:hover{background:#1d4062}.text-link{font-size:11px;color:#5b7e9e;display:flex;align-items:center;gap:11px}.hero-visual{width:73%}.hero-bottom{font-size:7px}.value-strip{margin:0 58px;padding:37px 0;display:grid;grid-template-columns:repeat(3,1fr);gap:45px;border-bottom:1px solid #dce5ee}.value-strip>div{position:relative;padding-left:30px}.value-icon{position:absolute;left:0;top:5px;font-size:8px;letter-spacing:1px;color:#8da5bd}.value-strip h2{font-size:14px;font-weight:550;margin:0 0 7px;letter-spacing:-.2px}.value-strip p{font-size:11px;line-height:1.8;color:#7c90a3;margin:0;max-width:250px}.portfolio{padding-top:43px}.overview-bar{margin-bottom:36px;align-items:flex-start}.overview-bar h2{font-size:30px;letter-spacing:-1px;font-weight:450;max-width:700px}.portfolio-intro{font-size:12px;line-height:1.8;color:#7a8fa3;margin:10px 0 0;max-width:600px}.overview-tools{padding-top:15px}.card-visual{height:235px}.project-card{border-radius:13px;background:linear-gradient(145deg,#fff,#fefefe)}.card-visual.image-art{background:#e9eff5}.card-visual.image-art img{object-fit:cover}.card-body{padding:24px}.card-heading{align-items:flex-start;gap:10px;margin-bottom:14px}.card-heading h3{font-size:25px;line-height:1.18;letter-spacing:-.8px}.card-kicker{font-size:8px;letter-spacing:1.3px}.card-summary{font-size:13px;line-height:1.8;min-height:94px;color:#667b90}.card-actions{margin-top:20px}.card-open{font-size:11px}.card-outcome{font-size:10px;line-height:1.7;color:#4f789d;padding-top:13px;margin-top:15px;border-top:1px solid #eef1f5;display:flex;gap:8px;align-items:flex-start}.card-outcome:before{content:'↗';color:#98b7d5}.project-section{margin-bottom:55px}.section-title h2{font-size:22px}.section-heading>p{font-size:11px}.visual-tag{font-size:6px;letter-spacing:.8px;opacity:.85}.card-visual.image-art .visual-tag{left:auto;right:9px;bottom:9px}.card-heading .badge{margin-top:5px;font-size:7px}.badge-specification{max-width:100px;text-align:center;line-height:1.3}.dialog-heading .badge{font-size:9px}.dialog-detail{color:#58728b;font-size:14px;line-height:1.9}.audience-line{font-size:11px;color:#6d89a2;line-height:1.7;margin-bottom:24px}.audience-line strong{font-size:9px;text-transform:uppercase;letter-spacing:1px;margin-right:9px;color:#99adbf}.sales-note{padding:18px;border:1px solid #dbe6ee;background:linear-gradient(120deg,#edf4fa,#f9fbfd);border-radius:7px;margin-top:24px}.sales-note p{font-size:12px;line-height:1.8;color:#66839c;margin:0}.sales-note>a{margin-top:12px;font-size:11px;display:inline-flex;gap:15px;color:#427aac;font-weight:600}.dialog-visual.image-art{height:315px}.dialog-visual.image-art img{object-fit:cover}.dialog-links{gap:9px}.resource-link{font-size:12px;min-height:48px}.resources-note{font-size:10px;color:#9aafc1}.dialog-footnote{display:flex;justify-content:space-between;align-items:center;font-size:9px}.dialog-footnote>a{font-size:10px;color:#6186a8}.expertise{margin:0 38px 65px;padding:55px 55px;display:grid;grid-template-columns:1.1fr 1fr;gap:85px;background:radial-gradient(ellipse at 12% 20%,#254766,#172b42 70%);color:#f2f7fb;border:1px solid #3c5a72;border-radius:15px;position:relative;overflow:hidden;box-shadow:inset 1px 1px 0 #c2dced29,0 20px 40px #20364e10}.expertise:after{content:'';position:absolute;width:350px;height:350px;right:-180px;top:-180px;border:1px solid #679cc84d;border-radius:50%;box-shadow:0 0 50px #7eb7ed12,0 0 0 50px #709fc809,0 0 0 100px #709fc806;pointer-events:none}.expertise .eyebrow{color:#8caecb;font-size:8px}.expertise h2{font-size:33px;line-height:1.3;letter-spacing:-.9px;font-weight:400;margin:20px 0}.expertise h2 em{font-family:var(--serif);font-weight:400;color:#b7d0e7}.expertise-intro>p{font-size:13px;line-height:1.9;color:#9bb2c7;max-width:420px}.expertise-signature{font-family:var(--serif);font-style:italic;font-size:23px;color:#dce8f4;display:block;margin-top:28px}.expertise-signature small{display:block;font:9px var(--sans);color:#84a0b9;margin-top:6px;letter-spacing:.6px}.expertise-process{padding-top:10px}.expertise-process>div{display:flex;gap:20px;margin-bottom:21px;padding-bottom:20px;border-bottom:1px solid #5d7a9238}.expertise-process>div:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}.expertise-process>div>span{font-size:9px;letter-spacing:1px;color:#719cbe;padding-top:4px}.expertise-process p{font-size:12px;line-height:1.8;color:#87a3bd;margin:0}.expertise-process strong{font-size:13px;font-weight:500;color:#dce8f3;display:block;margin-bottom:3px}.contact-section{margin:0 58px 57px;text-align:center;padding:15px 30px 5px}.contact-section .eyebrow{justify-content:center;font-size:8px}.contact-section h2{font-size:39px;font-weight:400;letter-spacing:-1px;line-height:1.2;margin:17px 0}.contact-section h2 em{font-family:var(--serif);font-weight:400;color:#5a7f9f}.contact-section p{font-size:12px;color:#7990a4;line-height:1.9;max-width:550px;margin:0 auto 25px}.contact-cta{display:inline-flex;align-items:center;justify-content:center;gap:40px;font-size:12px;font-weight:500;color:white;background:#254e72;padding:14px 22px;border-radius:5px;box-shadow:0 5px 15px #315c7a15}.contact-cta:hover{background:#1c3d5d}.contact-details{display:flex;justify-content:center;gap:25px;margin-top:18px;font-size:11px;color:#7892a9}.footer p{font-size:9px;color:#8b9fb1}.guide-panel h2{font-size:21px}.guide-panel>p{font-size:10px}.guide-label{font-size:8px}.guide-results a{font-size:10px}.promotional-caption{font-size:8px;color:#a1b4c5;margin-top:12px}
@media(min-width:1500px){.hero{--hero-visual-height:520px}.hero-content{padding-top:66px}.hero h1{font-size:60px}.hero h1 em{font-size:59px}.card-visual{height:245px}}
@media(max-width:1100px){.hero{--hero-visual-height:475px}.hero-content{max-width:540px;padding-top:50px}.hero h1{font-size:50px}.hero h1 em{font-size:49px}.hero p{font-size:13px;max-width:360px}.hero-visual{width:80%;right:-12%}.hero-actions{gap:17px}.text-link{font-size:10px}.value-strip{margin:0 33px;gap:25px}.value-strip h2{font-size:12px}.value-strip p{font-size:10px}.overview-bar h2{font-size:26px;max-width:450px}.portfolio-intro{font-size:11px;max-width:420px}.overview-tools{padding-top:7px}.card-visual{height:210px}.card-body{padding:20px}.card-heading h3{font-size:24px}.card-summary{min-height:118px;font-size:12px}.card-outcome{min-height:48px}.expertise{margin-left:24px;margin-right:24px;padding:40px;gap:45px}.expertise h2{font-size:29px}.expertise-intro>p{font-size:12px}.expertise-process p{font-size:11px}.contact-section{margin-left:33px;margin-right:33px}.header-contact{font-size:10px;padding:9px 12px;gap:15px}}
@media(max-width:800px){.hero{--hero-visual-height:450px}.hero-content{max-width:470px;padding-top:43px}.hero h1{font-size:44px}.hero h1 em{font-size:43px}.hero p{font-size:12px;max-width:315px}.hero-visual{width:100%;right:-27%}.primary-link{font-size:11px}.text-link{font-size:9px}.value-strip{gap:20px;padding:30px 0}.value-strip>div{padding-left:0}.value-icon{position:static;display:block;margin-bottom:8px}.overview-bar h2{font-size:24px;max-width:390px}.search{width:185px}.section-title h2{font-size:20px}.card-visual{height:210px}.card-heading{flex-direction:column;gap:8px}.card-summary{min-height:100px}.card-outcome{min-height:34px}.expertise{grid-template-columns:1fr;gap:30px;padding:35px}.expertise-intro>p{max-width:none}.expertise-process{display:grid;grid-template-columns:1fr 1fr;gap:22px}.expertise-process>div{margin:0;gap:15px}.expertise-process>div:nth-child(n+3){border:0;padding-bottom:0}.expertise h2{font-size:31px}.contact-section h2{font-size:33px}.contact-section p{font-size:12px}.footer{flex-wrap:wrap}.footer p{max-width:210px;text-align:left}}
@media(max-width:600px){.topbar nav{font-size:10px;gap:13px}.header-contact{display:none}.hero{--hero-visual-height:580px}.hero-content{padding:31px 25px 0;max-width:none}.hero .eyebrow{font-size:6px;letter-spacing:1.4px;white-space:nowrap}.hero h1{font-size:41px;letter-spacing:-1.8px;margin-top:22px}.hero h1 em{font-size:40px;letter-spacing:-1.7px}.hero p{font-size:12px;line-height:1.8;max-width:310px;margin-top:18px;margin-bottom:22px}.hero-actions{gap:17px}.primary-link{font-size:10px;padding:10px 13px;gap:18px}.text-link{font-size:9px;gap:7px}.hero-visual{height:255px;bottom:5px;right:0;width:100%}.hero-bottom{font-size:4.5px;letter-spacing:.65px;left:25px;right:25px}.value-strip{margin:0 25px;padding:27px 0 24px;grid-template-columns:1fr;gap:18px}.value-strip>div{padding-left:26px}.value-icon{position:absolute;top:2px;font-size:7px}.value-strip h2{font-size:13px;margin-bottom:4px}.value-strip p{max-width:none;font-size:11px;line-height:1.7}.portfolio{padding-top:31px}.overview-bar h2{font-size:28px;line-height:1.25;letter-spacing:-.9px;max-width:310px}.portfolio-intro{font-size:12px;margin-top:13px;line-height:1.8}.overview-bar{gap:19px;margin-bottom:28px}.overview-tools{padding-top:0}.search{width:100%}.section-title h2{font-size:20px;line-height:1.35}.section-title .count{font-size:8px}.card-visual{height:230px}.card-body{padding:22px}.card-heading{flex-direction:row;align-items:flex-start}.card-heading h3{font-size:26px}.card-heading .badge{font-size:7px;margin-top:7px}.card-summary{font-size:13px;line-height:1.85;min-height:0}.card-outcome{font-size:11px;min-height:0}.card-actions{margin-top:17px}.card-open{font-size:11px}.project-section{margin-bottom:39px}.expertise{margin:0 14px 40px;padding:29px 25px;border-radius:12px;gap:28px}.expertise .eyebrow{font-size:6px;letter-spacing:1.3px}.expertise h2{font-size:28px;letter-spacing:-.7px;line-height:1.35;margin-top:18px}.expertise-intro>p{font-size:12px;line-height:1.95}.expertise-signature{font-size:23px;margin-top:23px}.expertise-signature small{font-size:8px}.expertise-process{display:flex;flex-direction:column;gap:16px;padding:0}.expertise-process>div{border-bottom:1px solid #5d7a9238!important;padding-bottom:16px!important}.expertise-process>div:last-child{border-bottom:0!important;padding-bottom:0!important}.expertise-process p{font-size:11px}.expertise-process strong{font-size:12px}.contact-section{margin:0 25px 40px;padding:5px 0 0}.contact-section h2{font-size:29px;letter-spacing:-.75px;line-height:1.3;margin-top:17px}.contact-section p{font-size:12px;margin-top:19px}.contact-cta{font-size:11px;padding:13px 18px;gap:27px}.contact-details{flex-direction:column;gap:8px;font-size:11px}.footer{padding-bottom:105px}.footer p{font-size:9px;max-width:100%}.dialog-visual.image-art{height:225px}.audience-line{font-size:11px}.sales-note p{font-size:11px}.dialog-detail{font-size:13px;line-height:1.9}.resource-link{font-size:11px;line-height:1.6}.dialog-footnote{font-size:8px}.dialog-footnote a{font-size:9px}}
@media(max-width:370px){.topbar nav{font-size:9px;gap:11px}.hero h1{font-size:37px}.hero h1 em{font-size:36px}.hero-content{padding-left:21px;padding-right:20px}.hero-actions{gap:11px}.text-link{font-size:8px}.hero p{font-size:11.5px}.hero{--hero-visual-height:565px}.hero .eyebrow{font-size:5.5px;letter-spacing:1px}.card-heading{flex-direction:column}.card-heading .badge{margin-top:0}.expertise h2{font-size:25px}}
.visual-button.image-report{padding:15px 45px 0;background:radial-gradient(ellipse at 40% 50%,#f9fbfe,#dce8f2);display:flex;justify-content:center;overflow:hidden}.report-mount{height:calc(100% + 85px);max-width:260px;border:4px solid #ffffffd9;background:white;border-radius:5px;box-shadow:0 12px 25px #1b3c5c26;overflow:hidden}.report-mount img{height:100%;width:auto;object-fit:contain;display:block}.dialog-visual.image-report{height:345px;display:flex;align-items:flex-start;justify-content:center;background:linear-gradient(135deg,#dce8f1,#f1f6fa);padding-top:20px}.dialog-visual.image-report>img{height:auto;width:300px;max-width:70%;object-fit:contain;box-shadow:0 10px 35px #203c5a20;border-radius:3px}.badge-service{background:#eaf2f9;color:#6488a8}.resource-link.has-thumbnail{min-height:78px;justify-content:flex-start;padding:8px}.resource-thumbnail{flex-shrink:0;width:44px;height:62px;border-radius:2px;object-fit:cover;object-position:top;box-shadow:0 2px 6px #20476b12}.resource-copy{flex:1;line-height:1.5}.resource-copy small{display:block;font-size:8px;text-transform:uppercase;letter-spacing:.6px;margin-top:4px;color:#9aafbf}.resource-link.has-thumbnail>svg{margin-right:4px}.dialog-visual.image-report .visual-tag{left:18px;bottom:15px}.card-visual.image-report .visual-tag{left:12px;right:auto}
@media(max-width:1100px){.visual-button.image-report{padding-left:30px;padding-right:30px}.card-actions{gap:6px}.card-open{font-size:10px;gap:10px}.shortcut{padding:4px 6px}}
@media(max-width:600px){.dialog-visual.image-report{height:260px}.dialog-visual.image-report>img{width:240px}.visual-button.image-report{padding-left:50px;padding-right:50px}.card-open{font-size:11px;gap:12px}.shortcut{padding:7px 9px}.resource-link.has-thumbnail{min-height:80px}.resource-thumbnail{width:44px;height:62px}.resource-copy small{font-size:7px}}
.hero-visual>img{height:calc(100% + 46px);translate:0 -46px}.report-mount{height:calc(100% - 10px);max-width:none}.visual-button.image-report{padding-bottom:8px}.close-dialog{position:sticky;float:right;top:12px;right:auto;margin:12px 12px -50px 0;z-index:5}.dialog-visual{clear:none}
@media(max-width:600px){.hero-visual>img{height:calc(100% + 22px);translate:0 -22px}.close-dialog{top:10px;margin:10px 10px -46px 0}}
/* Reference artwork remains complete in the project gallery. */
.visual-gallery{margin:8px 0 32px;padding-top:23px;border-top:1px solid #e4ebf2}.visual-gallery>.dialog-section-title{margin-bottom:16px}.visual-gallery-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.visual-gallery figure{margin:0;min-width:0}.visual-gallery figure>a{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:4/5;background:#fff;border:1px solid #e1e8ef;border-radius:7px;overflow:hidden}.visual-gallery figure img{display:block;max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain}.gallery-expand{position:absolute;right:9px;bottom:9px;display:grid;place-items:center;width:28px;height:28px;border:1px solid #e0e7ed;border-radius:50%;background:#ffffffe6;color:#5d829f;box-shadow:0 2px 6px #37567310;font-size:14px}.visual-gallery figcaption{font-size:10px;line-height:1.8;color:#7890a4;padding:10px 4px 0}.visual-gallery a:hover{border-color:#a8c4dd}.visual-gallery a:hover .gallery-expand{background:#edf5fc}.card-heading h3:only-child{max-width:100%}
@media(max-width:600px){.visual-gallery-grid{grid-template-columns:1fr;gap:22px}.visual-gallery{margin-top:0;padding-top:21px;margin-bottom:28px}.visual-gallery figcaption{font-size:11px}.visual-gallery figure>a{aspect-ratio:auto}.visual-gallery figure img{width:100%;height:auto}}
/* Opened projects show the complete original visual, including image text. */
.dialog-visual.image-full{height:auto;max-height:none;display:block;overflow:visible;padding:54px 22px 18px;background:linear-gradient(135deg,#edf2f7,#f8fafc);border-bottom:1px solid #e5ebf1}.dialog-visual.image-full .full-image-link{position:relative;display:flex;align-items:center;justify-content:center;width:100%;border-radius:5px}.dialog-visual.image-full .full-image-link>img{display:block;width:auto;height:auto;max-width:100%;max-height:min(64dvh,720px);object-fit:contain;object-position:center;transform:none;border-radius:3px}.full-image-expand{position:absolute;bottom:8px;right:8px;display:grid;place-items:center;width:29px;height:29px;border:1px solid #d8e4ef;background:#ffffffed;color:#6486a6;border-radius:50%;font-size:15px;box-shadow:0 2px 7px #28476a12}.dialog-visual.image-full .visual-tag{bottom:23px;left:27px;right:auto}.card-visual.image-banner{background:#06100d;display:flex;align-items:center;justify-content:center}.card-visual.image-banner>img{width:100%;height:100%;object-fit:contain;object-position:center}
@media(max-width:600px){.dialog-visual.image-full{padding:50px 12px 14px}.dialog-visual.image-full .full-image-link>img{max-height:min(54dvh,520px)}.dialog-visual.image-full .visual-tag{left:17px;bottom:19px;font-size:5px}.full-image-expand{width:26px;height:26px;bottom:6px;right:6px}}
.dialog-visual.image-full .full-image-link{cursor:zoom-in}.dialog-visual.image-full .visual-tag{position:static;display:block;width:max-content;max-width:100%;margin:10px auto 0}

/* Full map in a gently floating application frame. */
.card-visual.image-map{display:flex;align-items:center;justify-content:center;padding:16px 14px;background:linear-gradient(145deg,#e7edf3,#f2f4f7 65%,#e2e7ee)}
.map-mount{width:100%;aspect-ratio:992/465;background:#081321;border:3px solid #ffffffc7;border-radius:5px;overflow:hidden;box-shadow:0 10px 25px #20395125;}
.card-visual.image-map .map-mount img{display:block;width:100%;height:100%;object-fit:contain;object-position:center}

@keyframes map-drift{0%,100%{translate:0 2px}50%{translate:0 -3px}}
/* The supplied robot and empty glass panels share one visual scene. */
.web-scene{position:relative;width:100%;height:100%;overflow:hidden;isolation:isolate;background:#e9e2d7}
.web-scene .web-scene-background{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.web-scene .web-scene-robot{position:absolute;left:7%;bottom:2%;width:auto;height:92%;max-width:58%;object-fit:contain;object-position:bottom;filter:drop-shadow(0 9px 9px #59472f20);transform-origin:50% 90%;transition:transform .7s}
.project-card:hover .web-scene-robot{transform:translateY(-3px)}
.dialog-visual.image-composite .full-image-link{cursor:default}
.dialog-visual.image-composite .web-scene{aspect-ratio:3/2;height:auto;max-width:min(100%,96dvh);margin:auto;border-radius:3px}
.dialog-visual.image-composite .web-scene-background{object-fit:contain}
@media(max-width:600px){.dialog-visual.image-composite .web-scene{max-width:min(100%,81dvh)}}
@media(prefers-reduced-motion:reduce){.map-mount,.project-card:hover .map-mount{animation:none;translate:none;transform:none}.project-card:hover .web-scene-robot{transform:none}}

/* A single portfolio visual uses the full gallery row. */
.visual-gallery figure:only-child{grid-column:1/-1}
.visual-gallery figure:only-child>a{aspect-ratio:auto;padding:18px;background:#f0f3f6}
.visual-gallery figure:only-child img{width:auto;height:auto;max-width:100%;max-height:min(72dvh,820px);object-fit:contain}
@media(max-width:600px){.visual-gallery figure:only-child>a{padding:10px}}

/* A blue beacon and occasional greeting make the guide easy to notice. */
.robot{perspective:500px}
.robot-turn{position:absolute;inset:0;display:block;width:100%;height:100%;transform-origin:50% 48%;transform-style:preserve-3d;animation:robot-orbit 25s ease-in-out infinite;animation-delay:-10s}
.robot-antenna:before{top:-3px;left:-3px;width:8px;height:8px;background:radial-gradient(circle at 40% 35%,#e7f8ff 0 18%,#57ccff 36%,#0781ff 78%);box-shadow:0 0 5px #4cbaff,0 0 12px #168effbb,0 0 20px #168eff55;animation:robot-beacon 3.2s ease-in-out infinite}
.robot-arm{animation:robot-greeting 18s ease-in-out infinite}
@keyframes robot-orbit{0%,72%{transform:rotateY(0deg)}84%,100%{transform:rotateY(360deg)}}
@keyframes robot-greeting{0%,12%,36%,100%{rotate:0deg}17%,25%,33%{rotate:100deg}21%,29%{rotate:60deg}}
@keyframes robot-beacon{0%,100%{box-shadow:0 0 5px #4cbaff,0 0 11px #168effa0,0 0 18px #168eff44}50%{box-shadow:0 0 7px #8ce6ff,0 0 16px #168effdd,0 0 25px #168eff77}}
.motion-paused .robot-turn,.guide-toggle[aria-expanded="true"] .robot-turn{animation:none;transform:none}
@media(prefers-reduced-motion:reduce){.robot-turn{transform:none}.robot-arm{rotate:0deg}}

/* Solid geometric 3D mascot; canvas remains a normal guide button. */
.assistant-widget{right:20px;bottom:10px}
.guide-toggle{width:116px;height:140px}
.robot-3d{display:block;position:relative;width:116px;height:136px;filter:drop-shadow(0 9px 8px #2f4c6628);pointer-events:none}
.robot-3d canvas,.robot-3d-fallback{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}
.robot-3d canvas{opacity:0}
.robot-3d.is-ready canvas{opacity:1}
.robot-3d.is-ready .robot-3d-fallback{display:none}
.guide-panel{bottom:143px;right:5px}
.guide-label{right:110px;top:53px}
@media(max-width:600px){.assistant-widget{right:8px;bottom:6px}.guide-toggle{width:94px;height:114px}.robot-3d{width:94px;height:110px}.guide-panel{bottom:119px;right:0}}

/* APEX thumbnail focuses on the Zagreb map; the opened source stays complete. */
.card-visual.image-map{padding:12px}
.card-visual.image-map .map-mount{height:100%;aspect-ratio:auto}
.card-visual.image-map .map-mount img{object-fit:cover;transform:scale(1.6);transform-origin:66% 60%}

/* The exact female assistant selected from the image preview. */
.guide-toggle{width:126px;height:170px}
.robot-portrait{position:relative;display:block;width:126px;height:164px;pointer-events:none;transform-origin:50% 55%;animation:portrait-float 5.5s ease-in-out infinite}
.robot-portrait-image{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;filter:drop-shadow(0 8px 8px #284b6e25);animation:portrait-light 3.5s ease-in-out infinite}
.guide-panel{bottom:178px;right:5px}
.guide-label{right:124px;top:63px}
@keyframes portrait-float{0%,100%{transform:translateY(0) rotate(-.5deg)}50%{transform:translateY(-5px) rotate(.8deg)}}
@keyframes portrait-light{0%,100%{filter:drop-shadow(0 8px 8px #284b6e25) drop-shadow(0 0 2px #29b4ff22)}50%{filter:drop-shadow(0 8px 8px #284b6e25) drop-shadow(0 0 5px #29b4ff55)}}
.guide-toggle[aria-expanded="true"] .robot-portrait{animation:none;transform:none}
@media(max-width:600px){.guide-toggle{width:104px;height:144px}.robot-portrait{width:104px;height:138px}.guide-panel{bottom:152px;right:0}.footer{padding-bottom:150px}}
@media(prefers-reduced-motion:reduce){.robot-portrait{animation:none;transform:none}.robot-portrait-image{animation:none}}
