
:root{--bg:#06131b;--panel:#0b202b;--panel2:#102b38;--text:#edf8fa;--muted:#9eb8c0;--line:rgba(210,242,246,.12);--accent:#52d6c7;--shadow:0 30px 90px rgba(0,0,0,.35)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}.site-shell{min-height:100vh;overflow:hidden;background:radial-gradient(circle at 74% 5%,rgba(55,164,172,.16),transparent 24%),linear-gradient(#06131b,#071923 55%,#06131b)}
.nav{height:82px;display:flex;align-items:center;justify-content:space-between;max-width:1320px;margin:auto;padding:0 32px;position:relative;z-index:10}.brand{display:flex;align-items:center;gap:13px;font-weight:750;letter-spacing:-.02em}.brand img{width:42px;height:42px}.brand small{display:block;font-size:10px;color:#77cfc5;letter-spacing:.22em;margin-bottom:2px}.nav-links{display:flex;gap:30px;color:#a9c0c6;font-size:14px}.nav-links a:hover{color:white}.nav-actions{display:flex;gap:10px;align-items:center}.ghost-btn,.primary-btn,.icon-btn{border:1px solid var(--line);border-radius:13px;background:rgba(255,255,255,.035);color:white;cursor:pointer;transition:.2s ease}.ghost-btn{padding:11px 16px}.primary-btn{padding:13px 19px;border-color:#5cdfcf;background:#5cdfcf;color:#062027;font-weight:750;box-shadow:0 14px 40px rgba(82,214,199,.18)}.primary-btn:hover{transform:translateY(-2px);filter:brightness(1.04)}
.hero{max-width:1320px;margin:auto;padding:80px 32px 100px;display:grid;grid-template-columns:1.05fr .95fr;gap:70px;align-items:center;min-height:660px}.kicker{display:flex;align-items:center;gap:10px;color:#67d7cb;font-weight:700;font-size:12px;letter-spacing:.17em}.kicker:before{content:"";width:36px;height:1px;background:#67d7cb}.hero h1{font-size:clamp(52px,6vw,88px);line-height:.97;letter-spacing:-.055em;margin:23px 0 26px;max-width:850px}.hero h1 em{font-style:normal;color:transparent;-webkit-text-stroke:1px #68d8cd}.hero-copy{max-width:610px;font-size:18px;line-height:1.72;color:#a9c0c6}.hero-actions{display:flex;gap:13px;margin-top:34px}.hero-meta{display:flex;gap:34px;margin-top:48px;padding-top:27px;border-top:1px solid var(--line)}.metric b{font-size:22px}.metric span{display:block;color:#809ba3;font-size:12px;margin-top:4px;letter-spacing:.08em}.hero-visual{position:relative;height:540px}.orb{position:absolute;width:480px;height:480px;border:1px solid rgba(120,224,215,.2);border-radius:50%;right:10px;top:20px;background:radial-gradient(circle at 48% 45%,rgba(55,199,188,.20),rgba(8,33,43,.03) 53%,transparent 55%);box-shadow:inset 0 0 80px rgba(82,214,199,.06)}.orb:before,.orb:after{content:"";position:absolute;border-radius:50%;border:1px solid rgba(174,234,229,.12);inset:52px}.orb:after{inset:108px}.turbine{position:absolute;right:170px;top:116px;width:160px;height:360px}.tower{position:absolute;left:77px;top:117px;width:7px;height:245px;background:linear-gradient(#e8f5f6,#73949a);clip-path:polygon(40% 0,60% 0,100% 100%,0 100%)}.hub{position:absolute;left:66px;top:96px;width:29px;height:29px;border-radius:50%;background:#58daca;box-shadow:0 0 35px rgba(82,214,199,.55);z-index:2}.blade{position:absolute;left:78px;top:110px;width:8px;height:138px;background:linear-gradient(#eef9fa,#90aab0);transform-origin:4px 0;border-radius:100% 0 50% 20%;animation:spinblade 12s linear infinite}.blade.b2{transform:rotate(120deg)}.blade.b3{transform:rotate(240deg)}@keyframes spinblade{from{rotate:0deg}to{rotate:360deg}}.visual-card{position:absolute;background:rgba(9,27,37,.78);border:1px solid rgba(170,230,227,.15);border-radius:20px;backdrop-filter:blur(18px);box-shadow:var(--shadow)}.visual-card.top{right:0;top:68px;width:220px;padding:18px}.visual-card.bottom{left:0;bottom:40px;width:260px;padding:20px}.visual-card .label{font-size:10px;letter-spacing:.17em;color:#7fded4}.visual-card strong{display:block;font-size:22px;margin:8px 0}.mini-chart{height:48px;margin-top:10px;background:linear-gradient(to top,rgba(82,214,199,.18),transparent),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='50'%3E%3Cpath d='M0 42 C25 40 28 18 55 29 S90 8 113 24 S150 38 175 13 S205 25 220 4' fill='none' stroke='%2352d6c7' stroke-width='2'/%3E%3C/svg%3E") center/100% 100% no-repeat}.status-row{display:flex;justify-content:space-between;align-items:center;color:#adc2c7;font-size:12px}.dot{width:8px;height:8px;border-radius:50%;background:#5cdfcf;box-shadow:0 0 12px #5cdfcf}.section{max-width:1320px;margin:auto;padding:100px 32px}.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:38px}.section-head h2{font-size:46px;letter-spacing:-.045em;margin:8px 0}.section-head p{max-width:520px;color:#91aab1;line-height:1.7}.course-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:20px}.course-card{grid-column:span 4;position:relative;border-radius:25px;overflow:hidden;border:1px solid var(--line);background:#0b202b;min-height:430px;transition:.25s ease;cursor:pointer}.course-card:nth-child(1),.course-card:nth-child(2){grid-column:span 6}.course-card:hover{transform:translateY(-6px);border-color:rgba(120,224,215,.35);box-shadow:0 32px 80px rgba(0,0,0,.26)}.course-cover{height:230px;background-size:cover;background-position:center;position:relative}.course-cover:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 45%,#0b202b)}.course-content{padding:4px 25px 26px}.course-topline{display:flex;justify-content:space-between;color:#7d989f;font-size:11px;letter-spacing:.09em}.course-content h3{font-size:25px;line-height:1.15;letter-spacing:-.03em;margin:15px 0 12px}.course-content p{color:#91a9b0;line-height:1.6;font-size:14px;margin:0 0 22px}.course-footer{display:flex;justify-content:space-between;align-items:center}.course-level{display:flex;gap:7px;align-items:center;font-size:12px;color:#c6d8dc}.course-level:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--card-accent)}.arrow-link{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);font-size:20px;transition:.2s}.course-card:hover .arrow-link{background:var(--card-accent);border-color:var(--card-accent);color:#071820}.method{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;align-items:center}.method-panel{padding:40px;border:1px solid var(--line);border-radius:28px;background:linear-gradient(145deg,rgba(20,53,67,.7),rgba(7,24,33,.9));position:relative;overflow:hidden}.method-panel:after{content:"360°";position:absolute;right:-20px;bottom:-50px;font-size:160px;font-weight:800;color:rgba(255,255,255,.025)}.steps{display:grid;gap:16px}.step{display:grid;grid-template-columns:52px 1fr;gap:18px;padding:20px;border:1px solid transparent;border-radius:18px}.step:hover{border-color:var(--line);background:rgba(255,255,255,.025)}.step-number{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:#123541;color:#66dacc;font-weight:800}.step h3{margin:1px 0 7px}.step p{margin:0;color:#8ea8af;line-height:1.55}.cta{margin:60px auto 90px;max-width:1256px;border:1px solid rgba(105,220,210,.22);border-radius:30px;padding:52px;display:flex;justify-content:space-between;align-items:center;background:radial-gradient(circle at 83% 40%,rgba(82,214,199,.16),transparent 25%),#0a202b}.cta h2{font-size:38px;margin:0 0 10px;letter-spacing:-.04em}.cta p{margin:0;color:#93abb2}.footer{max-width:1320px;margin:auto;padding:32px;border-top:1px solid var(--line);display:flex;justify-content:space-between;color:#78949b;font-size:12px}
/* Course viewer */
.course-footer{justify-content:flex-end}

/* Course covers derived from the active 360-degree scenes */
.course-cover{height:205px;margin:0;background-size:100% 100%;background-position:center;border-radius:25px 25px 0 0}
.course-cover:after{background:linear-gradient(to right,#0b202b 0,transparent 12%,transparent 88%,#0b202b 100%),linear-gradient(to bottom,#0b202b 0,transparent 14%,transparent 65%,#0b202b 100%)}
.course-content{position:relative;margin-top:0}
.viewer-page{height:100vh;min-height:700px;background:#06131b;overflow:hidden}.viewer-topbar{height:70px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;border-bottom:1px solid var(--line);background:#071923}.viewer-brand{display:flex;align-items:center;gap:12px}.viewer-brand img{width:36px}.viewer-brand b{font-size:14px}.viewer-brand span{display:block;color:#6f9199;font-size:10px;letter-spacing:.11em;margin-top:2px}.viewer-actions{display:flex;gap:9px}.icon-btn{height:40px;padding:0 14px}.viewer-layout{height:calc(100vh - 70px);display:grid;grid-template-columns:310px 1fr 360px}.scene-sidebar{border-right:1px solid var(--line);padding:24px 17px;background:#081a24;overflow:auto}.back-link{display:inline-flex;align-items:center;gap:7px;color:#82a0a8;font-size:12px;margin:0 8px 28px}.course-mini{padding:0 8px 22px;border-bottom:1px solid var(--line)}.course-mini .module{color:var(--accent);letter-spacing:.17em;font-size:10px;font-weight:750}.course-mini h1{font-size:24px;line-height:1.12;letter-spacing:-.035em;margin:10px 0}.progress-wrap{display:flex;align-items:center;gap:12px;color:#86a1a8;font-size:11px}.progress-track{height:5px;background:#17333e;border-radius:99px;flex:1;overflow:hidden}.progress-bar{height:100%;width:0;background:var(--accent);border-radius:99px;transition:.3s}.scene-list{display:grid;gap:7px;margin-top:22px}.scene-item{border:0;background:transparent;color:#98b0b6;text-align:left;padding:14px 12px;border-radius:15px;display:grid;grid-template-columns:34px 1fr;gap:10px;cursor:pointer}.scene-item:hover{background:rgba(255,255,255,.035)}.scene-item.active{background:#102e3b;color:white}.scene-index{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;border:1px solid var(--line);font-size:11px}.scene-item.active .scene-index{background:var(--accent);color:#062027;border-color:var(--accent);font-weight:800}.scene-name{font-size:13px;font-weight:650;line-height:1.35}.scene-location{font-size:10px;color:#6d8c94;margin-top:3px}.panorama-stage{position:relative;min-width:0;background:#02080c;overflow:hidden}.pano-fallback{position:absolute;inset:0;background-position:center;background-size:cover;filter:saturate(.92);transform:scale(1.015)}.pano-canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:grab}.pano-canvas:active{cursor:grabbing}.pano-shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(to bottom,rgba(0,9,14,.45),transparent 20%,transparent 70%,rgba(0,8,12,.45))}.scene-heading{position:absolute;left:28px;top:26px;pointer-events:none}.scene-heading .eyebrow{font-size:10px;letter-spacing:.18em;color:var(--accent);font-weight:800}.scene-heading h2{font-size:31px;letter-spacing:-.04em;margin:8px 0 4px;text-shadow:0 2px 18px rgba(0,0,0,.45)}.scene-heading p{margin:0;color:#c0d3d7;font-size:12px}.demo-badge{position:absolute;right:22px;top:22px;background:rgba(4,16,22,.72);border:1px solid rgba(255,255,255,.16);padding:9px 12px;border-radius:999px;font-size:10px;letter-spacing:.1em;color:#c5dadd;backdrop-filter:blur(10px)}.pano-controls{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);display:flex;align-items:center;gap:7px;background:rgba(4,15,21,.7);border:1px solid rgba(255,255,255,.14);border-radius:16px;padding:7px;backdrop-filter:blur(12px)}.pano-controls button{width:39px;height:39px;border:0;border-radius:11px;background:transparent;color:white;cursor:pointer;font-size:18px}.pano-controls button:hover{background:rgba(255,255,255,.1)}.hotspot{position:absolute;z-index:5;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;transition:opacity .1s}.hotspot.hidden{opacity:0;pointer-events:none}.hotspot-dot{width:49px;height:49px;border-radius:50%;display:grid;place-items:center;background:rgba(7,24,32,.80);border:1px solid rgba(255,255,255,.45);box-shadow:0 10px 30px rgba(0,0,0,.35),0 0 0 8px rgba(255,255,255,.06);font-size:20px;animation:pulse 2.6s infinite}.hotspot.next .hotspot-dot{background:var(--accent);color:#062027;border-color:var(--accent)}.hotspot-label{font-size:10px;padding:6px 9px;border-radius:8px;background:rgba(4,14,20,.80);white-space:nowrap;color:white}@keyframes pulse{50%{box-shadow:0 10px 30px rgba(0,0,0,.35),0 0 0 13px rgba(255,255,255,0)}}.learning-panel{border-left:1px solid var(--line);background:#091c26;padding:25px 24px;overflow:auto}.panel-tabs{display:flex;gap:5px;padding:5px;background:#0e2834;border-radius:14px}.panel-tabs button{flex:1;border:0;background:transparent;color:#78979f;padding:10px;border-radius:10px;font-size:11px;font-weight:700;cursor:pointer}.panel-tabs button.active{background:#173b49;color:white}.panel-view{display:none}.panel-view.active{display:block}.panel-kicker{color:var(--accent);font-weight:800;font-size:10px;letter-spacing:.16em;margin-top:28px}.learning-panel h3{font-size:24px;letter-spacing:-.035em;margin:10px 0 17px}.task-card,.note-card{padding:18px;border-radius:18px;border:1px solid var(--line);background:rgba(255,255,255,.025);color:#aac0c5;line-height:1.65;font-size:13px}.note-card{margin-top:12px;background:rgba(82,214,199,.045)}.note-card b{color:#d9eaed}.complete-btn{width:100%;margin-top:16px;border:0;border-radius:14px;padding:15px;background:var(--accent);color:#062027;font-weight:800;cursor:pointer}.complete-btn.done{background:#173b46;color:#8cb1b8}.objective-list{display:grid;gap:11px;margin-top:18px}.objective{display:grid;grid-template-columns:25px 1fr;gap:10px;color:#a5bcc1;font-size:13px;line-height:1.55}.objective:before{content:"✓";width:23px;height:23px;border-radius:8px;background:rgba(82,214,199,.1);color:var(--accent);display:grid;place-items:center;font-size:11px}.scene-map{margin-top:20px;display:grid;gap:8px}.map-row{padding:13px;border:1px solid var(--line);border-radius:13px;font-size:12px;color:#91acb2}.map-row.current{border-color:var(--accent);color:white}.help-overlay{position:fixed;inset:0;background:rgba(1,8,12,.74);z-index:50;display:none;align-items:center;justify-content:center;padding:25px;backdrop-filter:blur(8px)}.help-overlay.show{display:flex}.help-card{width:min(530px,100%);background:#0c2531;border:1px solid var(--line);border-radius:25px;padding:30px;box-shadow:var(--shadow)}.help-card h2{margin:0 0 12px}.help-card p{color:#9db6bc;line-height:1.6}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0}.help-chip{border:1px solid var(--line);border-radius:14px;padding:14px;color:#b9cdd1;font-size:12px}.toast{position:fixed;left:50%;bottom:30px;transform:translate(-50%,20px);background:#eafafa;color:#082128;padding:12px 18px;border-radius:12px;font-size:12px;font-weight:700;opacity:0;pointer-events:none;transition:.25s;z-index:70}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:1050px){.hero{grid-template-columns:1fr;padding-top:45px}.hero-visual{display:none}.course-card,.course-card:nth-child(1),.course-card:nth-child(2){grid-column:span 6}.method{grid-template-columns:1fr}.viewer-layout{grid-template-columns:245px 1fr}.learning-panel{position:fixed;right:0;top:70px;bottom:0;width:360px;z-index:20;transform:translateX(100%);transition:.25s;box-shadow:-20px 0 60px rgba(0,0,0,.35)}.learning-panel.open{transform:none}}
@media(max-width:720px){.nav-links{display:none}.nav{padding:0 18px}.hero{padding:55px 20px 70px}.hero h1{font-size:50px}.hero-meta{gap:20px;flex-wrap:wrap}.section{padding:75px 20px}.section-head{display:block}.section-head h2{font-size:38px}.course-card,.course-card:nth-child(1),.course-card:nth-child(2){grid-column:span 12}.cta{margin:20px 20px 65px;padding:32px;display:block}.cta .primary-btn{display:inline-block;margin-top:24px}.footer{margin:0 20px;padding:24px 0;gap:20px}.viewer-layout{grid-template-columns:1fr}.scene-sidebar{position:fixed;left:0;top:70px;bottom:0;width:290px;z-index:30;transform:translateX(-100%);transition:.25s;box-shadow:20px 0 60px rgba(0,0,0,.4)}.scene-sidebar.open{transform:none}.viewer-brand b{max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scene-heading{left:18px;top:18px}.scene-heading h2{font-size:25px}.demo-badge{top:auto;bottom:82px;right:12px}.learning-panel{width:min(360px,100%)}.help-grid{grid-template-columns:1fr}.nav-actions .ghost-btn{display:none}}

/* Interactive panorama object hotspots */
.object-hotspot{position:absolute;z-index:7;transform:translate(-50%,-50%);display:flex;align-items:center;gap:9px;border:0;background:transparent;color:white;cursor:pointer;padding:8px}.object-hotspot.hidden{opacity:0;pointer-events:none}.object-hotspot-marker{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:#061c24;border:2px solid rgba(255,255,255,.82);font-size:20px;font-weight:800;box-shadow:0 8px 24px rgba(0,0,0,.38),0 0 0 7px rgba(255,255,255,.09);transition:transform .2s,box-shadow .2s}.object-hotspot-label{max-width:170px;padding:7px 10px;border-radius:9px;background:rgba(4,16,22,.82);border:1px solid rgba(255,255,255,.16);font-size:10px;font-weight:750;letter-spacing:.035em;white-space:nowrap;backdrop-filter:blur(10px);opacity:.88;transition:.2s}.object-hotspot:hover .object-hotspot-marker,.object-hotspot:focus-visible .object-hotspot-marker{transform:scale(1.12);box-shadow:0 8px 28px rgba(0,0,0,.42),0 0 0 12px rgba(255,255,255,.05)}.object-hotspot:hover .object-hotspot-label,.object-hotspot:focus-visible .object-hotspot-label{opacity:1;background:rgba(5,24,32,.95)}
.object-popup-overlay{position:fixed;inset:0;z-index:80;display:none;align-items:center;justify-content:center;padding:24px;background:rgba(1,8,12,.76);backdrop-filter:blur(9px)}.object-popup-overlay.show{display:flex}.object-popup-card{position:relative;width:min(540px,100%);max-height:calc(100vh - 48px);overflow:auto;padding:34px;border-radius:26px;background:#0c2531;border:1px solid rgba(255,255,255,.14);box-shadow:0 28px 90px rgba(0,0,0,.5)}.object-popup-close{position:absolute;right:17px;top:17px;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:#123541;color:white;font-size:22px;cursor:pointer}.object-popup-kicker{padding-right:50px;color:var(--accent);font-size:10px;font-weight:800;letter-spacing:.17em}.object-popup-card h2{margin:10px 45px 14px 0;font-size:30px;letter-spacing:-.04em}.object-popup-description{margin:0;color:#b1c7cc;line-height:1.7}.object-popup-section{margin:24px 0 26px;padding:18px;border:1px solid var(--line);border-radius:17px;background:rgba(255,255,255,.025)}.object-popup-section h3{margin:0 0 12px;font-size:14px}.object-popup-section ul{margin:0;padding-left:20px;color:#a9c0c5;line-height:1.65;font-size:13px}.object-popup-section li+li{margin-top:7px}.object-popup-card .primary-btn{width:100%;border:0;cursor:pointer}
@media(max-width:720px){.object-hotspot-label{display:none}.object-hotspot-marker{width:34px;height:34px}.object-popup-card{padding:28px 22px}.object-popup-card h2{font-size:25px}}

/* Single-scene course layout */
.viewer-layout{grid-template-columns:minmax(0,1fr) 360px}
@media(max-width:1050px){.viewer-layout{grid-template-columns:1fr}}

/* Street-view navigation between panoramas */
.navigation-hotspot{z-index:8;border:0;background:transparent;color:white;padding:0}
.navigation-hotspot .hotspot-dot{width:58px;height:58px;font-size:25px;border-width:2px;box-shadow:0 12px 34px rgba(0,0,0,.42),0 0 0 9px rgba(255,255,255,.09)}
.navigation-hotspot:hover .hotspot-dot,.navigation-hotspot:focus-visible .hotspot-dot{transform:scale(1.1);filter:brightness(1.08)}
.navigation-hotspot .hotspot-label{font-size:11px;font-weight:750;padding:7px 11px}
@media(max-width:720px){.navigation-hotspot .hotspot-dot{width:50px;height:50px}.navigation-hotspot .hotspot-label{font-size:10px}}
/* Developer-only hotspot calibration: enable with ?calibrate=1 */
.calibration-panel{position:absolute;z-index:25;left:18px;bottom:18px;width:300px;padding:15px;border:1px solid rgba(255,255,255,.18);border-radius:16px;background:rgba(5,20,28,.92);backdrop-filter:blur(14px);box-shadow:0 18px 55px rgba(0,0,0,.4);font-size:12px}.calibration-panel[hidden]{display:none}.calibration-title{color:var(--accent);font-size:10px;font-weight:800;letter-spacing:.15em;margin-bottom:11px}.calibration-panel label{display:block;color:#a8c0c6;margin-bottom:5px}.calibration-panel select,.calibration-panel textarea{width:100%;border:1px solid rgba(255,255,255,.16);border-radius:10px;background:#0b2935;color:white;padding:9px}.calibration-panel p{color:#9bb4ba;line-height:1.45;margin:10px 0}.calibration-readout{padding:9px 10px;border-radius:10px;background:rgba(82,214,199,.08);color:#dff8f5;margin-bottom:9px;font-variant-numeric:tabular-nums}.calibration-panel textarea{height:74px;resize:none;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px}.calibration-actions{display:flex;gap:8px;margin-top:9px}.calibration-actions button{flex:1;border:1px solid rgba(255,255,255,.16);border-radius:9px;background:#123541;color:white;padding:9px;cursor:pointer}.calibration-actions button:first-child{background:var(--accent);color:#062027;border-color:var(--accent);font-weight:750}.calibration-mode .pano-canvas{cursor:crosshair}
