:root{--bg:#14161a;--fg:#f1ece2;--mut:#9aa0a8;--acc:#e8b931;--pan:#22262d;--ok:#6fcf97;--no:#eb5757}*{box-sizing:border-box}body{background:var(--bg);color:var(--fg);margin:0;font:16px/1.4 system-ui,sans-serif}.app{max-width:480px;margin:0 auto;padding:0 16px 32px}.banner{background:var(--acc);color:#000;text-align:center;margin:0 -16px 12px;padding:4px 8px;font-size:12px;font-weight:600}.stack{flex-direction:column;gap:12px;display:flex}h1{letter-spacing:.05em;margin:8px 0 0}.center{text-align:center}.portrait{aspect-ratio:1;background:#444;border-radius:8px;width:100%;position:relative;overflow:hidden}.portrait img{object-fit:cover;user-select:none;width:100%;height:100%;position:absolute;inset:0}.btn{background:var(--pan);color:var(--fg);font:inherit;cursor:pointer;border:2px solid #3a404a;border-radius:10px;flex:1;min-height:44px;padding:12px}.btn.primary{background:var(--acc);color:#000;border-color:var(--acc);font-weight:700}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.small{flex:none;min-width:44px;min-height:44px;padding:6px 12px}.btn:focus-visible,.opt:focus-visible,.tab:focus-visible,select:focus-visible{outline-offset:2px;outline:3px solid #fff}.row{align-items:stretch;gap:8px;display:flex}.spacer{flex:1}.tabs{gap:6px;display:flex}.tab{background:var(--pan);color:var(--fg);font:inherit;cursor:pointer;border:2px solid #0000;border-radius:8px;flex-direction:column;flex:1;padding:6px 4px;display:flex}.tab small{color:var(--mut);font-size:11px}.tab.on{border-color:var(--acc)}.step{color:var(--mut);margin:0}.carousel{scroll-snap-type:x mandatory;gap:8px;margin-right:-16px;padding:4px 40px 8px 0;display:flex;overflow-x:auto}.opt{scroll-snap-align:start;background:var(--pan);cursor:pointer;border:3px solid #0000;border-radius:8px;flex:0 0 82%;min-height:56px;padding:0;position:relative;overflow:hidden}.opt.sel{border-color:var(--acc)}.thumb{width:100%;position:relative;overflow:hidden}.thumb img{height:auto;position:absolute}.optlabel{color:var(--mut);text-align:left;padding:4px 6px 6px;font-size:12px;display:block}.check{background:#000a;border-radius:50%;place-items:center;width:22px;height:22px;font-size:12px;display:grid;position:absolute;top:6px;right:6px}.opt.sel .check{background:var(--acc);color:#000;font-weight:700}.timer{background:var(--pan);border-radius:3px;height:6px;overflow:hidden}.timer div{background:var(--acc);transform-origin:0;width:100%;height:100%;animation:linear forwards shrink}@keyframes shrink{to{transform:scaleX(0)}}.field{flex-direction:column;gap:4px;display:flex}select{font:inherit;background:var(--pan);color:var(--fg);border:2px solid #3a404a;border-radius:8px;padding:10px}.pair{grid-template-columns:1fr 1fr;gap:8px;display:grid}figure{margin:0}figcaption{text-align:center;color:var(--mut);font-size:13px}.parts{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.ok{color:var(--ok)}.no{color:var(--no)}.result{text-align:center;flex-direction:column;gap:8px;display:flex}.score{color:var(--acc);font-size:40px;font-weight:800}.result h2{margin:0}.logpanel{z-index:10;background:#000e;flex-direction:column;gap:8px;padding:12px;display:flex;position:fixed;inset:0}.logpanel pre{flex:1;margin:0;font-size:11px;overflow:auto}@media (prefers-reduced-motion:reduce){.timer div{animation:none}.carousel{scroll-behavior:auto}}.portrait canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.thumb canvas{width:100%;height:100%;display:block}.stage{border-radius:8px;position:relative;overflow:hidden}.scrim{background:#0000008c;animation:.15s ease-out scrimin;position:absolute;inset:0}@keyframes scrimin{0%{background:0 0}}.pv{aspect-ratio:1;touch-action:pan-y;border-radius:8px;width:80%;animation:.15s ease-out pvin;position:absolute;top:3%;left:10%;overflow:hidden;box-shadow:0 4px 24px #000a}@keyframes pvin{0%{opacity:0}}.chip{color:#fff;background:#000b;border-radius:12px;padding:2px 8px;font-size:12px;position:absolute;top:6px;left:6px}.close{background:#000b;flex:none;min-width:44px;padding:6px 10px;position:absolute;top:2px;right:2px}.pvbar{gap:8px;display:flex;position:absolute;bottom:2%;left:4%;right:4%}.pvbar .btn{background:#000c;flex:none;min-width:56px}.pvbar .btn.primary{background:var(--acc);flex:1}.grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;display:grid}.grid .opt{flex:none}.btn:focus-visible.close,.close:focus-visible{outline:3px solid #fff}@media (prefers-reduced-motion:reduce){.scrim,.pv{animation:none}}.app:has(.funnel){padding:0 4px 12px}.app:has(.funnel) .banner{margin:0 -4px 8px}.funnel{gap:8px}.funnel .stage.cur{border:3px solid var(--acc);border-radius:10px;width:min(100%,38dvh);margin:0 auto}.funnel .stage .portrait{border-radius:0}.badge{z-index:1;background:var(--acc);color:#000;pointer-events:none;border-radius:12px;padding:2px 10px;font-size:12px;font-weight:700;position:absolute;top:6px;left:6px}.funnel .step{text-align:center;font-size:13px}.fgrid{gap:3px;width:min(100%,46dvh);margin:0 auto;display:grid}.fcell{aspect-ratio:1;background:var(--pan);cursor:pointer;border:1px solid #3a404a;border-radius:6px;padding:0;position:relative;overflow:hidden}.fcell:focus-visible{outline-offset:1px;outline:3px solid #fff}.fcell .portrait{aspect-ratio:auto;border-radius:0;height:100%;position:absolute;inset:0}.fcell .num{color:#fff;background:#000b;border-radius:9px;place-items:center;min-width:18px;height:18px;font-size:11px;display:grid;position:absolute;top:3px;left:3px}.fcell .tag{color:#fff;text-align:center;white-space:nowrap;text-overflow:ellipsis;background:#000b;padding:0 2px;font-size:11px;line-height:16px;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.parts .near{color:var(--acc)}.funnel .row .btn{padding:8px 4px}.stage:has(.scrim) .badge{display:none}.funnel .chip{max-width:calc(100% - 12px)}.fcell .tag.alt{background:#2a3b66cc;font-size:10px}.portrait.empty{background:var(--pan);color:#9aa3b2;text-align:center;place-items:center;padding:12px;font-size:14px;display:grid}.given .grp{gap:6px;display:grid}.given .chips{flex-wrap:wrap;gap:8px;display:flex}.chip2{background:var(--pan);min-height:44px;color:inherit;font:inherit;cursor:pointer;border:2px solid #3a404a;border-radius:22px;padding:0 14px}.chip2.on,.swatch.on{border-color:var(--acc);outline:2px solid var(--acc)}.swatch{cursor:pointer;border:2px solid #3a404a;border-radius:50%;width:44px;height:44px}.dbg{color:#9aa3b2;margin:0;font-size:11px}.fcell .catmark{color:#fff;background:#000a;border-radius:0 6px 6px 0;place-items:center;width:16px;height:22px;font-size:12px;display:grid;position:absolute;top:50%;left:0;transform:translateY(-50%)}.facit{border-collapse:collapse;width:100%;margin:8px 0;font-size:13px}.facit th,.facit td{text-align:left;border-bottom:1px solid #3a404a;padding:3px 6px}.facit thead th{color:#9aa3b2;font-weight:600}.facit tr.ok td{color:#7bd88f}.tape{pointer-events:none;z-index:5;width:150px;height:150px;position:fixed;top:0;right:0;overflow:hidden}.tape span{color:#111;letter-spacing:.08em;text-align:center;white-space:nowrap;background:repeating-linear-gradient(135deg,#f5d000 0 14px,#e8c400 14px 28px);border-top:2px solid #111;border-bottom:2px solid #111;width:260px;padding:5px 0;font:800 10px/1 system-ui,sans-serif;position:absolute;top:30px;right:-62px;overflow:hidden;transform:rotate(45deg);box-shadow:0 2px 6px #0008}@media (width<=480px){.tape{width:110px;height:110px}.tape span{padding:4px 0;font-size:8px;top:20px;right:-72px}}.facit tr.near td{color:#e0c060}.gfaces h2{margin:0;font-size:18px}.gopts{gap:8px;display:grid}.gopt{background:var(--pan);color:inherit;font:inherit;cursor:pointer;border:2px solid #3a404a;border-radius:10px;flex-direction:column;min-height:44px;padding:0;display:flex;position:relative;overflow:hidden}.gopt.on{border-color:var(--acc);outline:2px solid var(--acc)}.gopt:focus-visible{outline-offset:2px;outline:3px solid #fff}.gopt .portrait{border-radius:0}.gopt .cap{text-align:center;justify-content:center;align-items:center;gap:6px;min-height:44px;padding:6px 4px;font-size:14px;display:flex}.gopt .dot{border:1px solid #fff6;border-radius:50%;flex:none;width:14px;height:14px;display:inline-block}.btn.on{border-color:var(--acc);outline:2px solid var(--acc)}.gsum{gap:6px;display:grid}.gsumrow{background:var(--pan);min-height:44px;color:inherit;font:inherit;text-align:left;cursor:pointer;border:2px solid #3a404a;border-radius:10px;grid-template-columns:1fr 1fr auto;align-items:center;gap:8px;padding:6px 12px;display:grid}.gsumrow small{color:#9aa3b2}.release{flex-direction:column;gap:6px;display:flex}.relrow{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.relrow .btn{flex:auto;min-height:44px;padding:6px 10px;font-size:14px}body:has(.lu) .tape{display:none}.lu{--chrome:190px;flex-direction:column;max-width:900px;min-height:100dvh;margin:0 auto;padding:6px 8px 10px;display:flex}.lu-head{letter-spacing:.05em;justify-content:space-between;align-items:center;min-height:32px;display:flex}.lu-dots{align-items:center;gap:5px;display:flex}.lu-dots i{background:color-mix(in srgb,var(--mut) 30%,transparent);border-radius:50%;width:10px;height:10px}.lu-dots i.cur{box-shadow:inset 0 0 0 1.5px var(--mut);background:0 0}.lu-dots i.ok{background:var(--ok)}.lu-dots i.no{background:var(--no)}.lu-prompt{text-align:center;margin:2px 0 6px;font-weight:600}.lu-card{flex-direction:column;gap:12px;width:100%;max-width:440px;margin:12px auto;display:flex}.lu-params{color:var(--mut);text-align:center;margin:0;font-size:12px}.lu-reset{color:inherit;cursor:pointer;text-decoration:underline}.lu-center{flex-direction:column;align-items:center;gap:10px;margin-top:8px;display:flex}.lu-box{aspect-ratio:1;background:#8e9195;border-radius:6px;width:min(86vw,60dvh,520px);position:relative;overflow:hidden}.lu-study{object-fit:cover;user-select:none;width:100%;height:100%;position:absolute;inset:0}.lu-noise{width:100%;height:100%;image-rendering:pixelated;position:absolute;inset:0}.lu-blank{background:#8e9195;position:absolute;inset:0}.lu-center .timer{width:min(86vw,60dvh,520px)}.lu-pick{flex-direction:column;flex:1;align-items:center;min-height:0;display:flex}.lu-gridwrap{justify-content:center;width:100%;display:flex}.lu-grid{width:min(100%,calc((100dvh - var(--chrome) - 8px) * .7692 + 8px));grid-template-columns:repeat(3,1fr);gap:4px;display:grid}.lu-grid.n6{width:min(100%,calc((100dvh - var(--chrome) - 12px) * 1.1538 + 8px));grid-template-columns:repeat(3,1fr)}@media (aspect-ratio<=1){.lu-grid.n6{width:min(100%,calc((100dvh - var(--chrome) - 20px) * .5128 + 4px));grid-template-columns:repeat(2,1fr)}}.lu-tile{cursor:pointer;color:inherit;font:inherit;text-align:left;background:#555a60;border:2px solid #2a2d32;border-radius:4px;flex-direction:column;min-width:0;padding:0;display:flex;overflow:hidden;container-type:inline-size}.lu-tile:hover{border-color:var(--acc)}.lu-tile:active{border-color:#fff}.lu-tile:focus-visible{outline-offset:1px;outline:3px solid #fff}.lu-photo{aspect-ratio:1;background:#8e9195;width:100%;display:block;position:relative}.lu-photo img{object-fit:cover;user-select:none;-webkit-user-drag:none;width:100%;height:100%;position:absolute;inset:0}.lu-chart{pointer-events:none;background:repeating-linear-gradient(#0f0f0fbf 0 1px,#0000 1px 6.25%) 0 0/5% 100% no-repeat,repeating-linear-gradient(#0f0f0fbf 0 1px,#0000 1px 6.25%) 100% 0/5% 100% no-repeat,repeating-linear-gradient(#0f0f0fe6 0 2px,#0000 2px 25%) 0 0/9% 100% no-repeat,repeating-linear-gradient(#0f0f0fe6 0 2px,#0000 2px 25%) 100% 0/9% 100% no-repeat;position:absolute;inset:0}.lu-plac{aspect-ratio:1/.3;color:#f2ead0;background:#14171c;border-top:2px solid #e8e0c0;align-items:center;gap:2.5cqw;width:100%;padding:0 3cqw;display:flex}.lu-nr{letter-spacing:.02em;white-space:nowrap;font:800 13cqw/1 system-ui,sans-serif}.lu-meta{letter-spacing:0;white-space:nowrap;flex-direction:column;gap:1.2cqw;min-width:0;font-size:4.2cqw;line-height:1.15;display:flex}.lu-meta b{font-weight:700}.lu-meta em{color:#b9b39c;font-size:3.7cqw;font-style:normal}.lu-plac.lang-en{flex-direction:column;justify-content:center;align-items:flex-start;gap:1cqw}.lu-plac.lang-en .lu-nr{font-size:11cqw}.lu-plac.lang-en .lu-meta{white-space:nowrap;flex-direction:row;gap:2cqw}.lu-none{flex-direction:column;flex:none;align-items:center;gap:2px;width:100%;max-width:440px;margin-top:10px;font-weight:700;display:flex}.lu-none small{color:var(--mut);font-size:12px;font-weight:400}.lu-chosen{justify-content:center;align-items:center;gap:12px;display:flex}.lu-chosen img{object-fit:cover;border-radius:6px;width:96px;height:96px}.lu-conf{flex-direction:column;gap:8px;display:flex}.lu-conf .btn{flex:none}.lu-feedback .pair{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.lu-fb{aspect-ratio:1;object-fit:cover;border-radius:6px;width:100%}.lu-feedback h2{text-align:center;margin:0}.lu-summary .parts li{justify-content:space-between;gap:8px;display:flex}@media (width>=700px){.lu-head{padding:0 4px}}.lu-help{text-align:center;color:var(--mut);margin:0;font-size:13px;line-height:1.35}.lu-pts-inline{margin-top:2px;font-size:.8em;display:block}.lu-score{font-size:1.1em}.lu-nick{flex-direction:column;gap:6px;display:flex}.lu-nick label{color:var(--mut);flex-direction:column;gap:4px;font-size:13px;display:flex}.lu-nick input{font:inherit;border:1px solid var(--mut);color:inherit;background:0 0;border-radius:6px;padding:8px;font-size:16px}.lu-nick .row{gap:6px;display:flex}.lu-nick .row input{flex:1;min-width:0}.lu-nick .dice{white-space:nowrap}.lu-board small{color:var(--mut);font-weight:400}.lu-board .rp{color:var(--mut);cursor:pointer;opacity:.6;background:0 0;border:0;width:28px;padding:0;font-size:13px}.lu-board .rp:hover:not(:disabled){opacity:1}.lu-board .rp:disabled{cursor:default}.lu-board h3{margin:8px 0 4px;font-size:15px}.lu-board ol{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.lu-board li{border-radius:4px;grid-template-columns:1fr auto auto 28px;align-items:center;gap:12px;padding:3px 6px;font-size:14px;display:grid}.lu-board li.own{background:#ffc83c38;font-weight:700}.lu-board .nk{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.lu-home{color:inherit;text-decoration:none}.lu-home:hover b,.lu-home:focus-visible b{text-decoration:underline}.lu-home-btn{text-align:center;color:var(--muted,#9aa3ab);background:0 0;border-color:#0000;margin-top:10px;text-decoration:none;display:block}
