/* The desktop is a connected canvas. Mobile keeps its own card rail. */
#canvas{width:min(1420px,calc(100% - 112px));padding:58px 0 100px}
#canvas .node{background:linear-gradient(135deg,#1a2530f5,#101923f5 76%);border:1.5px solid #9aafbf73;border-radius:25px;box-shadow:inset 0 1px 1px #eef8ff26,0 18px 48px #00000030}
#canvas .node::before{background:linear-gradient(125deg,#dceefb66,transparent 48%,#deb18745);border-radius:inherit}
#canvas .intro-stage{display:grid;grid-template-columns:minmax(0,2.15fr) minmax(0,1fr);gap:68px;align-items:start;margin-bottom:150px}
#canvas .intro-stage .hero{width:100%;border-radius:28px}
#canvas .hero-body{grid-template-columns:minmax(0,1.45fr) minmax(180px,.8fr);padding:38px;gap:30px}
#canvas .hero h1{font-size:72px;margin-bottom:24px}
#canvas .professional-role{font-size:11px;margin-bottom:26px}
#canvas #about .hero-description{font-size:25px;line-height:1.4}
#canvas #about .hero-detail,#canvas #about .hero-method{font-size:15px;line-height:1.8}
#canvas #about .hero-proof{font-size:12px;line-height:1.7}
#canvas .portrait-slot{min-height:460px}
#canvas #ai{position:relative;top:auto!important;left:auto;right:auto;width:100%;height:auto;min-height:0;margin:170px 0 0;border-radius:25px}
#canvas #ai .node-content{display:block;height:auto;padding:30px 28px}
#canvas #ai .ai-section-icon{width:34px;height:34px;margin-bottom:22px}
#canvas #ai h2{font-size:30px;line-height:1.14;margin:0 0 26px;letter-spacing:-1px}
#canvas #ai p{font-size:15px;line-height:1.8;margin:0 0 20px}
#canvas #ai .ai-detail-link{font-size:12px;line-height:1.7;gap:12px;align-items:center;margin-top:6px}
#canvas #ai .ai-detail-link svg{flex-shrink:0}
#canvas .career-cluster{grid-template-columns:minmax(0,40fr) minmax(0,49fr);gap:11%;margin-bottom:150px;align-items:start}
#canvas .experience-summary{margin:0}
#canvas .experience-summary .node-content{padding:34px 30px}
#canvas .expertise{margin-top:115px}
#canvas .expertise .node-content{padding:36px 34px}
#canvas .expertise h2{font-size:35px;max-width:440px}
#canvas .secondary-stage{grid-template-columns:minmax(0,45fr) minmax(0,47fr);gap:8%;margin:0 0 160px;align-items:start}
#canvas .secondary-stage #training{position:relative;width:100%;margin:0;left:auto;right:auto;top:auto;min-height:0}
#canvas .secondary-stage #speaking{position:relative;width:100%;margin:120px 0 0;left:auto;right:auto;top:auto}
#canvas #speaking .node-content,#canvas #training .node-content{padding:34px}
#canvas #speaking h2,#canvas #training h2{font-size:31px;line-height:1.18}
#canvas #speaking .material-list{grid-template-columns:1fr;gap:0;margin-top:24px}
#canvas #speaking .material-list>li{margin-top:22px;padding-top:20px}
#canvas .projects-cluster{margin:0 0 100px}
#canvas .project-hub{position:relative;left:auto;top:auto;width:560px;margin:0;border:1.5px solid #9aafbf73;border-radius:25px;background:linear-gradient(135deg,#1a2530f5,#101923f5);box-shadow:inset 0 1px 1px #eef8ff26,0 18px 48px #00000030}
#canvas .project-hub::before{display:block}
#canvas .project-hub .hub-body{padding:34px 38px}
#canvas .project-hub h2{font-size:36px;white-space:nowrap;margin:0 0 18px}
#canvas .project-hub p{font-size:15px;line-height:1.75;margin:0}
#canvas .project-grid{margin:116px 0 0 32px;column-gap:64px;row-gap:110px;align-items:start}
#canvas .project{overflow:visible;border-radius:22px}
#canvas .project:nth-child(3n + 2){margin-top:48px}
#canvas .project .node-bar{min-height:62px;font-size:13px;padding:16px 18px;border-radius:21px 21px 0 0}
#canvas .project .project-category{font-size:10px;max-width:60%}
#canvas .project .case-description{padding:26px 23px 30px}
#canvas .project .case-description h3{font-size:26px}
#canvas .project .case-description>p{font-size:14px;line-height:1.8}
#canvas .archive-node{width:560px;margin:0 0 150px 32px;min-height:112px;padding:27px 32px}
#canvas .archive-title{font-size:30px}
#canvas .contact-footer{width:min(1020px,calc(100% - 180px));margin:0 32px 0 auto;padding:42px;min-height:300px;border-radius:28px}
#canvas .connections{z-index:0;overflow:visible}
#canvas .port{display:none;position:absolute;top:var(--port-y,50%);bottom:auto;width:12px;height:12px;transform:translateY(-50%);margin:0;z-index:4}
#canvas .port.in{left:-6px;right:auto;background:#0b131b;border:2px solid #748997;box-shadow:none}
#canvas .port.out{right:-6px;left:auto;background:#e8a46c;border:2px solid #ffd1a5;box-shadow:0 0 9px #e8a46c24}
#canvas [data-port="about-out"],#canvas [data-port="ai-out"],#canvas [data-port="experience-out"],#canvas [data-port="expertise-about-in"],#canvas [data-port="expertise-ai-in"],#canvas [data-port="expertise-training-in"],#canvas [data-port="expertise-out"],#canvas [data-port="training-in"],#canvas [data-port="training-out"],#canvas [data-port="speaking-in"],#canvas [data-port="speaking-out"],#canvas [data-port="projects-in"],#canvas [data-port="projects-out"],#canvas [data-port^="project-"],#canvas [data-port="archive-in"],#canvas [data-port="archive-out"],#canvas [data-port="contact-in"]{display:block}
#canvas [data-port="expertise-about-in"]{top:8%}
#canvas [data-port="expertise-ai-in"]{top:20%}
#canvas [data-port="expertise-training-in"]{top:55%}
#canvas [data-port="expertise-out"]{top:72%}
#canvas [data-port="training-in"]{top:22%}
#canvas [data-port="training-out"]{top:60%}
#canvas [data-port="speaking-in"]{top:35%}
#canvas [data-port="speaking-out"]{top:70%}
#canvas [data-port="projects-out"]{top:62%}
#canvas .wire{stroke:#c7a07f;stroke-width:1.35;fill:none;opacity:1;vector-effect:non-scaling-stroke}
#canvas #wire-lines{opacity:.53}
@media(min-width:1181px) and (max-width:1350px){#canvas .hero-body{grid-template-columns:minmax(0,1fr) 180px;padding:32px;gap:24px}#canvas .hero h1{font-size:64px}#canvas #about .hero-description{font-size:23px}#canvas .intro-stage{gap:54px}#canvas #ai .node-content{padding:28px 24px}#canvas #ai h2{font-size:27px}#canvas #ai p{font-size:14px}#canvas .project-grid{column-gap:54px}#canvas .project .case-description{padding:24px 18px}}
