.tile .t-deco{z-index:0;opacity:.42;pointer-events:none;width:46%;max-width:150px;height:52%;position:absolute;top:16%;right:8%}.tile .t-deco svg{width:100%;height:100%;display:block;overflow:visible}.tile .t-deco-iris{opacity:.35;max-width:190px;height:80%;top:10%}.tile-short .t-deco,.tile-wide-short .t-deco{width:30%;height:76%;top:12%}.tile .tile-face>:not(.t-deco){z-index:1;position:relative}.t-float{animation:5s ease-in-out infinite td-float;animation-delay:var(--td-delay,0s);display:inline-flex}.t-big{font-variant-numeric:tabular-nums}@keyframes td-spin{to{transform:rotate(360deg)}}@keyframes td-float{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes td-crot{0%,20%{transform:rotate(0)}25%,45%{transform:rotate(90deg)}50%,70%{transform:rotate(180deg)}75%,95%{transform:rotate(270deg)}to{transform:rotate(360deg)}}@keyframes td-cfade{0%,to{opacity:.15}50%{opacity:1}}@keyframes td-blur{0%,to{filter:blur(3px)}50%{filter:blur()}}@keyframes td-mer{0%,to{opacity:.35}50%{opacity:1}}@keyframes td-ring{0%,to{opacity:.25}50%{opacity:1}}@keyframes td-bow{0%,to{d:path("M10 40Q50 40 90 40")}50%{d:path("M10 40Q50 52 90 40")}}@keyframes td-l{0%,to{transform:translate(-14px)}50%{transform:translate(0)}}@keyframes td-r{0%,to{transform:translate(14px)}50%{transform:translate(0)}}@keyframes td-lid{0%,88%,to{transform:scaleY(1)}94%{transform:scaleY(.05)}}@keyframes td-sweep{0%{transform:translate(-30px)}to{transform:translate(110px)}}@keyframes td-shimmer{0%{transform:translate(-120%)}60%,to{transform:translate(260%)}}.td-spin{animation:40s linear infinite td-spin}.td-c-rot{animation:12s ease-in-out infinite td-crot;animation-delay:var(--td-delay,0s)}.td-c-fade{animation:6s ease-in-out infinite td-cfade;animation-delay:var(--td-delay,0s)}.td-blur{animation:6s ease-in-out infinite td-blur;animation-delay:var(--td-delay,0s)}.td-mer{animation:6s ease-in-out infinite td-mer;animation-delay:var(--td-delay,0s);opacity:.6}.td-mer-1{animation-delay:calc(var(--td-delay,0s) + 2s)}.td-mer-2{animation-delay:calc(var(--td-delay,0s) + 4s)}.td-ring-a{animation:5s ease-in-out infinite td-ring;animation-delay:var(--td-delay,0s)}.td-ring-b{animation:5s ease-in-out infinite td-ring;animation-delay:calc(var(--td-delay,0s) + 2.5s)}.td-bow{animation:6s ease-in-out infinite td-bow;animation-delay:var(--td-delay,0s)}.td-l{animation:6s ease-in-out infinite td-l;animation-delay:var(--td-delay,0s)}.td-r{animation:6s ease-in-out infinite td-r;animation-delay:var(--td-delay,0s)}.td-lid{animation:4s ease-in-out infinite td-lid;animation-delay:var(--td-delay,0s)}.td-sweep{animation:4.5s ease-in-out infinite td-sweep;animation-delay:var(--td-delay,0s)}.tile .t-shimmer{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.tile .t-shimmer:after{content:"";background:linear-gradient(100deg,#0000,#ffffff24,#0000);width:30%;animation:7s ease-in-out infinite td-shimmer;position:absolute;top:0;bottom:0;left:0}@media (prefers-reduced-motion:reduce){.td-spin,.td-c-rot,.td-c-fade,.td-blur,.td-mer,.td-ring-a,.td-ring-b,.td-bow,.td-l,.td-r,.td-lid,.td-sweep,.t-float,.tile .t-shimmer:after{animation:none}.tile .t-shimmer{display:none}.td-c-fade,.td-ring-a,.td-ring-b{opacity:1}.td-sweep{opacity:0}.td-l{transform:translate(-4px)}.td-r{transform:translate(4px)}}.cv-page{flex-direction:column;display:flex}.cv-head{color:var(--muted);align-items:center;gap:8px;padding:4px 0 8px;font-size:.85rem;display:flex}.cv-head .cv-exit{background:0 0;margin-left:auto;padding:4px 12px}.cv-stage{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:14px;display:flex}.cv-plate{aspect-ratio:1;border-radius:50%;width:clamp(240px,60%,380px);max-width:85vw;height:auto;display:block}.cv-pad{grid-template-columns:repeat(5,1fr);gap:8px;width:min(100%,380px);display:grid}.cv-pad button{min-height:48px;padding:0;font-size:1.25rem}.cv-pad .cv-none{grid-column:1/-1;font-size:1rem}.cv-viz{justify-content:center;gap:20px;margin:10px 0;display:flex}.cv-viz figure{flex-direction:column;align-items:center;gap:6px;margin:0;display:flex}.cv-viz .cv-plate{width:120px;max-width:38vw}.cv-viz figcaption{color:var(--muted);max-width:150px;font-size:.8rem}.td-cv-fig{animation:6s ease-in-out infinite td-cv-in;animation-delay:var(--td-delay,0s)}@keyframes td-cv-in{0%,to{opacity:.35}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.td-cv-fig{opacity:1;animation:none}}.cv-row{flex-wrap:wrap;justify-content:center;gap:6px;margin:10px 0;display:flex}.cv-cap,.cv-slot{border-radius:8px;flex:none;width:40px;height:40px}.cv-cap{cursor:pointer;border:2px solid #0000;padding:0}.cv-cap:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.cv-cap-pilot{border-color:var(--fg);cursor:default;position:relative}.cv-cap-pilot:after{content:"";background:var(--bg);border-radius:50%;position:absolute;inset:14px}.cv-slot{border:2px dashed var(--line)}.cv-pool{border-top:1px solid var(--line);padding-top:10px}.cv-mode-opt{text-align:left}.cv-table{border-collapse:collapse;width:100%;font-size:.85rem}.cv-table th,.cv-table td{text-align:left;border-bottom:1px solid var(--line);padding:4px 6px}.cv-progress{background:var(--border,#80808040);border-radius:2px;height:4px;overflow:hidden}.cv-progress>div{background:var(--accent,currentColor);height:100%;transition:width .2s}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0f1633;--bg-deep:#0a0f26;--card:#ffffff0f;--card-solid:#1a2150;--card-line:#ffffff14;--input-bg:#ffffff0f;--fg:#e8ecf8;--muted:#aeb7da;--line:#ffffff1f;--accent:#9db0ff;--accent-weak:#4c6bff3d;--warn:#ffb27a;--error:#ff9a92;--shadow:0 2px 12px #0000004d;color:var(--fg);background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html{background:var(--bg)}body{background:var(--bg);margin:0}a{color:var(--accent)}h1{margin:.6em 0;font-size:1.6rem}.page{max-width:960px;margin:0 auto;padding:16px}.muted{color:var(--muted)}.small{word-break:break-all;font-size:.8rem}.warn{color:var(--warn)}.error{color:var(--error)}.row{flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0;display:flex}.wide{width:100%}.page-title{text-align:center;margin:4px 0;font-size:1rem;font-weight:600}.lead{text-align:center;color:var(--fg);margin:10px 0;font-size:1.35rem;font-weight:300;line-height:1.45}.lead b{font-weight:600}.lead.small{font-size:1.05rem}button{font:inherit;border:1px solid var(--line);background:var(--card);color:var(--fg);cursor:pointer;border-radius:12px;padding:10px 16px}button.primary{background:var(--blue);border-color:var(--blue);color:#fff}button.secondary{border:1.5px solid var(--accent);color:var(--accent);background:0 0}button:disabled{opacity:.5;cursor:default}button.huge{border-radius:14px;width:100%;max-width:360px;margin-top:12px;padding:14px 28px;font-size:1.1rem}input{font:inherit;border:1px solid var(--line);background:var(--input-bg);color:var(--fg);border-radius:6px;padding:6px 8px}input[type=number]{width:90px}.steps li{flex-direction:column;gap:2px;margin:12px 0;display:flex}.card{background:var(--card);border:1px solid var(--card-line);box-shadow:var(--shadow);border-radius:16px;margin:12px 0;padding:16px}.card-box{background:#7896ff47;border:2px dashed #fff;border-radius:12px;margin:16px 0}.card-stage{background:var(--bg);justify-content:center;margin:16px -16px;padding:12px 0;display:flex;overflow:hidden}.card-stage .card-box{flex:none;margin:0}.ruler{border:2px solid var(--fg);border-top:none;height:12px;margin:8px 0}.admin-token-field{border:1px dashed var(--line);background:var(--card);border-radius:8px;margin:12px 0;padding:10px 12px}.admin-token-field label{color:var(--muted);flex-direction:column;gap:4px;font-size:.85rem;display:flex}.admin-token-field input{font:inherit}.camera{width:320px;max-width:100%;margin:12px 0;position:relative}.camera video{background:#000;border-radius:12px;width:100%;display:block;transform:scaleX(-1)}.camera-status{color:var(--muted);margin-top:4px;font-size:.85rem}.camera-small{z-index:20;opacity:.85;width:160px;margin:0;position:fixed;bottom:12px;right:12px}.camera-hidden{opacity:0;pointer-events:none;width:1px;height:1px;position:fixed;top:0;left:0;overflow:hidden}.camera-hidden video{width:1px;height:1px}.blindspot-area{border:1px dashed var(--line);background:var(--card);touch-action:none;border-radius:8px;height:120px;position:relative}.fixation{background:#000;width:16px;height:16px;margin:-8px 0 0 -8px;position:absolute;top:50%}.dot{background:#e53935;border-radius:50%;width:14px;height:14px;margin:-7px 0 0 -7px;position:absolute;top:50%}.instructions li{margin:4px 0}.readout{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:16px 0;display:grid}.big{font-size:2.4rem;font-weight:600}.mid{font-size:1.4rem;font-weight:600}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{border-bottom:1px solid var(--line);text-align:left;padding:6px 4px}.result{background:var(--card);border:1px solid var(--card-line);box-shadow:var(--shadow);text-align:center;border-radius:16px;margin:16px 0;padding:20px 18px}.result .row{justify-content:center}.test-screen{z-index:10;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#2b303b;--bg:#eceff4;--card:#fff;--card-solid:#fff;--card-line:transparent;--input-bg:#fff;--fg:#2b303b;--muted:#6b7280;--line:#e3e6ec;--accent:#0a6cff;--accent-weak:#eaf2ff;--warn:#b35900;--error:#c62828;--shadow:0 2px 12px #141e320f;background:#fff;flex-direction:column;align-items:center;display:flex;position:fixed;inset:0}.test-screen .ok{color:#2e7d32}.test-status{color:#999;align-self:stretch;align-items:center;gap:8px;padding:8px 12px;font-size:.85rem;display:flex}.test-exit{color:#999;background:0 0;border-color:#eee;margin-left:auto;padding:4px 12px}.status-dot{background:#ccc;border-radius:50%;flex:none;width:10px;height:10px}.status-dot.ok{background:#66bb6a}.status-dot.lost{background:#ffb300}.test-stimulus{flex:1;justify-content:center;align-self:stretch;align-items:center;display:flex}.test-hint{color:#bbb;text-align:center;padding:8px 12px;font-size:.8rem}@media (hover:none){.test-hint{display:none}}.test-instructions{color:#9aa0ab;text-align:center;padding:0 16px;font-size:.78rem;line-height:1.6}.pad{aspect-ratio:1;grid-template-columns:repeat(3,1fr);grid-template-areas:"ul up ur""left unsure right""dl down dr";gap:10px;width:min(90vw,360px);display:grid}.pad button{touch-action:manipulation;border-radius:16px;font-size:2.4rem}.pad button:active{background:var(--accent);color:#fff}.pad .unsure{font-size:1rem}.pad.pad-compact{gap:6px;width:min(60vw,210px);margin-bottom:8px}.pad-compact button{color:#888;background:#fafafa;border-color:#eee;padding:0;font-size:1.6rem}.pad-compact .unsure{font-size:.8rem}.answer-dock{justify-content:center;padding:4px 0 8px;display:flex}.answer-ring-wrap{touch-action:manipulation;flex-direction:column;align-items:center;gap:10px;display:flex}.answer-ring{display:block}.answer-ring.disabled{opacity:.4;pointer-events:none}.ring-sector{fill:#2b303b;stroke:#fff;stroke-width:2px;cursor:pointer;outline:none;transition:fill .1s}.ring-sector:focus-visible{stroke:var(--accent);stroke-width:3px}.ring-sector.flash{fill:var(--accent)}.ring-cant-see{cursor:pointer;outline:none}.ring-cant-see circle{fill:#fff;stroke:var(--accent);stroke-width:1.5px}.ring-cant-see text{fill:var(--accent);-webkit-user-select:none;user-select:none}.ring-cant-see:focus-visible circle{stroke-width:3px}.ring-cant-see.flash circle{fill:var(--accent)}.ring-cant-see.flash text{fill:#fff}.quality{flex-wrap:wrap;gap:12px;margin:6px 0;font-size:.85rem;display:flex}.test-paused{color:var(--warn);text-align:center;padding:0 16px;font-size:1.6rem}.read-col{max-width:640px;min-height:100dvh;padding:calc(8px + env(safe-area-inset-top)) 16px calc(16px + env(safe-area-inset-bottom))}@media (width>=700px){:root:has(.read-col){background:var(--bg-deep)}body:has(.read-col){background:var(--bg-deep)}:root:has(.ui-page){background:var(--bg-deep)}body:has(.ui-page){background:var(--bg-deep)}:is(.app-shell:has(>.read-col),.app-shell:has(>.ui-page)){background:0 0}.read-col{background:var(--bg);border-inline:1px solid var(--card-line);padding-inline:24px}}.read-col .camera:not(.camera-small){width:100%}.read-col .camera:not(.camera-small) .camera-frame{width:fit-content;max-width:100%;margin:0 auto}.read-col .camera:not(.camera-small) video{width:auto;max-width:100%;max-height:max(220px,100dvh - 400px)}@media (orientation:landscape) and (height<=600px){.read-col{max-width:none}.read-col .camera:not(.camera-small) video{max-height:62dvh}}.camera-section{margin:8px 0}.page-header{align-items:baseline;gap:16px;display:flex}.page-header h1{margin:4px 0 8px}.settings{flex-direction:column;align-items:center;gap:10px;display:flex}.settings>*{width:100%}.field{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.field .label{width:3.5em;color:var(--muted)}.info{margin:0;font-size:.9rem}.checkbox{align-items:center;gap:6px;font-size:.9rem;display:flex}.settings .huge{align-self:center;margin-top:4px}.small-text{font-size:.85rem}.ok{color:#5fe3b0}.tag{background:var(--accent-weak);color:var(--accent);vertical-align:middle;border-radius:10px;margin-left:10px;padding:2px 8px;font-size:.85rem;font-weight:400}.result h2{margin:4px 0 8px}.dir-stats{text-align:left;margin:8px 0}.dir-grid{gap:8px;margin-bottom:4px;display:flex}.dir-cell{border:1px solid var(--line);border-radius:8px;align-items:center;gap:6px;padding:4px 10px;display:flex}.dir-cell.worst{border-color:var(--warn);color:var(--warn)}.dir-arrow{font-size:1.2rem}.test-screen .camera-small{top:calc(48px + env(safe-area-inset-top));width:120px;position:fixed;bottom:auto}.section-title{color:var(--muted);margin-top:28px;font-size:1.1rem}.camera-frame{position:relative}.eye-guide{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.guide-hint{margin:6px 0;font-size:1rem;font-weight:600}.guide-banner{color:#fff;text-align:center;background:#0000008c;border-radius:0 0 8px 8px;padding:6px 8px;font-size:.95rem;font-weight:600;position:absolute;bottom:0;left:0;right:0}.guide-banner.guide-ok{background:#2e7d32cc}.guide-legend{opacity:.85;font-size:.75rem;font-weight:400}.link-button{color:var(--accent);font-size:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.dial-question{text-align:center;color:#444;margin:4px 16px 0;font-size:1rem;line-height:1.5}.dial-answers{justify-content:center;margin:8px 0 12px}.dial-answers button{min-width:120px}.override-button{margin-top:16px;padding:10px 20px;font-size:1rem}.duo-stage{display:flex}.duo-panel{flex:1;justify-content:center;align-items:center;display:flex}.meridian-grid{grid-template-columns:1fr 1fr;gap:6px;margin-bottom:4px;display:grid}.meridian-grid .dir-cell{flex-direction:column;align-items:flex-start;gap:2px}.center{text-align:center}.icon-lead{text-align:center;flex-direction:column;align-items:center;gap:4px;margin:8px 0;display:flex}.icon-lead svg{color:var(--muted)}details.more-settings,.result details{text-align:left;width:100%;max-width:360px;color:var(--muted);background:var(--card);border:1px solid var(--card-line);box-shadow:var(--shadow);border-radius:12px;padding:4px 14px;font-size:.9rem}details.more-settings summary,.result details summary{cursor:pointer;color:var(--accent);padding:10px 0;font-weight:600;list-style:none}details.more-settings summary::-webkit-details-marker{display:none}.result details summary::-webkit-details-marker{display:none}details.more-settings[open] summary,.result details[open] summary{margin-bottom:4px}details.more-settings>.settings,details.more-settings .field,details.more-settings .checkbox{text-align:left}.result details{text-align:center}.result details .settings,.result details p{text-align:left}.status-line{align-items:center;gap:6px;margin:8px 0;font-size:.95rem;display:flex}.wizard-progress{background:var(--line);border-radius:2px;height:4px;margin:4px 0 16px;overflow:hidden}.wizard-progress-bar{background:var(--accent);height:100%;transition:width .2s}.wizard{text-align:center;flex-direction:column;align-items:center;gap:14px;padding-top:6vh;display:flex}.wizard-title{margin:0;font-size:1.3rem}.wizard-lead{color:var(--muted);margin:0;line-height:1.6}.wizard-details{text-align:left;width:100%;max-width:360px;color:var(--muted);font-size:.9rem}.wizard-details summary{cursor:pointer;color:var(--accent)}.wizard-distance{margin:4px 0;font-size:1.3rem;font-weight:600}.big-choice{flex-direction:column;gap:10px;width:100%;max-width:360px;display:flex}.big-choice button{border-radius:14px;padding:16px;font-size:1.1rem}.link-as-button{text-align:center;background:var(--blue);color:#fff;border-radius:14px;width:100%;max-width:360px;padding:14px 28px;font-size:1.1rem;text-decoration:none;display:block}.shape-grid{position:relative}.shape-grid svg{pointer-events:none;display:block}.shape-cell-btn{touch-action:manipulation;background:0 0;border:none;width:50%;height:50%;margin:0;padding:0;position:absolute}.shape-cell-btn:active{background:#0a6cff14}.shape-unsure{color:#888;background:#fafafa;border-color:#eee;align-self:center;margin:4px 0 8px;padding:8px 18px;font-size:.95rem}.env-check{background:var(--card);border:1px solid var(--card-line);box-shadow:var(--shadow);border-radius:12px;margin:8px 0;padding:10px 14px}.env-title{margin-bottom:2px;font-weight:600}.env-tips{color:var(--muted);margin:4px 0;padding-left:1.2em}.env-tips li{margin:2px 0}.env-brightness{align-items:center;gap:12px;margin:4px 0 8px;display:flex}.env-brightness svg{width:56px;height:56px;color:var(--accent);flex:none}.env-brightness p{margin:0;font-size:.95rem;line-height:1.5}.focus-distance{color:#111;font-size:16vmin;font-weight:600;line-height:1.1}.focus-hold{color:#999;text-align:center;font-size:12vmin;font-weight:600}.focus-guide{color:#111;text-align:center;padding:0 16px 8px;font-size:10vmin;font-weight:600;line-height:1.2}.focus-reason{color:#666;text-align:center;min-height:1.2em;padding:0 16px 6px;font-size:3.4vmin}.focus-notice{color:#c62828;text-align:center;min-height:1.2em;font-size:5vmin}.focus-progress{color:#999;font-size:.85rem;position:fixed;bottom:12px;left:12px}.focus-issue{color:#c62828;margin-bottom:12px;font-size:6vmin;font-weight:500}.focus-notice.soft{color:#888;font-size:3.2vmin}.astig-stage{flex-direction:column;align-items:center;gap:10px;display:flex}.astig-question{text-align:center;margin:0;padding:0 16px;font-size:4.2vmin;font-weight:600}.astig-cross{min-width:40px;min-height:40px;margin:0 auto;position:relative}.astig-fixation{pointer-events:none;background:#444;border-radius:50%;width:6px;height:6px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.astig-jcc-wrap{margin:0 auto;display:inline-flex;position:relative}.astig-jcc{align-items:center;display:flex}.astig-jcc-panel{justify-content:center;align-items:center;display:flex}.astig-jcc-buttons{justify-content:center;gap:8px;padding:8px 16px;display:flex}.astig-jcc-buttons button{flex:1;max-width:160px}.astig-demo-row{justify-content:center;align-items:flex-end;gap:20px;margin:10px 0;display:flex}.astig-demo-item canvas{background:#fff;border-radius:4px}.astig-demo-item{flex-direction:column;align-items:center;gap:4px;display:flex}.astig-demo-tag{color:var(--accent);font-size:.75rem;font-weight:600}.astig-demo-tag.muted{color:var(--muted);font-weight:400}.wizard-page{flex-direction:column;display:flex}.wizard-header{flex:none;justify-content:center;align-items:center;gap:12px;min-height:36px;display:flex}.wizard-dots{gap:6px;display:flex}.wizard-dot{background:#ffffff38;border-radius:50%;width:8px;height:8px}.wizard-dot.done{background:var(--accent-weak)}.wizard-dot.active{background:var(--accent)}.wizard-body{flex-direction:column;flex:1;justify-content:flex-start;align-items:stretch;gap:8px;min-height:0;padding:8px 0;display:flex;overflow:hidden auto}.wizard-body>:first-child{margin-top:auto}.wizard-body>:last-child{margin-bottom:auto}.wizard-icon{color:var(--accent);justify-content:center;display:flex}.wizard-title{margin:4px 0}.wizard-content{flex-direction:column;align-items:stretch;gap:10px;display:flex}.wizard-hint{margin:0}.wizard-age{justify-content:center;align-items:center;gap:8px;display:flex}.wizard-age input[type=number]{text-align:center;width:10em;min-width:10em}.wizard-age-unit{color:var(--muted)}.wizard-footer{padding:8px 0 calc(4px + env(safe-area-inset-bottom));background:var(--bg);flex-direction:row;flex:none;align-items:stretch;gap:12px;display:flex;position:sticky;bottom:0}.wizard-footer>button{box-sizing:border-box;border:1.5px solid var(--accent);text-align:center;border-radius:14px;flex:1 1 0;justify-content:center;align-items:center;width:auto;min-width:0;max-width:none;min-height:48px;margin:0;padding:10px 16px;font-size:1.1rem;line-height:1.2;display:flex}.wizard-option{text-align:left;border-radius:14px;flex-direction:column;align-items:flex-start;gap:2px;min-height:56px;padding:12px 16px;display:flex}.wizard-option.selected{border:1.5px solid var(--accent);background:var(--accent-weak)}.wizard-option .opt-title{font-size:1.05rem;font-weight:600}.wizard-option .opt-desc{color:var(--muted);font-size:.8rem}.wizard-steps{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.wizard-steps li{align-items:center;gap:12px;font-size:1.05rem;display:flex}.wizard-steps .num{background:var(--accent-weak);width:28px;height:28px;color:var(--accent);border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:600;display:flex}.wizard-more .wizard-more-body{text-align:left;font-size:.85rem}.wizard-page .camera{margin:4px 0}.wizard-page .camera-small{z-index:auto;opacity:1;width:200px;max-width:100%;margin:8px auto;position:relative;top:auto;bottom:auto;right:auto}.wizard-page .camera-error{text-align:left;flex-direction:column;align-items:stretch;gap:8px;display:flex}.wizard-page .camera-error p{margin:0}:root{--ink:#0d1330;--text:#e8ecf8;--blue:#4562f2;--blue-dark:#9db0ff;--violet:#6c4cf5;--teal:#0a8575;--amber:#ff8a3d;--blue-tint:#4c6bff38;--violet-tint:#8c6eff38;--teal-tint:#11c5b02e;--amber-tint:#ff8a3d2e;--ok-text:#5fe3d1;--t-muted:#b4bddf;--warn-text:#ffb27a;--ui-line:#ffffff2e;--ui-track:#ffffff1f;--r-card:22px;--r-btn:16px;--shadow-card:0 12px 28px -20px #0009;--shadow-soft:0 8px 20px -16px #0000008c;--shadow-ink:0 30px 60px -30px #000000b3;--font-ui:"Noto Sans SC", -apple-system, BlinkMacSystemFont, "PingFang SC", system-ui, sans-serif;--font-num:Manrope, "Noto Sans SC", sans-serif}:root:lang(en){--font-ui:Manrope, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, system-ui, sans-serif;--font-num:Manrope, -apple-system, system-ui, sans-serif}:lang(en) .brand-word{font-family:Manrope,system-ui,sans-serif}.app-shell{--accent:var(--blue-dark);--accent-weak:var(--blue-tint);background:var(--bg);min-height:100dvh;color:var(--text);font-family:var(--font-ui)}.app-shell .ui-page{max-width:640px;min-height:100dvh;padding:calc(36px + env(safe-area-inset-top)) 20px calc(40px + env(safe-area-inset-bottom));flex-direction:column;gap:20px;margin:0 auto;display:flex}.app-shell a{color:var(--blue-dark)}.app-shell .ui-num{font-family:var(--font-num)}.app-shell h1,.app-shell h2{margin:0}.ui-h1{font-size:24px;font-weight:900}.ui-h2{font-size:18px;font-weight:900}.ui-sub{color:var(--muted);font-size:14px}.ui-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.ui-card{background:var(--card);border:1px solid var(--card-line);border-radius:var(--r-card);box-shadow:var(--shadow-card);color:var(--text);flex-direction:column;gap:10px;padding:16px;text-decoration:none;display:flex}.ui-small{color:var(--muted);font-size:12px;line-height:1.5}.ui-grid2{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.ui-btn{border-radius:var(--r-btn);background:var(--blue);color:#fff;min-height:54px;font:inherit;cursor:pointer;border:0;justify-content:center;align-items:center;gap:8px;font-size:16px;font-weight:700;text-decoration:none;display:flex;box-shadow:0 12px 24px -12px #0009}.app-shell a.ui-btn{color:#fff}.ui-btn.light{color:var(--ink);box-shadow:none;background:#eef1ff;font-weight:900}.app-shell a.ui-btn.light{color:var(--ink)}.ui-link{min-height:44px;color:var(--blue-dark);cursor:pointer;background:0 0;border:0;align-items:center;padding:0;font-size:14px;text-decoration:underline;display:inline-flex}.ui-iris{--iris-size:190px;width:var(--iris-size);height:var(--iris-size);flex:none;position:relative}.ui-iris-ring,.ui-iris-fibers,.ui-iris-pupil,.ui-iris-glint{border-radius:50%;position:absolute}.ui-iris-ring{background:conic-gradient(from 20deg,#2d5bff,#6c4cf5,#11c5b0,#ff8a3d,#2d5bff);animation:20s linear infinite ui-spin;inset:0}.ui-iris-fibers{background:repeating-conic-gradient(#ffffff38 0 1.5deg, #fff0 1.5deg 7deg);inset:0;-webkit-mask:radial-gradient(circle,#0000 30%,#000 31% 69%,#0000 70%);mask:radial-gradient(circle,#0000 30%,#000 31% 69%,#0000 70%)}.ui-iris-pupil{background:var(--ink);inset:30%}.ui-iris-glint{opacity:.9;background:#fff;width:10%;height:10%;top:35%;left:37%}.ui-iris.float{animation:6s ease-in-out infinite ui-float}.ui-iris-glow{background:radial-gradient(circle,#2d5bff47,#2d5bff00 70%);border-radius:50%;animation:4s ease-in-out infinite ui-pulse;position:absolute;inset:-14%}@keyframes ui-spin{to{transform:rotate(360deg)}}@keyframes ui-float{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-8px)rotate(2deg)}}@keyframes ui-pulse{0%,to{opacity:.35;transform:scale(1)}50%{opacity:.7;transform:scale(1.06)}}.ui-hero{color:#fff;box-shadow:var(--shadow-ink), 0 0 40px -18px #4c6bff8c;background:linear-gradient(160deg,#1b2460,#121a45 70%);border:1px solid #ffffff1f;border-radius:30px;flex-direction:column;gap:14px;padding:24px;display:flex;position:relative;overflow:hidden}.ui-hero .ui-iris{opacity:.9;position:absolute;top:-30px;right:-34px}.ui-hero>:not(.ui-iris){position:relative}.ui-hero-chip{color:#d5dbf5;background:#ffffff1f;border-radius:999px;align-self:flex-start;padding:4px 10px;font-size:12px}.ui-hero-title{max-width:210px;font-size:26px;font-weight:900;line-height:1.3}.ui-opts{flex-direction:column;gap:12px;width:100%;display:flex}.ui-opts.two{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.ui-opt{background:var(--card);border:2px solid var(--card-line);min-height:60px;box-shadow:var(--shadow-soft);font:inherit;color:var(--text);text-align:left;cursor:pointer;border-radius:18px;justify-content:space-between;align-items:center;gap:8px;padding:0 20px;font-size:17px;font-weight:700;transition:transform .25s cubic-bezier(.2,.8,.2,1);display:flex}.ui-opt:hover{transform:translateY(-2px)}.ui-opt.selected{border-color:var(--blue-dark);background:var(--blue-tint);box-shadow:0 0 22px -8px #4c6bff99}.ui-opt small{color:var(--muted);font-size:13px;font-weight:400}.ui-opt.sym{border-radius:20px;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:8px;min-height:118px;padding:16px}.ui-opt.sym.selected{border-color:var(--sym);box-shadow:0 14px 28px -18px var(--sym)}.ui-opt .ui-sym-dot{background:#ffffff1f;border-radius:10px;width:28px;height:28px}.ui-opt.sym.selected .ui-sym-dot{background:var(--sym)}.ui-opt.sym b{font-size:16px}.ui-opt.sym small{font-size:12px;line-height:1.4}.ui-plan{background:var(--card);border:1px solid var(--card-line);box-shadow:var(--shadow-soft);border-radius:18px;align-items:center;gap:14px;padding:14px 16px;display:flex}.ui-plan-n{width:34px;height:34px;font-family:var(--font-num);color:#fff;background:var(--blue);border-radius:12px;flex:none;justify-content:center;align-items:center;font-weight:800;display:flex}.ui-plan b{font-size:16px;display:block}.ui-plan-body{flex:1;min-width:0}.ui-plan-min{color:var(--muted);font-size:13px;font-family:var(--font-num);font-weight:600}.ui-welcome{text-align:center;flex-direction:column;align-items:center;gap:28px;display:flex}.ui-welcome h2{font-size:30px;font-weight:900}.ui-welcome p{color:var(--muted);margin:0;font-size:16px;line-height:1.6}.app-shell .wizard-page{background:0 0}.app-shell .wizard-footer{background:linear-gradient(#0f163300, var(--bg) 30%);padding-top:16px}.app-shell .wizard-footer>button{border-radius:var(--r-btn);border-color:var(--ui-line);min-height:54px;font-weight:700}.app-shell .wizard-footer>button.primary{border-color:var(--blue);background:var(--blue);color:#fff;box-shadow:0 12px 24px -12px #0009}.app-shell .wizard-footer>button.secondary{background:var(--card);color:var(--text)}.app-shell .wizard-dot.done{background:var(--blue-dark)}.app-shell .wizard-dot.active{border-radius:4px;width:22px}.app-shell .wizard-body{align-items:stretch}.app-shell .wizard-title{text-align:center;text-wrap:balance;font-size:24px;font-weight:900;line-height:1.35}.app-shell .wizard-hint,.app-shell .wizard-content .center,.app-shell .wizard-content .lead{text-wrap:balance}.app-shell .wizard-content details{text-align:left}.app-shell .lead b{font-weight:900}@media (prefers-reduced-motion:reduce){.ui-iris-ring,.ui-iris.float,.ui-iris-glow{animation:none}.ui-opt,.ui-opt:hover{transition:none;transform:none}}.ui-result{text-align:center;justify-content:flex-start;align-items:center;gap:16px;padding-top:24px}.ui-result-head{margin:0;font-size:24px;font-weight:900;line-height:1.35}.ui-gauge{flex:none;width:236px;height:236px;margin-top:6px;animation:.8s cubic-bezier(.2,.8,.2,1) both ui-grow;position:relative}.ui-gauge-ring{background:conic-gradient(from -120deg, #6f8bff 0deg, #a58bff var(--g), var(--ui-track) var(--g) 240deg, transparent 240deg);border-radius:50%;position:absolute;inset:0;-webkit-mask:radial-gradient(circle,#0000 64%,#000 65%);mask:radial-gradient(circle,#0000 64%,#000 65%)}.ui-gauge-core{background:var(--card-solid);border:1px solid var(--card-line);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex;position:absolute;inset:26px;box-shadow:0 24px 40px -20px #000000b3,0 0 36px -14px #4c6bff80}.ui-gauge-value{letter-spacing:-2px;font-size:56px;font-weight:800;line-height:1}.ui-bigvalue{flex-direction:column;align-items:center;gap:4px;display:flex}.ui-bigvalue>.ui-num{font-size:44px;font-weight:800;line-height:1.1}.ui-eye{text-align:left;border-radius:20px;gap:4px;padding:14px}.ui-eye-value{font-size:26px;font-weight:800}.ui-eye-note{font-size:12px;font-weight:700}.ui-eye-note.ok{color:var(--ok-text)}.ui-eye-note.warn{color:var(--warn-text)}.ui-eye-note.info{color:var(--blue-dark)}.ui-interp{color:var(--muted);margin:0;font-size:14px;line-height:1.6}.ui-inline-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.ui-inline-actions button{background:var(--card);min-height:44px;color:var(--text);border:1.5px solid var(--ui-line);border-radius:14px}.ui-details{text-align:left;background:var(--card);border:1px solid var(--card-line);width:100%;box-shadow:var(--shadow-card);border-radius:18px;padding:14px 16px}.ui-details summary{cursor:pointer;min-height:24px;font-size:15px;font-weight:700}.ui-details-body{color:var(--muted);margin-top:10px;font-size:13px;line-height:1.7}.ui-details-body p,.ui-details-body ul{margin:6px 0}@keyframes ui-grow{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.ui-gauge{animation:none}}.app-shell .wizard-option{background:var(--card);border:2px solid var(--card-line);box-shadow:var(--shadow-soft);min-height:60px;color:var(--text);border-radius:18px}.app-shell .wizard-option.selected{border-color:var(--blue-dark);background:var(--blue-tint);box-shadow:0 0 22px -8px #4c6bff99}.app-shell .wizard-option .opt-title{font-weight:700}.app-shell .wizard-icon{color:var(--blue-dark)}.app-shell details.more-settings,.app-shell .wizard-more{background:var(--card);border:1px solid var(--card-line);box-shadow:var(--shadow-soft);border-radius:18px}.app-shell details.more-settings summary{color:var(--blue-dark);min-height:24px}.app-shell button.primary{background:var(--blue);border-color:var(--blue)}.app-shell button.secondary{color:var(--blue-dark);border-color:var(--blue-dark)}.app-shell .wizard-steps .num{background:var(--blue-tint);color:var(--blue-dark)}.tr-shell{--t-bg:#0d1330;--t-text:#fff;--t-muted:#b4bddf;--t-line:#ffffff1f;--t-card:#ffffff12;--t-teal:#5fe3d1;background:var(--t-bg);min-height:100dvh;color:var(--t-text);font-family:var(--font-ui);flex-direction:column;display:flex;position:relative}.tr-shell a{color:#a9bcff}.tr-shell h1,.tr-shell h2,.tr-shell p{margin:0}.tr-sub{color:var(--t-muted);font-size:14px;line-height:1.6}.tr-small{color:var(--t-muted);font-size:13px;line-height:1.6}.tr-orb-host{position:absolute;inset:0}.tr-orb-host canvas{width:100%;height:100%;display:block}.tr-orb-fallback{background:radial-gradient(circle at 35% 30%,#fff,#9fb4ff 30%,#2d5bff 65%,#132070);border-radius:50%;width:44px;height:44px;margin:-22px 0 0 -22px;position:absolute;box-shadow:0 0 40px 8px #2d5bff99}.tr-run{flex-direction:column;flex:1;min-height:100dvh;display:flex;position:relative}.tr-top{justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.tr-top b{font-size:15px;font-weight:700}.tr-stage{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:14px;min-height:0;padding:0 20px;display:flex;position:relative}.tr-bar{padding:12px 16px calc(16px + env(safe-area-inset-bottom));box-sizing:border-box;gap:12px;width:100%;max-width:560px;margin:0 auto;display:flex}.tr-btn{color:#fff;min-height:54px;font:inherit;cursor:pointer;background:0 0;border:1.5px solid #ffffff59;border-radius:16px;flex:1 1 0;justify-content:center;align-items:center;padding:10px 16px;font-size:16px;font-weight:700;text-decoration:none;display:flex}.tr-btn.primary{background:var(--blue);border-color:var(--blue)}.tr-shell a.tr-btn{color:#fff}.tr-btn:disabled{opacity:.5}.tr-cue{letter-spacing:.02em;font-size:28px;font-weight:900}.tr-big{font-family:var(--font-num);font-size:64px;font-weight:800;line-height:1}.tr-eye{background:radial-gradient(circle,#2d5bff59,#2d5bff00 70%);border-radius:50%;justify-content:center;align-items:center;width:150px;height:150px;display:flex}.tr-eye>div{background:radial-gradient(circle at 35% 30%,#fff,#9fb4ff 30%,#2d5bff 65%,#132070);border-radius:50%;width:110px;height:110px;transition:transform 80ms linear}.tr-count{justify-content:center;gap:28px;display:flex}.tr-count div{flex-direction:column;align-items:center;gap:2px;display:flex}.tr-count b{font-family:var(--font-num);font-size:36px;font-weight:800}.tr-count span{color:var(--t-muted);font-size:13px}.tr-notice{color:#ffc99f;text-align:center;background:#ff8a3d29;border-radius:12px;margin:0 20px;padding:10px 14px;font-size:13px;line-height:1.5}.tr-spark{width:100%;max-width:320px;height:70px}.tr-spark polyline{fill:none;stroke:var(--t-teal);stroke-width:2.5px;stroke-linejoin:round;stroke-linecap:round}.tr-spark circle{fill:#fff}.tr-choices{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}@media (prefers-reduced-motion:reduce){.tr-eye>div{transition:none}}.app-shell .ui-legal{text-align:center;color:var(--muted);font-size:12px;line-height:1.6}.app-shell .ui-legal p{margin:4px 0}.app-shell .ui-legal .ui-credit{opacity:.6;margin-top:12px}.app-shell .ui-legal summary{cursor:pointer;min-height:24px;color:var(--muted);display:inline-block}.app-shell .ui-legal-result{margin-top:4px}.app-shell .ui-input{box-sizing:border-box;border:2px solid var(--ui-line);background:var(--input-bg);width:100%;min-height:56px;font:inherit;color:var(--text);border-radius:16px;padding:0 16px;font-size:18px}.app-shell .ui-input:focus{border-color:var(--blue-dark);outline:none}.app-shell .ui-input.code{text-align:center;letter-spacing:.5em;font-size:26px;font-family:var(--font-num)}.app-shell .ui-check{align-items:flex-start;gap:12px;min-height:44px;font-size:15px;line-height:1.5;display:flex}.app-shell .ui-check input{flex:none;width:22px;height:22px;margin-top:2px}.app-shell .ui-note{background:var(--card);border:1px solid var(--card-line);box-shadow:var(--shadow-card);text-align:left;border-radius:18px;padding:14px 16px;font-size:14px;line-height:1.7}.app-shell .ui-note ul{margin:6px 0 0;padding-left:1.2em}.app-shell .ui-danger{box-shadow:none;background:#c62828}.app-shell .ui-btn.ghost{background:var(--card);color:var(--text);border:1.5px solid var(--ui-line);box-shadow:none}.app-shell .ui-btn:disabled{opacity:.5;cursor:default}.app-shell .ui-msg{margin:0;font-size:14px}.app-shell .ui-msg.err{color:var(--error)}.app-shell .ui-msg.ok{color:var(--ok-text)}.ui-share{background:var(--bg);flex-direction:column;min-height:100dvh;display:flex}.ui-share>*{width:100%;max-width:640px;margin-inline:auto}.ui-share-top{padding:calc(12px + env(safe-area-inset-top)) 20px 0;justify-content:space-between;align-items:center;display:flex}.ui-share-title{color:var(--text);margin:0;font-size:17px;font-weight:900}.ui-share-close{border:1px solid var(--line);background:var(--card);width:44px;height:44px;color:var(--text);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;display:flex}.ui-share-stage{flex:1;justify-content:center;align-items:center;padding:16px;display:flex}.ui-share-card{aspect-ratio:3/4;background:var(--ink);border:1px solid #ffffff1f;border-radius:22px;justify-content:center;align-items:center;width:min(324px,100%);display:flex;overflow:hidden;box-shadow:0 30px 60px -24px #000000b3,0 0 40px -18px #4c6bff80}.ui-share-card img{width:100%;height:100%;display:block}@keyframes ui-share-rise{0%{opacity:0;transform:translateY(16px)rotate(-2deg)}to{opacity:1;transform:none}}.ui-share-rise{animation:.6s cubic-bezier(.2,.8,.2,1) both ui-share-rise}@media (prefers-reduced-motion:reduce){.ui-share-rise{animation:none}}.ui-share-sheet{background:var(--card-solid);border-top:1px solid var(--card-line);padding:18px 20px calc(24px + env(safe-area-inset-bottom));border-radius:28px 28px 0 0;flex-direction:column;gap:14px;display:flex;box-shadow:0 -10px 30px -20px #0009}.ui-share-toggle{min-height:44px;font:inherit;color:var(--text);cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:12px;padding:0;display:flex}.ui-share-switch{background:#ffffff47;border-radius:16px;flex:none;width:52px;height:32px;padding:3px;transition:background .2s;display:flex}.ui-share-switch span{background:#fff;border-radius:50%;width:26px;height:26px;transition:transform .2s;box-shadow:0 2px 6px #0003}.ui-share-switch.on{background:var(--blue)}.ui-share-switch.on span{transform:translate(20px)}.ui-share-full{z-index:50;background:#0d1330f5;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:20px;display:flex;position:fixed;inset:0}.ui-share-full img{-webkit-touch-callout:default;-webkit-user-select:auto;user-select:auto;border-radius:16px;max-width:100%;max-height:70dvh}.ui-share-full p{color:#fff;margin:0;font-weight:700}.lang-switcher{justify-content:center;align-items:center;gap:8px;display:flex}.lang-switcher select{font:inherit;border:1px solid var(--line);background:var(--card-solid);color:inherit;border-radius:10px;padding:6px 10px}.lang-pills{color:var(--muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;display:flex}.lang-pills .ui-opt{justify-content:center;min-height:48px;padding:0 22px}.tile .tile-face>.lang-hint{opacity:.75;text-overflow:ellipsis;white-space:nowrap;max-width:calc(100% - 16px);font-size:10px;line-height:1;position:absolute;top:6px;right:8px;overflow:hidden}.lang-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.lang-sheet-back{z-index:60;background:#0d1330b3;justify-content:center;align-items:flex-end;padding:16px;display:flex;position:fixed;inset:0}.lang-sheet{background:var(--card-solid);border:1px solid var(--line);flex-direction:column;gap:2px;width:min(100%,360px);padding:8px;display:flex}.lang-sheet button{font:inherit;text-align:left;min-height:48px;color:inherit;cursor:pointer;background:0 0;border:0;padding:0 14px}.lang-sheet button.on{background:#4c6bff40;font-weight:700}.lang-sheet button:focus-visible{outline-offset:-2px;outline:2px solid #fff}.eye3d{width:min(100%,360px)}.eye3d-host{width:100%;height:170px;position:relative}.eye3d-host canvas{width:100%;height:100%;display:block}.eye3d-labels{height:26px;position:relative}.eye3d-labels span{color:var(--t-muted);font-size:14px;font-weight:800;position:absolute;top:2px;transform:translate(-50%)}.eye3d-css{position:absolute;inset:0}.eye3d-css-eye{--cover:0%;background:radial-gradient(circle,#151522 0 14%,#4a78b5 15% 32%,#f5f0ea 33%);border-radius:50%;position:absolute;top:50%;overflow:hidden;transform:translate(-50%,-50%)}.eye3d-css-eye.big{width:118px;height:118px;left:27.5%}.eye3d-css-eye.small{width:74px;height:74px;left:77.5%}.eye3d-css-eye i{height:var(--cover);background:#d9a483;position:absolute;left:-4%;right:-4%}.eye3d-css-eye i:first-child{border-bottom:2px solid #2a1a14;top:0}.eye3d-css-eye i:last-child{bottom:0}.tr-shell{width:100%;overflow-x:hidden}.tr-run{min-height:100dvh}.tr-stage{width:100%;max-width:720px;margin-inline:auto}.pe-eyes{width:200px;margin:6px auto;position:relative}.pe-eyes .eye3d{width:100%}.pe-eyes .eye3d-host{aspect-ratio:2;height:auto}.pe-eyes.mini{width:120px;margin:0 auto}.pe-eyes.hud{z-index:2;pointer-events:none;width:22%;min-width:72px;max-width:120px;margin:0;position:absolute;top:6px;right:8px}.pe-eyes.big{z-index:1;pointer-events:none;width:clamp(160px,32vmin,420px);margin:0;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.pe-eyes-status{color:var(--t-muted,#667);justify-content:center;align-items:center;gap:6px;font-size:12px;display:flex}.pe-dot{background:#e5534b;border-radius:50%;width:8px;height:8px;display:inline-block}.pe-dot.ok{background:#2cc38f}.bell{opacity:.4;pointer-events:none;width:64px;height:64px;margin:-32px 0 0 -32px;transition:opacity .2s;position:absolute}.bell.lit{opacity:1;filter:drop-shadow(0 0 12px #ffc857cc)}.bell svg{width:100%;height:100%;display:block}.bell .bell-body{transform-origin:36px 16px}.bell.lit .bell-body{animation:.6s ease-in-out infinite alternate bell-swing}@keyframes bell-swing{0%{transform:rotate(-10deg)}to{transform:rotate(10deg)}}@media (prefers-reduced-motion:reduce){.bell.lit .bell-body{animation:none}}.metro{--nav-w:96px;--nav-h:64px}.metro-main{padding-bottom:calc(var(--nav-h) + 24px + env(safe-area-inset-bottom))}.metro-page{max-width:1400px;padding:calc(40px + env(safe-area-inset-top)) 15px 0;flex-direction:column;gap:12px;margin:0 auto;display:flex}.metro-head{justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:4px;display:flex}.metro-kicker{color:var(--muted);letter-spacing:1px;font-size:13px;display:block}.metro-title{letter-spacing:1px;margin:0;font-size:42px;font-weight:300;line-height:1.15}.metro-sec{color:var(--muted);margin:8px 0 -4px;font-size:15px;font-weight:300}.metro-group{flex-direction:column;gap:12px;display:flex}.metro-page .ui-sub{margin:0}.metro-nav{z-index:20;height:calc(var(--nav-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--bg-deep);border-top:1px solid var(--card-line);grid-template-columns:repeat(3,minmax(0,1fr));display:grid;position:fixed;bottom:0;left:0;right:0}.metro-nav a{min-height:44px;color:var(--muted);border-top:3px solid #0000;flex-direction:column;justify-content:center;align-items:center;gap:4px;margin-top:-1px;font-size:12px;text-decoration:none;display:flex}.metro-nav a:hover{color:#fff}.metro-nav a.active{color:#fff;border-top-color:#4c6bff;font-weight:700}.metro-nav a:focus-visible{outline-offset:-4px;outline:2px solid #fff}@media (width>=900px){.metro-main{margin-left:var(--nav-w);padding-bottom:40px}.metro-page{padding:40px 36px 0}.metro-nav{width:var(--nav-w);border-top:0;border-right:1px solid var(--card-line);flex-direction:column;justify-content:center;gap:8px;height:auto;padding:0;display:flex;top:0;right:auto}.metro-nav a{border-top:0;border-left:3px solid #0000;flex:none;min-height:76px;margin:0}.metro-nav a.active{border-top-color:#0000;border-left-color:#4c6bff}}@media (width<=380px){.metro-title{font-size:36px}}.tile-wrap{width:100%;container-type:inline-size}.tile-grid{--cols:4;--gap:8px;grid-template-columns:repeat(var(--cols), minmax(0, 1fr));grid-auto-rows:var(--u,84px);grid-auto-flow:dense;gap:var(--gap);display:grid}.tile-grid.compact{grid-auto-rows:calc(var(--u,84px) * .8)}@container (width<=499px){.tile-grid{--cols:4;--u:calc((100cqw - (var(--cols) - 1) * var(--gap)) / var(--cols))}}@container (width>=500px){.tile-grid{--cols:6;--u:calc((100cqw - (var(--cols) - 1) * var(--gap)) / var(--cols))}}@container (width>=720px){.tile-grid{--cols:8;--u:calc((100cqw - (var(--cols) - 1) * var(--gap)) / var(--cols))}}@container (width>=900px){.tile-grid{--cols:10;--u:calc((100cqw - (var(--cols) - 1) * var(--gap)) / var(--cols))}}@container (width>=1080px){.tile-grid{--cols:12;--u:calc((100cqw - (var(--cols) - 1) * var(--gap)) / var(--cols))}}.tile{text-align:left;min-width:0;min-height:44px;font:inherit;color:#fff;cursor:pointer;-webkit-tap-highlight-color:transparent;border:0;border-radius:0;padding:0;text-decoration:none;transition:transform .12s ease-out;display:block;position:relative;overflow:hidden}.metro a.tile,.metro .tile{color:#fff}.tile.outlined{box-shadow:inset 0 0 0 1px #9db0ff59}div.tile{cursor:default}.tile:active{transform:perspective(600px)rotateX(5deg)rotateY(-5deg)scale(.97)}div.tile:active{transform:none}.tile:focus-visible{outline-offset:2px;z-index:1;outline:3px solid #fff}.tile-s{grid-area:span 1/span 1}.tile-short{grid-area:span 1/span 2}.tile-wide-short{grid-area:span 1/span 4}.tile-m{grid-area:span 2/span 2}.tile-w{grid-area:span 2/span 4}.tile-face{box-sizing:border-box;flex-direction:column;justify-content:space-between;gap:6px;width:100%;height:100%;padding:12px;display:flex;overflow:hidden}.tile-faces{flex-direction:column;height:200%;display:flex;position:absolute;top:0;left:0;right:0}.tile-faces>.tile-face{flex:1;height:auto;min-height:0}.tile.live .tile-faces{animation:9s cubic-bezier(.6,0,.2,1) infinite tile-flip;animation-delay:var(--tile-delay,0s)}.tile.live.paused .tile-faces{animation-play-state:paused}@keyframes tile-flip{0%,42%{transform:translateY(0)}50%,92%{transform:translateY(-50%)}to{transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.tile{transition:none}.tile:active{transform:scale(.98)}.tile.live .tile-faces{animation:none}}.t-lbl{font-size:13px;font-weight:500}.t-lbl,.t-nm,.t-st{overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto}.t-sm{font-size:12px}.t-cap{font-size:12px;line-height:1.35}.t-st{align-items:center;gap:6px;min-width:0;font-size:12px;display:flex}.t-st.t-clamp{-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;display:-webkit-box;overflow:hidden}.t-dot{background:#ffb27a;border-radius:50%;flex:none;width:8px;height:8px}.t-title{font-size:28px;font-weight:300;line-height:1.2}.t-big{font-family:var(--font-num);font-size:1.15em;font-weight:300;line-height:1}.t-big.t-xl{font-size:56px}.t-big.t-lg{font-size:28px}.t-text{-webkit-line-clamp:4;-webkit-box-orient:vertical;font-size:18px;font-weight:300;line-height:1.35;display:-webkit-box;overflow:hidden}.t-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 12px;margin:0;padding:0;font-size:16px;font-weight:300;list-style:none;display:grid}.t-list li{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.t-idx{width:1.4em;font-family:var(--font-num);opacity:.8;display:inline-block}.t-name-lg{font-size:22px;font-weight:300;line-height:1.2}.t-nm{font-size:13px;font-weight:500;line-height:1.25}.t-row{justify-content:space-between;align-items:flex-end;gap:8px;margin-top:4px;display:flex}.t-min{font-family:var(--font-num);flex:none;font-size:12px;font-weight:600}.tile-wide-short .t-name-lg{font-size:20px}.tile-wide-short .t-title{font-size:22px}.tile-w .t-title{font-size:30px}@container (width>=1080px){.tile-w .t-title{font-size:34px}}.t-badge{color:#0d1330;background:#fff;border-radius:4px;padding:1px 6px;font-size:11px;font-weight:700}.t-bell{opacity:.9;transform-origin:50% 20%;animation:4s ease-in-out infinite bell-idle;position:absolute;top:16px;right:18px}@keyframes bell-idle{0%,70%,to{transform:rotate(0)}76%{transform:rotate(-12deg)}82%{transform:rotate(10deg)}88%{transform:rotate(-6deg)}94%{transform:rotate(3deg)}}.t-anim{pointer-events:none;position:absolute;top:42%;left:50%;transform:translate(-50%,-50%)}.t-blink .t-lid{transform-origin:50% 0;animation:4s ease-in-out infinite t-blink;transform:scaleY(0)}@keyframes t-blink{0%,55%,to{transform:scaleY(0)}66%,78%{transform:scaleY(1)}}.t-breath{background:radial-gradient(circle,#ffffff38,#fff0 70%);border-radius:50%;justify-content:center;align-items:center;width:96px;height:96px;animation:10s ease-in-out infinite t-breath;display:flex}@keyframes t-breath{0%{opacity:.6;transform:translate(-50%,-50%)scale(.8)}40%{opacity:1;transform:translate(-50%,-50%)scale(1.1)}to{opacity:.6;transform:translate(-50%,-50%)scale(.8)}}.t-conv{color:#fff;width:60px;height:44px;font-size:34px;font-weight:700}.t-conv span{animation:4s ease-in-out infinite t-conv-a;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.t-conv span+span{opacity:.55;animation-name:t-conv-b}@keyframes t-conv-a{0%,to{transform:translate(-50%,-50%)}40%,60%{transform:translate(-80%,-50%)}}@keyframes t-conv-b{0%,to{transform:translate(-50%,-50%)}40%,60%{transform:translate(-20%,-50%)}}.tile:hover .t-bell{transform-origin:50% 20%;animation:.6s ease-in-out infinite alternate bell-swing}.t-orb{background:radial-gradient(circle at 35% 30%,#fff,#e6ff8a 35%,#9fd32a 70%);border-radius:50%;width:22px;height:22px;margin:-11px 0 0 -11px;animation:5s ease-in-out infinite alternate t-orb-move;position:absolute;top:44%;left:50%;box-shadow:0 0 18px 4px #beff5099}@keyframes t-orb-move{0%{transform:translate(-34px)}to{transform:translate(34px)}}@media (prefers-reduced-motion:reduce){.t-orb,.t-bell,.tile:hover .t-bell,.t-blink .t-lid,.t-breath,.t-conv span{animation:none}}.t-gl{pointer-events:none;width:min(100%,150px);height:60%;transition:opacity .3s;position:absolute;top:12%;left:50%;transform:translate(-50%)}.t-gl-bells{width:112px;height:112px;top:6px;left:auto;right:8px;transform:none}.brand-lockup{align-items:center;gap:calc(var(--brand-size,24px) * .34);color:#fff;line-height:1;display:inline-flex}.brand-mark{flex:none;display:block}.brand-text{flex-direction:column;gap:3px;display:flex}.brand-word{letter-spacing:.06em;font-family:Manrope,Noto Sans SC,sans-serif;font-weight:800;font-size:calc(var(--brand-size,24px) * .78)}.brand-tag{font-size:calc(var(--brand-size,24px) * .4);opacity:.62;letter-spacing:.04em;white-space:nowrap;font-weight:500}.metro-brand{opacity:.92;margin:0 0 10px;display:block}.ui-welcome-mark{filter:drop-shadow(0 0 28px #6c8cff66);place-items:center;animation:6s ease-in-out infinite brand-float;display:grid}@keyframes brand-float{50%{transform:translateY(-8px)}}@media (prefers-reduced-motion:reduce){.ui-welcome-mark{animation:none}}.tile.tile-row .tile-face{flex-direction:row;justify-content:flex-start;align-items:center;gap:12px}.skel-bar{background:linear-gradient(90deg,#ffffff1f,#ffffff4d,#ffffff1f) 0 0/200% 100%;border-radius:3px;width:40%;height:6px;animation:1.4s linear infinite skel-shimmer;display:block}@keyframes skel-shimmer{to{background-position:-200% 0}}button.primary,.ui-btn{-webkit-tap-highlight-color:transparent;transition:transform .12s ease-out}button.primary:not(:disabled):active,.ui-btn:not(:disabled):active{transform:scale(.97)}.route-skel{background:var(--bg);opacity:0;justify-content:center;min-height:100vh;animation:.2s ease-out .2s forwards skel-in;display:flex}.route-skel-col{flex-direction:column;gap:14px;width:100%;max-width:560px;padding:72px 24px;display:flex}.route-skel-col span{background:#ffffff14 linear-gradient(90deg,#ffffff0f,#ffffff24,#ffffff0f) 0 0/200% 100%;border-radius:4px;height:18px;animation:1.4s linear infinite skel-shimmer;display:block}.route-skel-col span:first-child{width:55%;height:36px}.route-skel-col span:nth-child(3){width:70%}@keyframes skel-in{to{opacity:1}}@supports not (view-transition-name:none){.app-shell,.read-col,.ui-page{animation:.25s ease-out page-fade}}@keyframes page-fade{0%{opacity:0}}@media (prefers-reduced-motion:no-preference){html[data-vt=fwd-in]:after,html[data-vt=back-out]:after{content:"";z-index:-1;pointer-events:none;background:var(--bg);view-transition-name:tile-hero;position:fixed;inset:0}::view-transition-group(tile-hero){animation-duration:.3s;animation-timing-function:cubic-bezier(.1,.9,.2,1)}::view-transition-old(tile-hero){object-fit:cover;mix-blend-mode:normal;width:100%;height:100%;animation-duration:.3s;animation-timing-function:cubic-bezier(.1,.9,.2,1)}::view-transition-new(tile-hero){object-fit:cover;mix-blend-mode:normal;width:100%;height:100%;animation-duration:.3s;animation-timing-function:cubic-bezier(.1,.9,.2,1)}html[data-vt=fwd-out]::view-transition-old(root){animation:.3s cubic-bezier(.1,.9,.2,1) both vt-out}html[data-vt=fwd-in]::view-transition-old(root){animation:.3s cubic-bezier(.1,.9,.2,1) both vt-out}html[data-vt=fwd-in]::view-transition-new(root){animation:.3s cubic-bezier(.1,.9,.2,1) both vt-in}html[data-vt=back-out]::view-transition-old(root){animation:.25s ease-out both vt-out-plain}html[data-vt=back-in]::view-transition-old(root){animation:.25s ease-out both vt-out-plain}html[data-vt=back-in]::view-transition-new(root){animation:.3s cubic-bezier(.1,.9,.2,1) both vt-in-grow}html[data-vt=tab]::view-transition-old(root){animation:.2s ease-in both vt-tab-out}html[data-vt=tab]::view-transition-new(root){animation:.3s cubic-bezier(.1,.9,.2,1) both vt-tab-in}}@keyframes vt-out{to{opacity:0;transform:scale(.94)}}@keyframes vt-out-plain{to{opacity:0}}@keyframes vt-in{0%{opacity:0}}@keyframes vt-in-grow{0%{opacity:0;transform:scale(.94)}}@keyframes vt-tab-out{to{opacity:0;transform:translate(-24px)}}@keyframes vt-tab-in{0%{opacity:0;transform:translate(32px)}}@media (prefers-reduced-motion:reduce){::view-transition-group(*){animation:none!important}::view-transition-old(*){animation:none!important}::view-transition-new(*){animation:none!important}}@media (prefers-reduced-motion:no-preference){html[data-vt-style=flip]::view-transition-group(tile-hero){animation-duration:.42s}html[data-vt-style=flip]::view-transition-image-pair(tile-hero){perspective:1400px}html[data-vt-style=flip]::view-transition-old(tile-hero){backface-visibility:hidden;animation:.42s cubic-bezier(.1,.9,.2,1) both vt-flip-front}html[data-vt-style=flip]::view-transition-new(tile-hero){backface-visibility:hidden;animation:.42s cubic-bezier(.1,.9,.2,1) both vt-flip-back}html[data-vt-style=flip][data-vt=fwd-in]::view-transition-new(root){animation:none}html[data-vt-style=flip][data-vt=back-in]::view-transition-new(root){animation:none}}@keyframes vt-flip-front{0%{opacity:1;transform:rotateY(0)}49.9%{opacity:1}50%,to{opacity:0;transform:rotateY(90deg)}}@keyframes vt-flip-back{0%,49.9%{opacity:0;transform:rotateY(-90deg)}50%{opacity:1}to{opacity:1;transform:rotateY(0)}}.tr-sky-host{background:radial-gradient(at 50% 40%,#151c44 0%,#070a1c 70%,#04060f 100%);position:absolute;inset:0}.tr-sky-host canvas{width:100%;height:100%;display:block}.tr-chip{color:#fff;background:#6e8cff33;border-radius:999px;padding:4px 14px;font-size:14px;display:inline-block}.tr-chip.combo{background:#c8ff5a33}.tr-sky-result{aspect-ratio:3/4;border-radius:14px;width:min(100%,320px);height:auto;margin:8px auto;display:block}
