/* Local creator tools retain the portrait layout and the game's jewel colours. */
body[data-screen=tester] .app-shell{max-width:480px;min-height:100svh;padding:0 max(14px,env(safe-area-inset-right)) 0 max(14px,env(safe-area-inset-left));background:linear-gradient(160deg,#0759bfeb,#34217ae8 60%,#071c46f5);box-shadow:0 0 55px #001735a6}
body[data-screen=tester] .topbar{height:66px}
body[data-screen=tester] .wordmark{font-size:18px}
body[data-screen=tester] main{padding:0 0 24px;min-height:0}
body[data-screen=tester] footer{display:block;text-align:center}
body[data-screen=tester] footer>span{display:none}
.tester-page{color:#fff;max-width:100%;overflow-wrap:anywhere}
.tester-page .page-heading{padding:20px 0;margin:0}
.tester-page .page-heading h1{font-size:29px;margin:8px 0}
.tester-page .page-heading p{color:#e4edff;font-size:15px;line-height:1.5}
.tester-page .heading-icon{font-size:35px;color:#ffe392;text-shadow:0 0 18px #ffcf6366}
.tester-banner{position:sticky;top:0;z-index:35;display:flex;flex:0 0 auto;align-items:center;justify-content:space-between;gap:8px;width:100%;max-width:480px;margin:0 auto;padding:9px 10px;border:1px solid #e5c578;border-radius:13px;background:linear-gradient(125deg,#752acb,#3b1974);box-shadow:0 4px 15px #0005;color:#fff}
.tester-banner strong{font-size:12px;line-height:1.35;letter-spacing:.035em}
.tester-banner-actions{display:flex;gap:5px;flex-shrink:0}
.tester-banner button{min-height:40px;padding:5px 10px;border:1px solid #cfc0ec;border-radius:10px;background:#251346;color:white;font-size:13px;font-weight:700;cursor:pointer}
.tester-banner button:last-child{background:#ffe096;color:#43254e;border-color:#fff0c8}
.tester-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:0 0 14px}
.tester-overview .stat-box{display:flex;flex-direction:column;justify-content:space-between;gap:10px;min-width:0;padding:13px 6px;background:linear-gradient(145deg,#1263ab,#10315f);border:1px solid #86c4f4;border-radius:16px;color:#fff}
.tester-overview .stat-box:nth-child(2){background:linear-gradient(145deg,#097156,#073d44);border-color:#61d7b9}
.tester-overview .stat-box:nth-child(3){background:linear-gradient(145deg,#775615,#4b3515);border-color:#f0cc70}
.tester-overview .stat-box span{font-size:12px;line-height:1.4}
.tester-overview .stat-box strong{font-size:24px;color:#fff;font-variant-numeric:tabular-nums}
.tester-note,.tester-step-note{background:#fff0bc;color:#493315;border:1px solid #ffda72;border-radius:14px;padding:14px;font-size:14px;line-height:1.55;text-align:left}
.tester-card{padding:18px 15px;margin:17px 0;border:1px solid #9476d9;border-radius:23px;background:linear-gradient(135deg,#422078,#211949);box-shadow:inset 0 1px 0 #ffffff33,0 8px 20px #00172c55}
.tester-card h2{font-size:20px;margin:0 0 10px;color:#fff}
.tester-card p{font-size:14px;line-height:1.55;color:#e7e7ff;margin:10px 0 16px}
.tester-card .tester-help{font-size:12px;color:#dbe7ff;margin:12px 0 0}
.tester-blue{background:linear-gradient(135deg,#164a81,#142754);border-color:#5cb8f2}
.tester-gold{background:linear-gradient(135deg,#6b4718,#3a234e);border-color:#e2bc61}
.tester-gold h2{color:#ffe5a0}
.tester-links{background:linear-gradient(135deg,#095846,#123955);border-color:#73cebb}
.tester-field{display:flex;flex-direction:column;gap:7px;margin:15px 0;min-width:0}
.tester-field label,.tester-code-form label{font-weight:650;font-size:14px}
.tester-field select,.tester-field input,.tester-code-form input{width:100%;max-width:100%;min-width:0;min-height:48px;border:1px solid #9fc6f4;border-radius:12px;padding:10px 12px;font:inherit;font-size:16px;color:#14294d;background:#eef5ff;box-sizing:border-box}
.tester-field option{color:#14294d;background:#fff}
.tester-factors{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:18px 0}
.tester-factors button{min-height:48px;padding:8px 3px;border:1px solid #a989e2;border-radius:12px;background:#261344;color:#f3e8ff;font-size:18px;font-weight:800;cursor:pointer}
.tester-factors button.selected{color:#422300;background:linear-gradient(#fff3b8,#ffbf3f);border-color:#fff0be;box-shadow:0 0 14px #ffc55e55}
.tester-card>.gloss,.tester-page>.gloss{display:block;width:100%;margin-top:12px;min-height:50px;font-size:15px;padding:12px 10px;white-space:normal}
.tester-page button:disabled{opacity:.55;cursor:wait}
.tester-aided{border:1px solid #b4cee8;color:#e8f6ff;background:#1d3a69;border-radius:12px;padding:12px;min-height:44px;cursor:pointer}
.tester-aided[aria-pressed=true]{color:#ffe598;border-color:#eec559;background:#483851}
.tester-reset{display:block;width:100%;min-height:48px;border:1px solid #edaaaa;border-radius:13px;color:#fff1f1;background:#701f43;margin:20px 0 10px;padding:12px;font-size:14px;cursor:pointer}
.tester-access{display:flex;align-items:center;justify-content:center;gap:8px;width:max-content;max-width:100%;margin:16px auto 0;padding:8px 14px;min-height:44px;border:0;background:transparent;color:#bdcde4;border-radius:8px;font:inherit;font-size:13px;font-weight:650;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:pan-y;cursor:pointer}
.tester-access-flag{display:block;width:18px;height:12px;border-radius:2px;background:linear-gradient(90deg,#2679dd 0 33.333%,#fff 33.333% 66.667%,#ef4254 66.667%);box-shadow:0 0 0 1px #ffffff33}
.tester-open{width:100%;margin-top:16px}
.tester-code-form{display:flex;flex-direction:column;gap:12px}
.tester-code-form input{text-align:center;letter-spacing:.14em}
.tester-code-message{min-height:1.5em;margin:0;font-size:14px}
.tester-code-form .gloss{min-height:48px}
.tester-page :is(button,input,select):focus-visible,.tester-banner button:focus-visible,.tester-access:focus-visible{outline:3px solid #ffe29a;outline-offset:3px}
body[data-testing=true][data-screen=feedback] .topbar{display:none}
body[data-testing=true][data-screen=feedback] .feedback-page{padding-top:12px}
@media(max-width:350px){.tester-card{padding:16px 12px}.tester-banner{gap:4px;padding:7px}.tester-banner strong{font-size:11px}.tester-banner button{padding:5px 8px}.tester-overview .stat-box strong{font-size:22px}}
/* Illustrated studio, available after the local tester code is accepted. */
.tester-duo-showcase{display:flex;flex-direction:column;align-items:center;gap:8px;isolation:isolate;position:relative;overflow:hidden;width:100%;padding:18px 14px;margin:0 0 12px;border:1px solid #ffe395;border-radius:22px;background:linear-gradient(155deg,#083369aa,#221447dd),url('./duo/assets/paris.png') center 43%/cover;color:#fff;text-align:center;font:inherit;cursor:pointer;box-shadow:inset 0 1px #fff7,0 8px 24px #030f3480}
.tester-duo-kicker{font-size:12px;letter-spacing:.2em;font-weight:800;color:#ffe49a}.tester-duo-showcase>strong{font:700 24px/1.15 Georgia,serif;color:#fff4cd}.tester-duo-showcase>span{font-size:14px;line-height:1.4}.tester-duo-art{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:100%;max-width:360px;gap:4px}.tester-duo-art>.duo-medal{filter:drop-shadow(0 4px 6px #000b)}
.tester-duo-cta{display:block;width:100%;margin-top:6px;padding:11px;border:1px solid #ffe49c;border-radius:12px;background:linear-gradient(#ffdf76,#f4af29);color:#342009;font-weight:800}
.tester-solo-preview{margin:12px 0 22px!important}
body[data-screen=duo-preview] .app-shell{max-width:480px;background:linear-gradient(#052657cc,#06132bea),url('./duo/assets/paris.png') center/cover fixed}
.tester-duo-gallery{color:white}.tester-duo-gallery .page-heading{padding:20px 0}.tester-duo-gallery .page-heading h1{font-size:28px}.tester-duo-gallery .page-heading p{font-size:14px;line-height:1.5}.tester-duo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:20px}
.tester-duo-card{min-width:0;text-align:center;border:1px solid #e7c676;border-radius:18px;background:linear-gradient(155deg,#1362a99c,#161646d9);padding:10px 8px 12px;box-shadow:inset 0 1px #fff4,0 6px 16px #0005}.tester-duo-card>.duo-medal{width:100%;max-width:155px;margin:0 auto}.tester-duo-card h2{display:flex;align-items:center;justify-content:center;min-height:42px;margin:6px 0 12px;font:700 17px/1.2 Georgia,serif;color:#fff1c6;overflow-wrap:anywhere}
.tester-duo-tiers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.tester-duo-tier{display:grid;gap:4px;min-width:0;min-height:56px;border:1px solid #dda375;border-radius:10px;background:linear-gradient(#724324,#442813);color:#ffe0bb;padding:8px 3px;cursor:pointer;font:inherit}.tester-duo-tier strong{font-size:14px}.tester-duo-tier small{font-size:12px}.tester-duo-tier[data-rank=silver]{border-color:#c6e8ff;background:linear-gradient(#536e91,#263852);color:#f1f9ff}.tester-duo-tier[data-rank=gold]{border-color:#ffe17d;background:linear-gradient(#9d741f,#5c3b09);color:#fff4b9}.tester-duo-tier[data-rank=platinum]{border-color:#a8fdff;background:linear-gradient(#086a89,#263562);color:#c7fdff;box-shadow:inset 0 0 12px #6deeff35}.tester-duo-gallery>.gloss{width:100%}
:is(.tester-duo-showcase,.tester-duo-tier,.unlock-preview):focus-visible{outline:3px solid #fff0a6;outline-offset:3px}
.access-owner{display:block;color:#d6eaff;text-align:center;padding:12px;min-height:44px;margin:8px 0;border:1px solid #abcaf16b;border-radius:12px;background:#143566;text-decoration:underline}
