:root{--navy:#173052;--gold:#ffb52e;--muted:#617590;--line:#dce5ef}*{box-sizing:border-box}body{margin:0;font:16px Arial,Helvetica,sans-serif;color:var(--navy);background:radial-gradient(ellipse at 0 0,#fff0c7,transparent 36%),radial-gradient(ellipse at 100% 90%,#fff9e9,transparent 45%),#f0f6fc;min-height:100vh}header,main{max-width:1180px;margin:auto}header{padding:28px 24px;display:flex;justify-content:space-between;align-items:center}.brand{display:flex;align-items:center;gap:13px;text-decoration:none;color:var(--navy);font-size:20px;font-weight:700}.brand b{display:grid;place-items:center;background:var(--navy);color:white;border-radius:13px;width:46px;height:46px;font-size:20px;box-shadow:0 7px 16px #17305220}.gold{color:#d58a00}.tag{font-size:12px;font-weight:700;background:#ffffffaa;border:1px solid #d8e2ed;padding:10px 14px;border-radius:30px}.eyebrow{font-size:12px;letter-spacing:2px;font-weight:700}main{padding:0 24px}.setup{display:grid;grid-template-columns:41% 59%;border:1px solid var(--line);border-radius:28px;overflow:hidden;background:#fff;box-shadow:0 20px 45px #142d4e14;margin-bottom:22px}.intro{background:var(--navy);color:white;padding:44px 40px;position:relative;overflow:hidden}.intro .eyebrow{color:var(--gold)}h1{font-size:64px;line-height:1.02;letter-spacing:-2.5px;margin:20px 0 23px}h2{margin:0 0 15px;font-size:17px}h2 i{display:inline-grid;place-items:center;width:28px;height:28px;margin-right:10px;border-radius:8px;background:var(--navy);color:white;font-style:normal;font-size:15px}.intro>p{font-size:17px;line-height:1.7;color:#d8e4f3}.intro-note{position:relative;z-index:1;border:1px solid #ffffff25;border-radius:19px;background:#ffffff12;padding:19px;margin-top:33px;font-size:14px}.intro-note p{margin:8px 0 0;color:#cbdbee;line-height:1.5}.watermark{position:absolute;font-size:220px;bottom:-45px;right:-12px;color:#ffffff06;line-height:1}.setup-form{padding:32px}.sectionhead{display:flex;justify-content:space-between;align-items:center;gap:12px}.settings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin:10px 0 23px}label{display:flex;flex-direction:column;gap:8px;font-size:13px;font-weight:700}input,select{padding:11px;border:1px solid #d5dfeb;border-radius:11px;background:#f5f8fc;color:var(--navy);font:inherit;width:100%;min-width:0}button,.filebutton{font:700 14px Arial,Helvetica,sans-serif;border:1px solid transparent;border-radius:13px;padding:12px 17px;background:var(--gold);color:#24200f;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}button:hover,.filebutton:hover{filter:brightness(.97)}button:disabled{opacity:.5;cursor:default}.secondary,.filebutton{background:#f1f5fa;border-color:#edf1f7;color:var(--navy)}.actions{display:flex;gap:9px;flex-wrap:wrap;align-items:center}.setup-actions{justify-content:flex-end}.setup-actions #preview{box-shadow:0 8px 20px #d99a1c25;padding:15px 24px}.hint{font-size:13px;color:var(--muted);line-height:1.5}details{border-top:1px solid var(--line);margin-top:20px;padding-top:15px}details .actions{margin-top:14px}summary{cursor:pointer;font-size:13px;font-weight:700}details label{max-width:400px}#saved>div{padding:12px 0;display:flex;gap:10px;flex-wrap:wrap;align-items:center}.card{background:white;border:1px solid var(--line);border-radius:22px;padding:20px;margin-bottom:20px;box-shadow:0 8px 25px #142d4e08}.play-top{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:12px}.play-top h2{font-size:22px;margin:5px 0 0}.play-top .eyebrow{font-size:10px}.play-tools{display:flex;gap:14px;align-items:center;flex-wrap:wrap;border-radius:12px;background:#eef4fa;padding:10px 14px;font-size:12px}#clock{font-size:24px;font-variant-numeric:tabular-nums}#rules{margin-right:auto;font-size:11px}.play-tools button{padding:9px 12px;font-size:12px}#instruction{margin:9px 0}.workspace{height:clamp(320px,calc(100dvh - 265px),720px);display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:14px}#surface{position:relative;display:flex;align-items:center;justify-content:center;min-width:0;min-height:0;background:white;border:1px solid #dbe3ed;border-radius:13px;overflow:hidden}canvas#canvas{display:block;width:100%;height:100%;touch-action:none}.tray-panel{display:flex;flex-direction:column;min-height:0;border:1px solid #dbe3ed;border-radius:13px;background:#f3f6fa;overflow:hidden}.tray-heading{padding:12px;display:flex;justify-content:space-between;font-size:12px;border-bottom:1px solid #dbe3ed}#tray{overflow:auto;overscroll-behavior:contain;min-height:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px;align-content:start;flex:1}.piece-button{padding:3px;border:2px solid transparent;background:white;min-width:0;position:relative;touch-action:pan-y}.piece-button.selected{border-color:#d99a00;background:#fff4d8}.piece-button canvas{width:100%;height:85px;display:block;pointer-events:none}.piece-button span{font-size:10px;color:#617590}.tray-panel p{grid-column:1/-1;font-size:13px;color:var(--muted);line-height:1.5}.keyboard-help{font-size:11px;margin-bottom:0}#referencePanel{position:absolute;top:12px;left:12px;z-index:5;background:#ffffffed;border:1px solid #d0dce9;border-radius:13px;box-shadow:0 6px 20px #17305220;padding:8px;max-width:50%}#referencePanel button{padding:5px 9px;font-size:11px;display:block;margin-left:auto;margin-bottom:5px}#refImage{display:block;max-width:100%;max-height:200px;object-fit:contain}#result{background:#edf7ef;border:1px solid #c6dfcb;border-radius:14px;padding:16px;margin-top:12px}#result h3{margin:0 0 8px;font-size:23px}#result p{margin:5px 0;font-size:13px}.empty{display:none}footer{padding:5px 0 25px;font-size:11px;color:var(--muted);text-align:center}footer span{display:block;margin-top:7px}#message{font-size:13px;white-space:pre-wrap}#dragGhost{position:fixed;pointer-events:none;z-index:100;background:#ffffffcf;border:1px solid #c9d5e3;border-radius:9px;padding:5px;transform:translate(-50%,-50%);box-shadow:0 8px 25px #17305225;font-size:12px}.presentation header,.presentation #maker,.presentation footer,.presentation #message{display:none}.presentation main{max-width:none;padding:8px}.presentation .play-card{height:calc(100dvh - 16px);margin:0;padding:12px;display:flex;flex-direction:column}.presentation .workspace{height:auto;flex:1;min-height:0}.presentation .play-top{margin-bottom:7px}.presentation .play-top h2{font-size:18px}.presentation .play-top .eyebrow,.presentation #back,.presentation #present,.presentation .keyboard-help{display:none}.presentation #result{flex-shrink:0;padding:10px}.presentation #result h3{font-size:18px}.playing header{display:none}.playing main{max-width:1500px;padding-top:12px}.playing footer{display:none}.playing .play-card{height:calc(100dvh - 24px);margin:0;display:flex;flex-direction:column}.playing .workspace{height:auto;flex:1;min-height:0}.playing #message{position:fixed;bottom:10px;left:25px;background:#fff9;border-radius:8px;z-index:6;margin:0;max-width:90%}:focus-visible{outline:3px solid #397dce;outline-offset:2px}[hidden]{display:none!important}@media(max-width:850px){.intro{padding:35px 25px}h1{font-size:50px}.setup-form{padding:25px}.workspace{grid-template-columns:minmax(0,1fr) 190px}#tray{padding:7px;gap:5px}.piece-button canvas{height:70px}}@media(max-width:650px){header{padding:18px 14px}.brand{font-size:17px}.tag{font-size:10px}main{padding:0 12px}.setup{grid-template-columns:1fr}.intro{padding:26px}h1{font-size:44px;margin:12px 0}.intro>p{font-size:15px}.intro-note{margin-top:18px}.watermark{font-size:160px}.setup-form{padding:22px}.workspace{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) 125px;gap:8px}.tray-panel{flex-direction:row}.tray-heading{flex-direction:column;justify-content:center;gap:8px;border:0;border-right:1px solid #dbe3ed;padding:9px;width:60px;flex-shrink:0}#tray{display:flex;overflow:auto;align-items:center}.piece-button{width:90px;flex-shrink:0}.piece-button canvas{height:70px}.play-top .actions{gap:5px}.play-top button{font-size:11px;padding:8px}.play-tools{gap:7px;padding:8px;font-size:11px}#rules{width:100%;order:2}.play-top h2{font-size:17px}.play-card{padding:10px}.keyboard-help{display:none}.playing main{padding:6px}.playing .play-card{height:calc(100dvh - 12px)}#referencePanel{max-width:70%}}

/* Keep upload, text, number and select controls aligned. */
.setup-form input,.setup-form select{height:44px;min-height:44px;line-height:20px;padding:10px 11px;}
.setup-form input[type=file]{padding:9px 10px;line-height:24px;}
.setup-form input[type=file]::file-selector-button{height:24px;margin:0 8px 0 0;padding:2px 8px;border:1px solid #c5d1df;border-radius:5px;background:#edf2f8;color:var(--navy);font:inherit;line-height:18px;cursor:pointer;}
