/* Portfolio UI system · applied after legacy page styles */
:root{--ui-ink:#03060a;--ui-panel:rgba(8,17,28,.86);--ui-panel-strong:rgba(11,24,38,.96);--ui-line:rgba(125,203,255,.16);--ui-blue:#099cff;--ui-cyan:#00ffcc;--ui-text:#e8f1f7;--ui-muted:#9baec0;--ui-radius:18px;--ui-shadow:0 18px 48px rgba(0,0,0,.34)}
body{color:var(--ui-text);background:radial-gradient(circle at 14% 12%,rgba(9,156,255,.13),transparent 24%),radial-gradient(circle at 88% 18%,rgba(123,97,255,.1),transparent 23%),linear-gradient(180deg,#07111b,#03060a)}
body main{position:relative;z-index:1}
.container,.cad-page,.planet-page,.weather-page,.robot-game-page,.space3d-single-page,.space-duel-page,.campaign-page,.text-ai-page{width:min(100% - 28px,1180px)!important;margin-left:auto!important;margin-right:auto!important}
.container,.cad-page,.planet-page,.weather-page,.robot-game-page,.space3d-single-page,.space-duel-page,.campaign-page,.text-ai-page{padding-top:32px!important;padding-bottom:64px!important}
.premium-page-hero,.premium-project-hero,.planet-intro,.weather-intro,.robot-game-intro,.space3d-intro,.sd-hero,.campaign-hero,.text-ai-intro,.cad-titlebar{border:1px solid var(--ui-line)!important;border-radius:var(--ui-radius)!important;background:linear-gradient(135deg,rgba(9,156,255,.09),transparent 34%),var(--ui-panel)!important;box-shadow:var(--ui-shadow)!important}
.planet-intro,.weather-intro,.robot-game-intro,.space3d-intro,.sd-hero,.campaign-hero,.text-ai-intro,.cad-titlebar{padding:26px!important;margin-bottom:18px!important}
.premium-page-hero h1,.premium-project-hero h1,.planet-intro h1,.weather-intro h1,.robot-game-intro h1,.space3d-intro h1,.sd-hero h1,.campaign-hero h1,.text-ai-intro h1,.cad-titlebar h1{color:var(--ui-text)!important;letter-spacing:-.035em}
.card,.panel-blue,.panel-purple,.sd-panel,.drone-controls,.planet-studio,.weather-app,.climate-section,.robot-game-description,.space3d-description,.campaign-engine-shell,.cad-toolbar,.cad-workbench{border:1px solid var(--ui-line)!important;border-radius:var(--ui-radius)!important;background:var(--ui-panel)!important;box-shadow:var(--ui-shadow)!important}
.card:hover{border-color:rgba(0,255,204,.3)!important;background:var(--ui-panel-strong)!important}
button,.btn,.text-ai-primary,.planet-primary,.campaign-button,.cad-btn,.cad-tool{border-radius:10px!important;border:1px solid rgba(86,199,255,.28)!important;background:rgba(86,199,255,.1)!important;color:var(--ui-text)!important;box-shadow:none!important}
button:hover,.btn:hover,.text-ai-primary:hover,.planet-primary:hover,.campaign-button:hover,.cad-btn:hover,.cad-tool:hover{border-color:rgba(0,255,204,.55)!important;background:linear-gradient(135deg,var(--ui-cyan),var(--ui-blue))!important;color:#021015!important}
input,select,textarea{border:1px solid rgba(125,203,255,.22)!important;border-radius:10px!important;background:rgba(2,8,18,.72)!important;color:var(--ui-text)!important}
input:focus,select:focus,textarea:focus{outline:0!important;border-color:var(--ui-cyan)!important;box-shadow:0 0 0 3px rgba(0,255,204,.12)!important}
.site-shell-footer{border-color:var(--ui-line)!important;background:var(--ui-panel)!important;box-shadow:var(--ui-shadow)!important}
@media(max-width:760px){.container,.cad-page,.planet-page,.weather-page,.robot-game-page,.space3d-single-page,.space-duel-page,.campaign-page,.text-ai-page{width:min(100% - 18px,1180px)!important;padding-top:20px!important}.planet-intro,.weather-intro,.robot-game-intro,.space3d-intro,.sd-hero,.campaign-hero,.text-ai-intro,.cad-titlebar{padding:18px!important}}

/* v20: consistent project maturity and first-use guidance */
body.cad-body .cad-titlebar::after,body.robot-game-body .robot-game-intro::after,body.space-duel-body .sd-hero::after,body.chess3d-page .chess3d-hero::after,body.drone-airbase-body .text-ai-intro::after{display:inline-flex;align-items:center;margin-top:14px;padding:5px 9px;border:1px solid rgba(0,255,204,.28);border-radius:999px;color:#9effea;background:rgba(0,255,204,.08);font-size:.66rem;font-weight:900;letter-spacing:.09em}
body.cad-body .cad-titlebar::after,body.robot-game-body .robot-game-intro::after,body.space-duel-body .sd-hero::after,body.chess3d-page .chess3d-hero::after{content:'● INTERACTIVE DEMO · READY TO PLAY'}
body.drone-airbase-body .text-ai-intro::after{content:'● EXPERIMENTAL TEST · FEEDBACK WELCOME';color:#ffe1a4;border-color:rgba(255,212,121,.32);background:rgba(255,212,121,.08)}
html[lang="fr"] body.cad-body .cad-titlebar::after,html[lang="fr"] body.robot-game-body .robot-game-intro::after,html[lang="fr"] body.space-duel-body .sd-hero::after,html[lang="fr"] body.chess3d-page .chess3d-hero::after{content:'● DÉMO INTERACTIVE · PRÊTE À JOUER'}html[lang="fr"] body.drone-airbase-body .text-ai-intro::after{content:'● TEST EXPÉRIMENTAL · COMMENTAIRES BIENVENUS'}
.drone-spec+.drone-spec{margin-top:-6px}
@media(max-width:760px){.cad-toolbar{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto!important;overscroll-behavior-x:contain;scroll-snap-type:x proximity;padding:10px!important}.cad-toolbar .cad-tool-group{flex:0 0 auto;scroll-snap-align:start}.sd-side,.chess3d-panel{max-height:none!important}.robot-control-hint{flex-wrap:wrap!important;gap:8px!important}.drone-controls{gap:12px!important}}
/* Face-recognition project preview */
.face-private-tab{display:none!important}.face-access-granted .face-private-tab{display:inline-flex!important}
.face-project-preview{position:relative;min-height:260px;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 50% 42%,rgba(41,220,255,.18),transparent 32%),linear-gradient(135deg,#071126,#111846 58%,#07101d)}
.face-project-preview:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(91,224,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(91,224,255,.08) 1px,transparent 1px);background-size:28px 28px}
.face-preview-frame{position:relative;width:128px;height:154px;border:1px solid rgba(92,228,255,.52);border-radius:52% 52% 44% 44%;box-shadow:0 0 34px rgba(51,213,255,.2)}
.face-preview-frame b{position:absolute;left:25%;right:25%;top:34%;height:8px;border-top:2px solid #70eaff;border-bottom:2px solid #70eaff}
.face-preview-frame i{position:absolute;width:24px;height:24px;border-color:#71edff}.face-preview-frame i:nth-child(1){left:-18px;top:-18px;border-left:3px solid;border-top:3px solid}.face-preview-frame i:nth-child(2){right:-18px;top:-18px;border-right:3px solid;border-top:3px solid}.face-preview-frame i:nth-child(3){left:-18px;bottom:-18px;border-left:3px solid;border-bottom:3px solid}.face-preview-frame i:nth-child(4){right:-18px;bottom:-18px;border-right:3px solid;border-bottom:3px solid}
.face-preview-scan{position:absolute;left:18%;right:18%;height:2px;top:25%;background:#7ef2ff;box-shadow:0 0 16px #42dfff;animation:face-preview-scan 2.8s ease-in-out infinite alternate}
.face-project-preview em{position:absolute;bottom:18px;font:700 11px/1.2 monospace;letter-spacing:.14em;color:#8feeff}
@keyframes face-preview-scan{to{top:72%}}
