*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#eef3f6;--ink:#1d2733;--muted:#5b6b7b;--card:#fff;--line:#d8e0e7;--blue:#005ca9;--yellow:#fecb00;--red:#c8102e;--green:#1f8f4e;--orange:#e67e00;color:var(--ink);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.5}html,body,#root{min-height:100%}body{-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;cursor:pointer}.gallery{max-width:1280px;margin:0 auto;padding:28px 20px 40px}.hero{align-items:center;gap:18px;margin-bottom:22px;display:flex}.hero h1{letter-spacing:-.02em;font-size:2.1rem}.hero p{color:var(--muted);max-width:60ch}.hero-sign{background:var(--red);clip-path:polygon(0 0,100% 0,50% 100%);flex:none;width:64px;height:58px;position:relative}.hero-sign:after{content:"";background:var(--yellow);clip-path:polygon(0 0,100% 0,50% 100%);position:absolute;inset:9px 15px 17px}.hero-links{flex:none;gap:10px;margin-left:auto;display:flex}.cinema-link{background:var(--ink);color:#fff;border-radius:999px;flex:none;padding:10px 18px;font-weight:700;text-decoration:none}.cinema-link:hover{filter:brightness(1.25)}.filters{grid-template-columns:auto 1fr;align-items:center;gap:12px;margin-bottom:10px;display:grid}.seg{border:1px solid var(--line);background:#fff;border-radius:999px;padding:3px;display:inline-flex}.seg button{color:var(--muted);background:0 0;border:0;border-radius:999px;padding:6px 16px;font-weight:600}.seg button.on{background:var(--blue);color:#fff}.search{border:1px solid var(--line);width:100%;font:inherit;background:#fff;border-radius:999px;padding:9px 14px}.search:focus{outline:2px solid var(--blue);outline-offset:1px}.chips{flex-wrap:wrap;grid-column:1/-1;gap:6px;display:flex}.chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:4px 12px;font-size:.85rem}.chip.on{background:var(--ink);border-color:var(--ink);color:#fff}.chip.clear{color:var(--muted);border-style:dashed}.count{color:var(--muted);margin:8px 0 12px;font-size:.85rem}.grid{grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:18px;display:grid}.empty{color:var(--muted)}.pagination{flex-wrap:wrap;justify-content:center;gap:6px;margin-top:28px;display:flex}.pagination button{border:1px solid var(--line);min-width:38px;color:var(--ink);background:#fff;border-radius:999px;padding:6px 14px;font-weight:600}.pagination button.on{background:var(--blue);border-color:var(--blue);color:#fff}.pagination button:disabled{opacity:.4;cursor:default}.card{text-align:left;border:1px solid var(--line);background:var(--card);border-radius:14px;flex-direction:column;transition:transform .15s,box-shadow .15s;display:flex;overflow:hidden;box-shadow:0 1px 2px #14283c0f}.card:hover,.card:focus-visible{outline:none;transform:translateY(-3px);box-shadow:0 10px 24px #14283c24}.card-canvas{aspect-ratio:4/3;background:#cfe3ee;width:100%;display:block}.card-body{padding:12px 14px 16px}.card-body h3{margin:6px 0 4px;font-size:1.05rem}.card-body p{color:var(--muted);font-size:.9rem}.card-meta{flex-wrap:wrap;gap:5px;display:flex}.env,.topic{color:var(--muted);background:#eef2f5;border-radius:999px;padding:2px 8px;font-size:.72rem;font-weight:600}.env-stad{color:#0b4f8f;background:#dbe9f7}.env-land{color:#1c6b37;background:#dff1e3}.foot{color:var(--muted);text-align:center;margin-top:36px;font-size:.8rem}.detail{grid-template-columns:1fr 400px;height:100dvh;display:grid}.viewport{background:#cfe3ee;position:relative;overflow:hidden}.three-host{position:absolute;inset:0}.three-host canvas{display:block}.label-layer{pointer-events:none;position:absolute;inset:0}.actor-label{pointer-events:none;align-items:center;gap:3px;display:flex}.actor-label .letter{color:#fff;background:var(--c);text-shadow:0 1px 1px #0006;border:2px solid #fff;border-radius:50%;place-items:center;width:26px;height:26px;font-size:.85rem;font-weight:800;display:grid;box-shadow:0 2px 6px #00000059}.actor-label .order{color:#fff;border-radius:6px;place-items:center;min-width:22px;height:22px;padding:0 5px;font-size:.8rem;font-weight:800;display:none;box-shadow:0 2px 6px #0000004d}.actor-label.revealed .order{display:grid}.actor-label.role-priority .order{background:var(--green)}.actor-label.role-yield .order{background:var(--orange)}.actor-label.role-neutral .order{background:#777}.back{background:#ffffffeb;border:0;border-radius:999px;padding:8px 14px;font-weight:600;position:absolute;top:14px;left:14px;box-shadow:0 2px 8px #00000026}.cinema-badge{color:#fff;pointer-events:none;background:#1f2933d1;border-radius:999px;padding:6px 12px;font-size:.8rem;font-weight:600;position:absolute;top:60px;left:14px}.cinema-filter{background:#ffffffeb;border:0;border-radius:999px;padding:8px 14px;font-weight:600;position:absolute;top:14px;right:14px;box-shadow:0 2px 8px #00000026}.cinema-filter:hover{background:#fff}.cinema-empty{background:#cfe3ee;place-items:center;height:100dvh;display:grid;position:relative}.cinema-empty-box{text-align:center;background:#fffffff2;border-radius:16px;justify-items:center;gap:14px;max-width:420px;padding:28px 34px;display:grid;box-shadow:0 10px 30px #00000026}.modal-backdrop{z-index:20;background:#0f19238c;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:16px;flex-direction:column;width:min(420px,100%);max-height:min(560px,90vh);padding:18px 20px;animation:.2s modal-pop;display:flex;box-shadow:0 20px 50px #0000004d}@keyframes modal-pop{0%{opacity:0;transform:translateY(-8px)}}.modal-head{justify-content:space-between;align-items:center;display:flex}.modal-head h3{font-size:1.1rem}.modal-x{background:#eef2f5;border:0;border-radius:50%;width:30px;height:30px}.modal-x:hover{background:#e2e9ee}.modal-note{color:var(--muted);margin:6px 0 12px;font-size:.85rem}.modal-actions{gap:8px;margin-bottom:8px;display:flex}.modal-actions button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 14px;font-size:.85rem;font-weight:600}.modal-actions button:hover{background:#f3f7fa}.modal-list{gap:2px;margin:0 -8px;padding:0 8px;list-style:none;display:grid;overflow-y:auto}.modal-list label{cursor:pointer;border-radius:10px;align-items:center;gap:10px;padding:7px 10px;display:flex}.modal-list label:hover{background:#f3f7fa}.modal-list input{width:18px;height:18px;accent-color:var(--blue)}.modal-list .n{color:var(--muted);margin-left:auto;font-size:.8rem}.ask{background:#fffffff5;border-radius:14px;align-items:center;gap:14px;max-width:min(640px,100% - 220px);padding:10px 12px 10px 18px;animation:.25s pop;display:flex;position:absolute;top:14px;left:50%;transform:translate(-50%);box-shadow:0 6px 20px #0000002e}@keyframes pop{0%{opacity:0;transform:translate(-50%,-8px)}}.primary{background:var(--blue);color:#fff;border:0;border-radius:10px;flex:none;padding:8px 16px;font-weight:700}.primary:hover{filter:brightness(1.1)}.controls{background:#fffffff0;border-radius:999px;align-items:center;gap:4px;padding:6px;display:flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%);box-shadow:0 4px 14px #00000029}.controls button{background:0 0;border:0;border-radius:50%;width:38px;height:38px;font-size:1.05rem}.controls button:hover{background:#eef2f5}.controls .phase{color:var(--muted);min-width:110px;padding:0 14px 0 8px;font-size:.85rem;font-weight:600}.panel{border-left:1px solid var(--line);background:#fff;padding:22px 22px 30px;overflow-y:auto}.panel h2{margin:8px 0 4px;font-size:1.45rem}.panel h4{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:18px 0 8px;font-size:.78rem}.panel .summary{color:var(--muted)}.actors{gap:8px;list-style:none;display:grid}.actors li{align-items:center;gap:10px;font-size:.92rem;display:flex}.actors .dot{color:#fff;text-shadow:0 1px 1px #00000073;border-radius:50%;flex:none;place-items:center;width:26px;height:26px;font-size:.8rem;font-weight:800;display:grid;box-shadow:inset 0 0 0 2px #fff9,0 0 0 1px #0000001f}.actors .who{flex:1}.badge{color:#fff;border-radius:6px;flex:none;padding:2px 8px;font-size:.75rem;font-weight:700}.badge.role-priority{background:var(--green)}.badge.role-yield{background:var(--orange)}.quiz{border:1px solid var(--line);background:#f3f7fa;border-radius:12px;margin-top:18px;padding:14px 16px}.quiz .q{margin-bottom:10px;font-weight:700}.quiz.open .a{color:var(--green);margin-bottom:10px;font-weight:700}.quiz p+p{margin-top:8px}.quiz h4{margin-top:14px}.tips{gap:4px;padding-left:18px;font-size:.92rem;display:grid}.signs{gap:8px;list-style:none;display:grid}.signs li{align-items:center;gap:10px;font-size:.9rem;display:flex}.signs img{width:40px;height:40px}.pager{justify-content:space-between;gap:8px;margin-top:24px;display:flex}.pager button{border:1px solid var(--line);background:#fff;border-radius:10px;flex:1;padding:8px 10px;font-size:.85rem}.pager button:last-child{text-align:right}.pager button:hover{background:#f3f7fa}.hint{color:var(--muted);margin-top:14px;font-size:.78rem}.sim{background:#cfe3ee;height:100dvh;position:relative;overflow:hidden}.sim-hint{color:#fff;pointer-events:none;white-space:nowrap;background:#1f2933d1;border-radius:999px;padding:6px 12px;font-size:.8rem;font-weight:600;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.sim-follow{background:#ffffffeb;border:0;border-radius:999px;padding:8px 14px;font-weight:600;position:absolute;top:14px;right:14px;box-shadow:0 2px 8px #00000026}.sim-follow:hover{background:#fff}.sim-follow.sim-cam{top:58px}.sim-tag .letter{background:#1f2933d9;border-radius:999px;width:auto;height:auto;padding:3px 10px;font-size:.78rem}.carx{color:#e9eef3;background:#1a1f26}.carx .cinema-badge{background:#0a0e12b3}.carx .back{color:#1f2933;cursor:pointer}.car-view{color:#1f2933;cursor:pointer;background:#ffffffeb;border:0;border-radius:999px;padding:8px 14px;font-size:.8rem;font-weight:600;box-shadow:0 2px 8px #0003}.car-view:hover{background:#fff}.car-view.on{color:#fff;background:#2e6fd8}.car-view.sm{color:#dfe7ee;background:#161c22d1;padding:5px 11px;font-size:.74rem}.car-view.sm:hover{background:#28303af2}.car-view.sm.on{color:#fff;background:#2e6fd8}.cx-top{flex-direction:column;align-items:flex-end;gap:8px;max-width:calc(100vw - 200px);display:flex;position:absolute;top:14px;right:14px}.cx-views,.cx-toggles{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.cx-parts-btn{color:#e9eef3;cursor:pointer;background:#161c22d9;border:0;border-radius:999px;padding:6px 12px;font-size:.78rem;font-weight:700;position:absolute;top:100px;left:14px}.cx-parts-btn.on{background:#2e6fd8}.cx-parts{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);scrollbar-width:thin;background:#10151adb;border-radius:12px;width:236px;padding:10px 8px 12px;position:absolute;top:136px;bottom:16px;left:14px;overflow-y:auto;box-shadow:0 4px 18px #00000059}.cx-search{color:#e9eef3;background:#0f1418;border:1px solid #36404b;border-radius:8px;width:100%;margin-bottom:4px;padding:6px 9px;font-size:.8rem}.cx-parts h4{text-transform:uppercase;letter-spacing:.06em;color:#8fa0b0;margin:10px 6px 4px;font-size:.68rem}.cx-part{text-align:left;color:#dfe7ee;cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:space-between;align-items:center;gap:6px;width:100%;padding:4px 8px;font-size:.8rem;display:flex}.cx-part:hover{background:#ffffff12}.cx-part.on{color:#fff;background:#2e6fd8}.cx-exam-dot{background:#f2c230;border-radius:50%;flex:none;width:7px;height:7px;display:inline-block}.cx-legend,.cx-empty{color:#8fa0b0;align-items:center;gap:6px;margin:12px 8px 0;font-size:.7rem;display:flex}.cx-info{color:#fff;background:#10151aed;border:1px solid #ffffff0f;border-radius:14px;width:360px;max-width:calc(100vw - 32px);max-height:calc(100% - 200px);padding:14px 16px 16px;position:absolute;bottom:16px;left:16px;overflow-y:auto;box-shadow:0 6px 22px #00000073}.cx-info.shifted{left:264px}.cx-info h3{margin:2px 0 6px;font-size:1.05rem}.cx-info h5{text-transform:uppercase;letter-spacing:.05em;color:#8fb8ff;margin:12px 0 3px;font-size:.72rem}.cx-info p{color:#d6dee6;margin:0;font-size:.82rem;line-height:1.5}.cx-area{text-transform:uppercase;letter-spacing:.06em;color:#8fa0b0;font-size:.68rem}.cx-status{background:#2e6fd840;border-radius:999px;padding:2px 9px;font-weight:600;display:inline-block;color:#bcd4ff!important;margin-bottom:8px!important;font-size:.75rem!important}.cx-exam{background:#f2c23014;border-left:3px solid #f2c230;border-radius:0 8px 8px 0;margin-top:12px;padding:2px 10px 9px}.cx-exam h5{color:#f2c230}.cx-close{color:#fff;opacity:.6;cursor:pointer;background:0 0;border:0;font-size:.9rem;position:absolute;top:8px;right:10px}.cx-action{color:#fff;cursor:pointer;background:#2e6fd8;border:0;border-radius:999px;margin-top:14px;padding:7px 14px;font-size:.8rem;font-weight:700}.cx-action:hover{background:#3b7cf0}.cx-ctl{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#10151ae0;border-radius:12px;width:300px;position:absolute;bottom:16px;right:14px;overflow:hidden;box-shadow:0 4px 18px #00000059}.cx-ctl:not(.open){width:auto}.cx-ctl-head{color:#e9eef3;text-align:left;cursor:pointer;background:0 0;border:0;width:100%;padding:9px 12px;font-size:.8rem;font-weight:700}.cx-ctl-body{gap:6px;padding:0 10px 10px;display:grid}.cx-row{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.cx-row>span{color:#8fa0b0;width:58px;font-size:.7rem}.cx-gears{gap:3px;display:flex}.chip{color:#dfe7ee;cursor:pointer;background:#1c242c;border:1px solid #36404b;border-radius:999px;padding:3px 9px;font-size:.74rem;font-weight:600}.chip:hover:not(:disabled){background:#26313b}.chip:disabled{opacity:.4;cursor:default}.chip.g{width:24px;padding:3px 0}.chip.on{color:#fff;background:#34a853;border-color:#34a853}.chip.blue.on{background:#2e6fd8;border-color:#2e6fd8}.chip.amber.on{background:#d08a00;border-color:#d08a00}.chip.red.on{background:#d63a2f;border-color:#d63a2f}.car-label{pointer-events:auto;color:#e9eef3;white-space:nowrap;cursor:pointer;background:#10151ac7;border:1px solid #ffffff1f;border-radius:999px;padding:2px 8px;font-size:.68rem;font-weight:600;transition:opacity .2s;box-shadow:0 1px 4px #0006}.car-label:hover,.car-label.on{color:#fff;opacity:1;background:#2e6fd8}.car-label.dim{opacity:.35}.cx-tip{pointer-events:none;color:#fff;white-space:nowrap;background:#10151ae6;border-radius:6px;padding:3px 9px;font-size:.75rem;font-weight:600;position:absolute}@media (width<=760px){.cx-top{max-width:calc(100vw - 16px);top:56px;right:8px}.carx .cinema-badge{display:none}.car-view{padding:6px 8px;font-size:.72rem}.car-view.sm{padding:4px 8px;font-size:.68rem}.cx-parts-btn{top:auto;bottom:8px;left:8px}.cx-parts{z-index:3;width:auto;inset:136px 8px 52px}.cx-info,.cx-info.shifted{z-index:4;width:auto;max-height:48%;bottom:8px;left:8px;right:8px}.cx-ctl{width:calc(100vw - 16px);bottom:8px;right:8px}.cx-ctl:not(.open){width:auto}.carx .sim-hint{display:none}}.vagm{background:#f4f6f3;min-height:100dvh;padding-bottom:60px}.vagm-head{text-align:center;padding:70px 24px 20px}.vagm-head h1{margin:0 0 6px;font-size:1.7rem}.vagm-head p{color:#5a6570;margin:0;font-size:.9rem}.vagm-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;max-width:1100px;margin:0 auto;padding:0 20px;display:grid}.sign-card{text-align:center;cursor:help;background:#fff;border-radius:14px;padding:14px 10px 10px;transition:transform .15s,box-shadow .15s;position:relative;box-shadow:0 1px 4px #0000001a}.sign-card:hover,.sign-card.open{z-index:3;transform:translateY(-3px);box-shadow:0 6px 18px #00000029}.sign-card img{object-fit:contain;width:76px;height:76px;margin:0 auto 8px;display:block}.sign-name{color:#33404d;font-size:.72rem;font-weight:600;line-height:1.25;display:block}.sign-tip{color:#fff;opacity:0;pointer-events:none;z-index:4;text-align:left;background:#161c22f2;border-radius:10px;width:230px;padding:10px 12px;font-size:.76rem;line-height:1.45;transition:opacity .15s;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%)}.sign-card:hover .sign-tip,.sign-card.open .sign-tip{opacity:1}@media (width<=900px){.detail{grid-template-rows:60vh auto;grid-template-columns:1fr;height:auto}.panel{border-left:0;border-top:1px solid var(--line)}.ask{max-width:calc(100% - 24px);top:auto;bottom:72px}.filters{grid-template-columns:1fr}}
