:root{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color-scheme:dark;--bg:#060b1c;--paper:#101b33;--paper2:#11213b;--edge:#2c456a;--ink:#f1f7ff;--muted:#9fb5d3;--cyan:#63e9ed;--gold:#ffd187;--violet:#b7a7ff;--green:#77e4b7;--shadow:0 15px 55px #0307167a}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:radial-gradient(ellipse at 84% -15%,#173971 0,transparent 43%),radial-gradient(ellipse at -10% 36%,#242657 0,transparent 45%),var(--bg);min-height:100vh}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}a{color:var(--cyan)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--gold);outline-offset:3px}h1,h2,h3,p{margin-top:0}.skip{position:absolute;top:-80px;left:8px;z-index:10;padding:10px;background:#fff;color:#000}.skip:focus{top:8px}.topnav{max-width:1430px;margin:auto;padding:19px 27px;display:flex;justify-content:space-between;align-items:center;gap:15px}.brand{text-decoration:none;color:var(--ink);display:flex;align-items:center;gap:11px;font-size:22px;letter-spacing:-1px;font-weight:920}.brand-symbol{font-size:33px;background:linear-gradient(125deg,#304c8e,#45d5ca);border-radius:14px;width:49px;height:49px;text-align:center;line-height:49px}.brand .accent{color:var(--cyan)}.brand small{display:block;font-size:10px;letter-spacing:2px;font-weight:700;color:var(--muted)}.nav-right{display:flex;align-items:center;gap:17px}.status{font-size:10px;letter-spacing:1px;color:var(--muted);font-weight:850}.status i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 10px var(--green)}.top-link{font-size:13px}.icon-button,.scene-toolbar button{border:1px solid var(--edge);background:#172846;color:var(--ink);border-radius:11px;padding:11px}.icon-button{min-width:42px}main{max-width:1430px;margin:auto;padding:12px 27px 80px}.eyebrow{font-weight:850;text-transform:uppercase;font-size:11px;letter-spacing:1.8px;color:var(--cyan)}.intro-panel{padding:27px 36px;display:flex;justify-content:space-between;align-items:center;gap:30px;min-height:214px;border:1px solid #43568b66;border-radius:25px;background:linear-gradient(115deg,#142443e6,#101b36e6 50%,#1f244be6);position:relative;overflow:hidden}.intro-panel:before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 85% 40%,#5681f044,transparent 31%);pointer-events:none}.intro-panel>*{position:relative}.intro-panel h1{font-size:clamp(38px,5vw,75px);letter-spacing:-2px;font-weight:950;line-height:1.04;margin:10px 0}.intro-panel h1 em{font-style:normal;color:var(--cyan)}.intro-panel h1 span{color:var(--gold)}.intro-panel p{color:#bbcdea;max-width:780px;font-size:15px;line-height:1.6;margin-bottom:0}.intro-side{display:flex;flex-direction:column;align-items:center;gap:5px;min-width:145px;font-weight:850}.intro-side .star-icon{font-size:79px;color:var(--gold);text-shadow:0 0 34px #ffd18788}.intro-side small{font-size:10px;letter-spacing:1.4px;color:var(--muted)}.mission-bar{display:flex;flex-wrap:wrap;align-items:end;gap:14px;margin:18px 0;padding:17px;background:#111e38aa;border:1px solid #334a7159;border-radius:19px}.field-wrap{display:grid;gap:6px;flex:1 1 170px}.field-wrap label,.mission-stat small{font-size:10px;color:var(--muted);font-weight:850;letter-spacing:1px}.field-wrap select{min-height:44px;max-width:100%;border:1px solid #4b638a;color:var(--ink);background:#10203c;padding:10px;border-radius:10px}.mission-stat{display:grid;gap:5px;padding:6px 12px;flex:0 1 135px}.mission-stat strong{font-size:20px;color:var(--gold)}.subtle-btn{border:1px solid #4e6689;background:#1a2d4c;color:var(--ink);border-radius:11px;padding:10px 13px;min-height:43px;font-weight:750}.subtle-btn:hover,.scene-toolbar button:hover{background:#264269}.progress-track{margin:20px 0}.progress-track ol{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;padding:0;margin:0;list-style:none}.progress-track button{border:1px solid #385579;background:#10203c;color:#8a9fbe;border-radius:13px;padding:12px 8px;min-height:74px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;width:100%;position:relative}.progress-track button strong{font-size:12px}.progress-track button .chamber-icon{font-size:24px}.progress-track button.current{background:linear-gradient(135deg,#174e65,#24376a);border-color:#62edf0;box-shadow:inset 0 0 16px #45e9f522}.progress-track button.current strong{color:#fff}.progress-track button.done{border-color:#3da891;color:#aaf6cd}.progress-track button:disabled{opacity:.45}.experience-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(335px,1fr);gap:18px;align-items:stretch}.scene-panel,.puzzle-panel{background:linear-gradient(155deg,#132242,#101a35);border:1px solid #3a547d;border-radius:23px;box-shadow:var(--shadow);overflow:hidden}.scene-panel{padding:19px}.scene-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 15px}.scene-top h2{font-size:20px;margin:5px 0 0}.render-status{border:1px solid #446083;color:#9fdaec;padding:6px 10px;border-radius:99px;font-size:11px;white-space:nowrap}.scene-viewport{position:relative;overflow:hidden;border-radius:17px;min-height:360px;aspect-ratio:1.31;background:linear-gradient(160deg,#0c1d35,#0b1426);border:1px solid #49668a}.scene-viewport canvas{display:block;width:100%;height:100%;position:absolute;inset:0;touch-action:none;outline-offset:-4px}.world-hotspot{position:absolute;transform:translate(-50%,-50%);min-width:102px;max-width:145px;padding:10px;background:#111e38e8;border:2px solid var(--gold);border-radius:15px;color:var(--gold);font-weight:850;font-size:20px;box-shadow:0 0 25px #ffc87548;z-index:2}.world-hotspot span{font-size:10px;letter-spacing:1.4px;display:block}.world-hotspot:hover{filter:brightness(1.2)}.door-spot{border-color:var(--cyan);color:var(--cyan);box-shadow:0 0 27px #57e7ea4a}.world-hotspot.locked{opacity:.55}.scene-overlay{position:absolute;bottom:54px;left:50%;transform:translateX(-50%);max-width:95%;min-width:180px;padding:9px 14px;border-radius:11px;background:#0b1321e8;border:1px solid #567295;color:#e8f5ff;text-align:center;font-size:13px;pointer-events:none}.scene-overlay:empty{display:none}.camera-helper{position:absolute;bottom:8px;left:10px;right:10px;pointer-events:none;color:#a9c5e0;font-size:11px;text-align:center;text-shadow:0 1px 5px #000}.scene-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}.camera-buttons{display:flex;gap:6px}.camera-buttons button{padding:7px 14px}.scene-legend{font-size:12px;color:var(--muted)}.legend-dot{width:9px;height:9px;border-radius:50%;display:inline-block;margin:0 4px 0 7px}.legend-dot.gold{background:var(--gold)}.legend-dot.cyan{background:var(--cyan)}.puzzle-panel{display:flex;flex-direction:column;padding:20px}.nova-profile{display:flex;gap:12px;align-items:center;margin:16px 0;padding:12px;background:#0c1a32;border:1px solid #2b526c;border-radius:15px}.nova-profile strong{display:block;margin-bottom:5px;font-size:13px}.nova-profile small{color:var(--muted);font-size:11px}.nova-eye{width:49px;height:49px;min-width:49px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 32% 25%,#94f7ff,#2f79c0 45%,#171a67 90%);box-shadow:0 0 21px #60e9f261}.nova-eye b{width:19px;height:19px;border-radius:50%;background:#041629;border:4px solid #aafafa}.puzzle-body{flex:1}.topic{display:inline-block;background:#193e51;color:var(--cyan);padding:7px 11px;border-radius:8px;font-size:10px;letter-spacing:1px;font-weight:850}.puzzle-body h2{margin:13px 0 9px;font-size:29px;line-height:1.18}.puzzle-body>p{font-size:13px;color:#b7cae4;line-height:1.6}.puzzle-statement{border:1px solid #6273ab7a;background:linear-gradient(140deg,#202c54,#132641);border-radius:15px;padding:20px 17px;color:#edf8ff;font-size:16px;line-height:1.68;min-height:110px}.puzzle-statement strong{color:var(--gold)}.answer-region{margin:19px 0 12px}.answer-region label{display:block;font-size:13px;font-weight:850;color:var(--ink);margin-bottom:8px}.answer-region input{width:100%;background:#06172c;border:1px solid #6486a6;border-radius:12px;color:#f4ffff;font-size:22px;min-height:53px;padding:9px 13px}.answer-region input:disabled{background:#12263b;color:var(--green)}.answer-tip{color:var(--muted);font-size:11px;margin:7px 0 0}.feedback{font-size:13px;line-height:1.55}.feedback:not(:empty){border-radius:13px;padding:12px 14px;margin-bottom:12px;background:#22284b;border:1px solid #6472a1}.feedback.correct{background:#104635;border-color:#3cbf93}.feedback.wrong{background:#412638;border-color:#c77a83}.action-row{display:grid;grid-template-columns:minmax(0,1.5fr) 1fr;gap:9px}.primary-btn,.next-btn{color:#052636;border:0;border-radius:11px;background:linear-gradient(120deg,#6de9de,#8db4ff);min-height:47px;font-weight:930;padding:11px}.primary-btn:hover,.next-btn:hover{filter:brightness(1.08)}.hint-output{font-size:12px;color:#d3e6ff;line-height:1.6}.hint-output:not(:empty){background:#123554;border-left:3px solid var(--gold);margin-top:14px;padding:12px;border-radius:4px 10px 10px 4px}.puzzle-bottom{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:17px;padding-top:15px;border-top:1px solid #3a516e}.puzzle-bottom span{font-size:11px;color:var(--muted)}.next-btn{color:#082234;font-size:13px}.learning-panel{display:grid;grid-template-columns:1.5fr 1fr;gap:25px;padding:28px;margin-top:20px;background:#12223fcc;border:1px solid #39587c;border-radius:20px}.learning-panel h2{font-size:24px;margin:12px 0}.learning-panel p{color:#b9cbe4;line-height:1.7;font-size:13px;margin-bottom:0}.learning-meta{display:grid;gap:10px;align-content:center;font-weight:750;font-size:13px;color:var(--green)}footer{border-top:1px solid #263b59;margin:auto;max-width:1430px;padding:22px 27px 35px;color:var(--muted);font-size:12px}footer a{margin-left:8px}
html[data-theme="light"]{color-scheme:light;--bg:#e9f2ff;--paper:#edf6ff;--paper2:#f7fbff;--ink:#173154;--muted:#426080;--edge:#c6d4e9;--cyan:#006c7c;--gold:#9d5c00;--violet:#6259bc;--green:#117857;--shadow:0 15px 55px #819bb83a}html[data-theme="light"] body{background:radial-gradient(circle at 100% 0%,#d6e8ff,transparent 40%),#eaf2fe}html[data-theme="light"] .intro-panel,html[data-theme="light"] .mission-bar,html[data-theme="light"] .scene-panel,html[data-theme="light"] .puzzle-panel,html[data-theme="light"] .learning-panel{background:#ffffffeb;border-color:#bdcfe2}html[data-theme="light"] .intro-panel p,html[data-theme="light"] .learning-panel p,html[data-theme="light"] .puzzle-body>p{color:#426280}html[data-theme="light"] .field-wrap select,html[data-theme="light"] .nova-profile,html[data-theme="light"] .progress-track button,html[data-theme="light"] .puzzle-statement,html[data-theme="light"] .answer-region input,html[data-theme="light"] .subtle-btn{background:#e8f1ff;color:#1c3456;border-color:#bdcfe2}html[data-theme="light"] .puzzle-statement strong,html[data-theme="light"] .mission-stat strong{color:#885300}html[data-theme="light"] .nova-profile small{color:#51718d}html[data-theme="light"] .progress-track button.current{background:#c5eff0}html[data-theme="light"] .progress-track button.current strong{color:#073e4c}html[data-theme="light"] .puzzle-statement{background:linear-gradient(135deg,#e2eeff,#f7fbff)}html[data-theme="light"] .topic{background:#daf2f4}html[data-theme="light"] .scene-legend{color:#426080}
@media(max-width:1030px){.experience-grid{grid-template-columns:1fr}.scene-viewport{aspect-ratio:1.7;min-height:310px}.learning-panel{grid-template-columns:1fr}}
@media(max-width:660px){.topnav{padding:15px 13px}.top-link,.status{display:none}main{padding:8px 12px 70px}.intro-panel{padding:25px 19px;min-height:auto}.intro-side{display:none}.intro-panel h1{font-size:42px}.mission-bar{gap:8px;padding:12px}.field-wrap{flex:1 1 120px}.mission-stat{flex:1 1 90px;padding:7px 4px}.progress-track ol{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.progress-track button{min-height:62px;padding:7px 3px}.progress-track button .chamber-icon{font-size:19px}.progress-track button strong{font-size:10px}.scene-panel,.puzzle-panel{padding:13px;border-radius:16px}.scene-viewport{aspect-ratio:1.25;min-height:265px}.scene-legend{display:none}.world-hotspot{min-width:77px;font-size:16px;padding:7px}.world-hotspot span{font-size:8px}.scene-overlay{font-size:11px;bottom:40px}.action-row{grid-template-columns:1fr}.learning-panel{padding:17px}.puzzle-body h2{font-size:25px}.scene-top h2{font-size:16px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* Escape Room 14.0: dotze cambres, artefacte 3D i informació adaptativa */
.progress-track ol{grid-template-columns:repeat(6,minmax(0,1fr))}
.artifact-spot{border-color:#d2baff!important;color:#e4c9ff!important;background:#352356db!important;box-shadow:0 0 24px #b28dff88!important;z-index:3}
.legend-dot.violet{background:#caacff}
.camera-buttons button{min-width:40px}
.campaign-info{color:#bcd1ed!important;font-size:12px!important;margin:5px 0 12px}
.artifact-info{border-left:3px solid #cca5ff;border-radius:0 10px 10px 0;background:#302645;padding:10px 13px;color:#eee5ff;font-size:12px;line-height:1.5;margin:12px 0}
.artifact-info[hidden]{display:none}
.world-hotspot:not(.locked).door-spot{animation:escape-door-pulse 2.4s ease-in-out infinite}
@keyframes escape-door-pulse{50%{box-shadow:0 0 39px #55eccd,0 0 62px #4ddee648}}
@media(max-width:850px){.progress-track ol{grid-template-columns:repeat(4,minmax(0,1fr))}.scene-toolbar{flex-wrap:wrap}}
@media(max-width:500px){.progress-track ol{grid-template-columns:repeat(3,minmax(0,1fr))}.scene-toolbar{gap:6px}.scene-toolbar .scene-legend{display:none}}
@media(prefers-reduced-motion:reduce){.door-spot{animation:none!important}}

/* V15: la pregunta matemàtica continua al centre; suport visual puntual i resolució pedagògica. */
.geometry-aid[hidden]{display:none}
.geometry-aid{margin:13px 0;border-radius:14px;background:#122342;border:1px solid #426389;padding:12px}
.geometry-aid details>summary,.nova-steps>summary{cursor:pointer;font-weight:790;color:#d8f6fa;padding:8px}
.geometry-aid p{color:#c9dcf6;font-size:12px;line-height:1.5;margin:8px}
.geometry-aid svg{width:100%;height:auto;max-height:205px;display:block}
.geometry-aid .aid-figure{max-width:330px;margin:auto}
.geometry-aid label{display:block;color:#d8eafe;font-size:12px;margin-top:10px}
.geometry-aid input[type=range]{width:100%;min-height:28px;accent-color:#6de9de}
.nova-steps{margin:16px 0 4px;background:#102f43;border:1px solid #56a0a4;border-radius:12px;padding:8px}
.nova-steps ol{margin:9px 6px 11px;padding-left:25px;color:#d9f5ef;font-size:13px;line-height:1.7}
.nova-steps li+li{margin-top:6px}
html[data-theme=light] .nova-steps,html[data-theme=light] .geometry-aid{background:#dff1f8;border-color:#a7cad4}
html[data-theme=light] .nova-steps>summary,html[data-theme=light] .geometry-aid summary,html[data-theme=light] .geometry-aid p,html[data-theme=light] .geometry-aid label,html[data-theme=light] .nova-steps ol{color:#1b4358}

.step-aid[hidden]{display:none}.step-aid{margin:12px 0;border:1px solid #335c78;border-radius:12px;padding:10px 12px;background:#123149}
.step-aid summary{font-weight:800;color:#d5efff;cursor:pointer;padding:6px}.step-aid p{font-size:12px;color:#b9d9ef;line-height:1.5;margin:10px 0}
.step-aid label{display:block;color:#e6f6ff;font-weight:750;margin:10px 0;font-size:12px}.step-inputs{display:flex;gap:8px;flex-wrap:wrap}.step-inputs input{flex:1;min-width:120px;padding:8px;background:#081c31;border:1px solid #4b829e;color:white;border-radius:8px}.step-inputs button{background:#76d8dc;color:#07303f;font-weight:800;border:0;padding:9px 12px;border-radius:8px}
html[data-theme=light] .step-aid{background:#e3f3fb;border-color:#a9c9db}html[data-theme=light] .step-aid p,html[data-theme=light] .step-aid label,html[data-theme=light] .step-aid summary{color:#19435f}
