/* DON'T SAY IT! (assets/dsi.js, assets/dsi-card.js). Builds on assets/loop.css (start screen, answer box, results). */
:root{--ds-a:#4F46E5;--ds-b:#A855F7;--ds-bt:#9333EA;--ds-ink:#1E1B3A;--ds-lav:#EEEBFF;--ds-lav2:#F6F4FF;--ds-line:#DCD6FB;--ds-bad:#C2364B;--ds-badbg:#FDECEF}
.dsi-title span{color:var(--ds-a)}

/* the phrases to describe a word */
.dsi-phr{margin-top:16px;border:1px solid var(--ds-line);border-radius:16px;background:var(--ds-lav2)}
.dsi-phr>summary{cursor:pointer;padding:12px 14px;font-weight:800;color:var(--ds-a);min-height:44px;display:flex;align-items:center}
.dsi-phr ul{list-style:none;margin:0;padding:0 14px 12px;display:grid;gap:8px}.dsi-phr li{display:flex;flex-direction:column;gap:1px;font-size:15px}
.dsi-phr li b{color:var(--ds-ink)}.dsi-phr li i{color:var(--muted);font-size:14px}

/* at home */
.dsi-shead{display:flex;justify-content:space-between;align-items:center;font-weight:800;color:var(--muted);font-size:14px}
.dsi-desc{font-size:clamp(20px,2.4vw,26px);line-height:1.45;font-weight:600;color:var(--ds-ink);margin:14px 0 6px;text-wrap:pretty}
.dsi-tip{margin:0 0 14px;font-weight:700;color:#6c66a8;font-size:14px;text-transform:uppercase;letter-spacing:.05em}
.dsi-hint{margin-top:10px;border:0;background:none;font:inherit;font-weight:800;color:var(--ds-bt);cursor:pointer;min-height:40px;padding:0}
.dsi-fb{margin-top:12px}.dsi-fb-h{font-weight:800;font-size:18px;margin:0 0 6px}.dsi-fb-h.good{color:var(--good)}.dsi-fb-h.bad{color:var(--ds-bad)}
.dsi-fw{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 6px;color:var(--muted);font-size:15px}
.dsi-fw b{padding:2px 10px;border-radius:999px;background:var(--ds-badbg);color:var(--ds-bad);font-size:14px;text-decoration:line-through;text-decoration-thickness:2px}
.dsi-next{margin-top:8px;min-height:50px}
.dsi-solo .tl-form{grid-template-columns:1fr auto auto}
@media(max-width:520px){.dsi-solo{padding:16px}.dsi-desc{font-size:19px}.dsi-solo .tl-form{grid-template-columns:1fr 1fr}.dsi-solo .tl-in{grid-column:1/-1}}
.dsi-playing .tl-how-s{display:none}@media(max-width:860px){.dsi-playing .tl-intro,.dsi-playing .crumb{display:none}}

/* the card (on the phone, and on the laptop while V is held) */
.dsi-card{padding:22px 20px;border-radius:24px;background:#fff;border:2px solid var(--ds-line);box-shadow:0 12px 30px #2b1f7a14;text-align:center}
.dsi-word{font:900 clamp(30px,9vw,54px)/1.1 var(--display,system-ui);color:var(--ds-a);overflow-wrap:anywhere;text-transform:uppercase;letter-spacing:.01em}
.dsi-dont{margin:16px 0 8px;font-weight:800;color:var(--ds-bad);text-transform:uppercase;letter-spacing:.08em;font-size:13px}
.dsi-forb{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.dsi-forb li{padding:8px 12px;border-radius:12px;background:var(--ds-badbg);color:var(--ds-ink);font-weight:800;font-size:clamp(17px,4.6vw,22px)}

/* the phone */
.dsi-phone main{padding-bottom:20px}
.dsi-ph{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:12px 14px;border-radius:16px;background:#fff;border:1px solid var(--ds-line);margin-bottom:12px}
.dsi-ph b{font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dsi-pt{font:800 24px/1 var(--display,system-ui);font-variant-numeric:tabular-nums}.dsi-pt.low{color:var(--ds-bad)}
.dsi-pp{font-weight:800;color:var(--ds-a);font-size:14px}
.dsi-pb{display:grid;gap:12px}
.dsi-you{font:800 22px/1.2 var(--display,system-ui);margin:10px 0 0}.dsi-wait{color:var(--muted);font-weight:600;line-height:1.5;margin:0}
.dsi-start{min-height:64px;font-size:20px}
.dsi-acts{display:grid;grid-template-columns:1.1fr .9fr 1.3fr;gap:8px}
.dsi-a{min-height:68px;padding:0 6px;border:0;border-radius:18px;font:800 16px/1.1 var(--display,system-ui);cursor:pointer;touch-action:manipulation;color:#fff;-webkit-tap-highlight-color:transparent;transition:transform .12s}
.dsi-a:active{transform:scale(.96)}.dsi-ok{background:var(--ds-a)}.dsi-oops{background:var(--ds-bad)}.dsi-skip{background:#fff;color:var(--ds-bt);box-shadow:inset 0 0 0 3px var(--ds-b)}
.dsi-last{margin:0;font-weight:800;color:var(--muted);text-align:center}
.dsi-msg{font:800 20px/1.4 var(--display,system-ui);text-align:center}.dsi-msg-s{text-align:center}

/* class mode: the projector (16:9) */
.dsi-class{position:fixed;inset:0;z-index:1000;display:grid;grid-template-rows:auto 1fr;gap:2vmin;padding:2vmin 2.4vmin;background:radial-gradient(circle at 80% 0%,#fff 0,var(--ds-lav2) 45%,var(--ds-lav) 100%);color:var(--ds-ink);overflow:hidden}
.dsi-bar{display:flex;gap:1.6vmin;align-items:stretch}
.dsi-board{flex:1;display:flex;gap:1.6vmin;align-items:stretch;min-width:0}
.dsi-team{flex:1;min-width:0;display:flex;justify-content:space-between;align-items:center;gap:2vmin;padding:1.4vmin 2.4vmin;border-radius:2.4vmin;background:#fffc;border:.35vmin solid transparent;opacity:.7}
.dsi-team.on{opacity:1;background:#fff;border-color:var(--ds-a);box-shadow:0 .8vmin 2.6vmin #4f46e526}
.dsi-team b{font:800 3.2vmin/1.1 var(--display,system-ui);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dsi-team strong{font:900 5vmin/1 var(--display,system-ui);color:var(--ds-a);font-variant-numeric:tabular-nums}
.dsi-round{align-self:center;font-weight:800;font-size:2.4vmin;color:var(--muted);white-space:nowrap}
.dsi-stage{min-height:0;display:flex;align-items:center;justify-content:center;position:relative}
.dsi-ready{display:flex;flex-direction:column;align-items:center;gap:3vmin;text-align:center}
.dsi-ready h2{margin:0;font:900 8vmin/1.05 var(--display,system-ui)}.dsi-sub{margin:0;font-size:3.4vmin;font-weight:700;color:#4a4670;max-width:60ch}
.dsi-qr-row{display:flex;gap:4vmin;align-items:center;text-align:left}
.dsi-qr{width:min(44vmin,420px);aspect-ratio:1;padding:1.6vmin;border-radius:2.4vmin;background:#fff;box-shadow:0 1vmin 3vmin #2b1f7a1f}.dsi-qr svg{display:block;width:100%;height:100%}
.dsi-qr-t{display:flex;flex-direction:column;gap:1.6vmin;max-width:46vmin}.dsi-qr-t b{font:800 3.6vmin/1.2 var(--display,system-ui)}.dsi-qr-t span{font-size:2.6vmin;color:#4a4670;font-weight:600}
.dsi-conn{font-weight:800!important;color:var(--muted)!important}.dsi-conn.ok{color:var(--good)!important}.dsi-conn.down{color:var(--ds-bad)!important}
.dsi-big{min-height:9vmin;font-size:3.2vmin;padding:0 5vmin;border-radius:2.4vmin}
.dsi-play{width:100%;height:100%;display:grid;grid-template-columns:1fr auto 1fr;grid-template-rows:1fr auto;align-items:center;gap:2vmin;position:relative}
.dsi-cmasc{grid-column:1;justify-self:center;width:24vmin;height:auto}.dsi-cmasc2{grid-column:3}.dsi-cmasc.pop{animation:dsi-pop .45s cubic-bezier(.34,1.56,.64,1)}@keyframes dsi-pop{from{transform:scale(.7)}}
.dsi-mid{grid-column:2;display:flex;flex-direction:column;align-items:center;text-align:center}
.dsi-who{margin:0;font:800 4.4vmin/1.2 var(--display,system-ui);color:#4a4670}
.dsi-clock{font:900 30vmin/1 var(--display,system-ui);color:var(--ds-ink);font-variant-numeric:tabular-nums;letter-spacing:-.03em}.dsi-clock.low{color:var(--ds-bad)}
.dsi-got{margin:0;font:800 4vmin/1.2 var(--display,system-ui);color:var(--ds-a)}
.dsi-lastw{min-height:1.3em;margin:1vmin 0 0;font:800 4vmin/1.2 var(--display,system-ui);text-transform:uppercase}.dsi-lastw.r-ok{color:var(--good)}.dsi-lastw.r-oops{color:var(--ds-bad)}.dsi-lastw.r-skip{color:var(--muted)}
.dsi-peek{grid-column:3;justify-self:center;width:min(100%,46vmin)}
.dsi-cover{width:100%;min-height:30vmin;border:.4vmin dashed var(--ds-b);border-radius:3vmin;background:#fffa;font:800 3vmin/1.3 var(--display,system-ui);color:var(--ds-bt);cursor:pointer;padding:2vmin;user-select:none;-webkit-user-select:none;touch-action:none}
.dsi-peek .dsi-word{font-size:6vmin}.dsi-peek .dsi-forb li{font-size:3vmin}
.dsi-tkeys{grid-column:1/-1;grid-row:2;display:grid;grid-template-columns:repeat(3,minmax(0,28vmin));justify-content:center;gap:1.6vmin}
.dsi-tkeys .tl-k{min-height:9vmin;font-size:3.2vmin}
.dsi-paused{position:absolute;inset:0;display:grid;place-items:center;background:#f6f4ffd9;font:900 6vmin/1.2 var(--display,system-ui);color:var(--ds-ink);text-align:center;padding:4vmin}
@media(max-aspect-ratio:1/1){.dsi-play{grid-template-columns:1fr;grid-template-rows:auto auto auto auto}.dsi-cmasc,.dsi-mid,.dsi-peek{grid-column:1}.dsi-tkeys{grid-row:auto}.dsi-qr-row{flex-direction:column;text-align:center}.dsi-clock{font-size:22vmin}}

/* the final scores */
.dsi-final-m{display:flex;justify-content:center;gap:10px}.dsi-final-m img{width:120px;height:auto}
.dsi-played{columns:2 220px;list-style:none;padding:0;margin:0}.dsi-played li{break-inside:avoid;padding:4px 0;font-weight:700}.dsi-played .r-ok{color:var(--good)}.dsi-played .r-oops{color:var(--ds-bad)}.dsi-played .r-skip{color:var(--muted)}

/* the games page */
.gm-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.gm-card{display:flex;flex-direction:column;gap:8px;padding:20px 22px 22px;border-radius:24px;background:linear-gradient(160deg,#fff,var(--ds-lav2));border:1px solid var(--ds-line);text-decoration:none;color:var(--ds-ink);transition:border-color .2s,transform .2s}
.gm-card img{display:block;width:100%;height:170px;object-fit:contain;margin-bottom:6px}.gm-card h2{margin:0;font-size:24px}.gm-card p{margin:0;color:var(--muted);line-height:1.55;flex:1}.gm-card span{font-weight:800;color:var(--ds-a)}
@media(hover:hover){.gm-card:hover{border-color:var(--ds-a);transform:translateY(-2px)}}
@media(max-width:799px){.gm-list{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.gm-list{grid-template-columns:1fr}.gm-card img{height:150px}}

@media(prefers-reduced-motion:reduce){.dsi-cmasc.pop{animation:none}.dsi-a,.gm-card{transition:none}}
.dsi-phr-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:10px 24px}.dsi-phr-list li{display:flex;flex-direction:column}.dsi-phr-list i{color:var(--muted)}
.dsi-lvl{color:var(--muted);font-size:.6em}
@media(max-width:620px){.dsi-phr-list{grid-template-columns:1fr}}

/* the teacher's own cards */
.dsi-mine{margin-top:14px;border:1px solid var(--ds-line);border-radius:16px;background:var(--ds-lav2);padding:0 14px}
.dsi-mine>summary{cursor:pointer;font-weight:800;color:var(--ds-a);min-height:46px;display:flex;align-items:center}
.dsi-mine-form{display:grid;gap:8px;margin:6px 0}.dsi-mine-forb{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.dsi-mine input{min-width:0;min-height:44px;border:1.5px solid var(--ds-line);border-radius:12px;padding:8px 10px;font:inherit;font-size:16px;background:#fff}
.dsi-mine-form>input{font-weight:800}.dsi-mine-form .btn{justify-self:start}
.dsi-mine-msg{min-height:1.3em;font-weight:700;color:var(--ds-a)}
.dsi-mine-list{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:6px}
.dsi-mine-list li{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:6px 6px 6px 12px;border-radius:12px;background:#fff;border:1px solid var(--ds-line);overflow-wrap:anywhere}
.dsi-mine-list b{text-transform:uppercase;color:var(--ds-a)}.dsi-mine-list span{color:var(--muted);font-size:14px}
.dsi-mine-del{width:40px;height:40px;border:0;border-radius:10px;background:none;font-size:22px;color:var(--muted);cursor:pointer}
@media(hover:hover){.dsi-mine-del:hover{color:var(--ds-bad)}}
.dsi-print-btn{margin-top:10px}
@media(max-width:520px){.dsi-mine-forb{grid-template-columns:1fr 1fr}}
/* the printed cards */
.dsi-print{display:none}
@media print{
  body.dsi-printing>*:not(.dsi-print){display:none!important}
  body.dsi-printing .dsi-print{display:grid;grid-template-columns:1fr 1fr;gap:0;color:#000;font:14px/1.3 system-ui,sans-serif}
  .dsi-pcard{height:24.5vh;box-sizing:border-box;break-inside:avoid;border:1px dashed #888;padding:14px 16px;display:flex;flex-direction:column;align-items:center;text-align:center}
  .dsi-pcard b{font-size:24px;text-transform:uppercase;letter-spacing:.02em;margin-bottom:6px}
  .dsi-pcard span{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#a00}
  .dsi-pcard ul{list-style:none;margin:6px 0 0;padding:0;font-size:16px;font-weight:700;line-height:1.5}
  .dsi-pcard small{margin-top:auto;font-size:9px;color:#777}
}
