:root{--case:#e2e5dc;--case-edge:#b6bfb0;--key:#f8f8ef;--accent:#c64f32;--text:#304034;--muted:#5c6959}body{min-height:100dvh;background:radial-gradient(ellipse at 50% 25%,#faf8f0,#edece3);color:var(--text)}header,body.playing header{width:min(900px,100%);padding:12px 24px;min-height:68px;gap:12px}header a,body.playing header>a{font-size:13px;color:#596453;min-height:44px;display:inline-flex;align-items:center;flex-shrink:0}header button,body.playing header>button{min-height:44px;min-width:76px;font-size:12px;background:#faf9f2;border-color:#c5c9bb;white-space:nowrap}main{max-width:800px;margin:12px auto 0;padding:0 24px}.heading{text-align:center;margin-bottom:24px}.heading h1{justify-content:center;font-size:54px;margin:9px 0 12px}.heading p{color:#5c6959;font-size:14px}.heading .eyebrow{color:#62705f;font-size:11px;letter-spacing:.18em}.machine,body.playing .machine{background:linear-gradient(145deg,#e8eae1,#d9dfd3);border:1px solid var(--case-edge);border-radius:18px;padding:22px;box-shadow:0 5px #a7b2a0,0 16px 28px -12px #233a2940}.machine-top{padding:0 2px 12px}.mode-indicator{box-shadow:0 2px #aab39f;border:1px solid #bbc5ae}.difficulty-line{margin:0 2px 14px;color:var(--muted)}.difficulty-line>span:last-child{color:var(--muted)}.screen,body.playing .screen{background:radial-gradient(ellipse at 50% 35%,#2d4033,#18261e);border:8px solid #52624e;border-radius:9px;box-shadow:inset 0 3px 16px #0004;min-height:228px;padding:24px 18px}.screen-label{color:#cad6be;font-size:13px;letter-spacing:.04em}.instruction,.summary{color:#c7d3bd;font-size:14px;line-height:1.85}.example{font-size:46px}.example span{color:#bdcdaa}.mystery,body.playing .mystery{font-size:clamp(30px,4.5vw,48px);line-height:1.45;letter-spacing:.04em;overflow-wrap:anywhere}.game-status{gap:16px}.scoreboard,#round,#remaining,#time,.score,.score-total{font-variant-numeric:tabular-nums;font-family:ui-monospace,monospace}.scoreboard b{display:inline-block;min-width:4ch}.game-status #round{min-width:8ch;justify-content:center}#remaining{min-width:6ch;text-align:right}.machine>.controls,body.playing .controls{margin:18px 0 0;padding:18px;background:#f6f7ee;border:1px solid #c0c9b8;border-radius:10px;box-shadow:inset 0 1px #fff}.primary,body.playing .primary{min-height:48px;border-radius:6px;background:var(--accent);padding:12px 18px;box-shadow:0 3px #8f3926;line-height:1.5}.small{display:flex;justify-content:center;gap:8px 20px;flex-wrap:wrap;font-size:12px;line-height:1.7;color:var(--muted)}.hint-rule{font-size:12px;line-height:1.7;color:var(--muted);margin-top:10px}body.playing{height:auto;min-height:100dvh;display:block}body.playing main{max-width:860px;padding:0 24px 28px;display:block;flex:none}body.playing .machine{height:auto;max-height:none;min-height:0;display:flex}body.playing .screen{flex:none;min-height:200px;overflow:visible;padding:22px 16px}body.playing .screen-label{margin-bottom:16px;color:#cad6be;font-size:13px}body.playing .time-panel{margin:14px 2px 0}body.playing .time-label{color:#4e604a;font-size:12px}body.playing #remaining{font-size:18px;line-height:1.3}body.playing label{font-size:14px;color:#4b5b44}.answer-row,body.playing .answer-row{gap:10px;align-items:stretch}body.playing input{height:52px;font-size:22px;line-height:1.3;border:1px solid #aebba5;box-shadow:inset 0 2px 4px #35462c0b}body.playing #submit.action-key{min-height:52px;height:auto;min-width:100px;padding:8px 14px;font-size:14px}body.playing .tools{gap:10px;flex-wrap:wrap;margin-top:14px}body.playing .tools .action-key{min-height:44px;height:auto;font-size:13px;padding:8px 12px}body.playing .tools .action-key .key-legend{font-size:10px}body.playing .tools .action-key:disabled{color:#616e58;background:#e4e9dc}body.playing #feedback{font-size:13px;line-height:1.7;min-height:22px;margin-top:12px;color:#9c361f}body.playing #feedback:empty{display:none}.hint-note{font-size:13px!important;line-height:1.7;color:#54614c}.touch-keys{gap:8px;margin-top:16px}.touch-key-row{gap:5px}.touch-key-row button,body.playing.touch-input .touch-key-row button{min-height:44px;border-radius:5px;box-shadow:inset 0 1px #fff,0 3px #a3ae99;font-size:17px}body.playing.touch-input .screen{min-height:145px;padding:18px 12px}body.playing.touch-input .controls{margin-top:16px;padding:16px}body.playing #explanation{font-size:16px;line-height:1.8;margin:0 0 16px}body.playing #explanation strong{font-size:24px}body.playing #explanation .translation{font-size:14px;color:#55634e}.review{margin:0;font-size:14px}.review li{padding:12px 0;gap:8px 14px;align-items:center}.review em{color:#58674f}.score-total{line-height:1.7}footer{font-size:12px;line-height:1.8;color:#596653;padding:20px 0 28px}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #98422e;outline-offset:4px}.screen :focus-visible{outline-color:#ffbc8c}button:disabled{cursor:not-allowed}button:active:not(:disabled){translate:0 1px}@media(max-width:600px){header,body.playing header{padding:8px 16px;min-height:62px;gap:8px}main,body.playing main{padding-inline:12px;margin-top:4px}.machine,body.playing .machine{padding:14px 12px;border-radius:13px}.heading{margin:12px 0 20px}.heading h1{font-size:46px}.screen{min-height:200px;padding:18px 12px}.machine>.controls,body.playing .controls,body.playing.touch-input .controls{padding:14px 10px}.small{gap:4px 12px}body.playing .play-title{font-size:18px;margin-right:auto}.touch-key-row{gap:4px}.touch-key-row button{font-size:16px}body.playing .mystery{font-size:32px}.review li{font-size:13px}.game-status{gap:10px}}@media(max-width:360px){header a,body.playing header>a{font-size:11px}header button,body.playing header>button{min-width:62px;padding-inline:8px}body.playing .play-title{font-size:16px}.heading h1{font-size:42px}.heading p{font-size:13px}.example{font-size:38px}.example span{font-size:20px;margin-left:10px}.answer-row,body.playing .answer-row{gap:7px}body.playing #submit.action-key{min-width:78px;padding-inline:10px}.touch-key-row{gap:3px}.touch-key-row button{font-size:14px}.game-status #round{font-size:12px}body.playing .scoreboard b{font-size:15px}}@media(max-height:540px)and (min-width:600px){body.playing.touch-input .machine{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,1fr);gap:0 16px}body.playing.touch-input .screen{min-height:180px;grid-column:1;grid-row:3}body.playing.touch-input .controls{grid-column:2;grid-row:3/5;margin:0;overflow:visible}body.playing.touch-input .touch-key-row button,body.playing .tools .action-key{min-height:44px}body.playing.touch-input .time-panel{grid-column:1;grid-row:4}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.phrase{display:inline-block;max-width:100%;vertical-align:top}.heading p,.instruction,.hint-rule,footer,.translation,.summary{line-break:strict;word-break:normal;text-wrap:pretty;overflow-wrap:normal}.instruction{max-width:32em;margin-inline:auto}.stage,.controls,.answer-row,#answer,.review-word{min-width:0}#answer::placeholder{font-family:system-ui,sans-serif;font-size:16px;letter-spacing:0}.review-word{overflow-wrap:anywhere}.review-word small{line-break:strict;word-break:normal}.primary,.action-key,.small>span{white-space:nowrap}@media(max-width:600px){.heading p{line-height:1.8}.hint-rule{text-align:center}footer{padding-inline:8px}.instruction{font-size:13px}}@media(max-width:360px){body.playing .play-title{white-space:nowrap}.game-status{gap:6px}body.playing .tools{gap:8px}}@supports (word-break:auto-phrase){.instruction,.hint-rule,footer,.translation,.summary{word-break:auto-phrase}}body.playing .screen{border-top-width:16px}body.playing .webcam{width:4px;height:4px;top:-10px;left:50%;transform:translate(-50%);box-shadow:0 0 0 1.5px #28372b;pointer-events:none}body.playing .screen{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}body.playing .stage{width:100%;min-width:0;flex:none}body.playing .pulse{position:static;inset:auto;margin:0;flex:none;align-self:center;height:18px}body.playing .typing{line-height:1.5;text-wrap:balance}body.playing .typing small{margin-top:12px}body{background:radial-gradient(ellipse at 50% 24%,#faf9f2 0,#eeeede)}.heading{margin-bottom:28px}.heading h1{font-size:clamp(46px,5vw,60px);margin-bottom:14px}.heading p{font-size:16px;line-height:1.8;color:#4c5c49}.machine,body.playing .machine{border-color:#aab5a2;box-shadow:inset 0 1px #fff9,0 5px #a1ac99,0 24px 40px -20px #233a294d}.screen{isolation:isolate}.screen:after{content:"";position:absolute;inset:0;z-index:-1;border-radius:2px;pointer-events:none;background:repeating-linear-gradient(0deg,transparent 0 3px,#d8f0be05 3px 4px)}.screen-label{color:#d3e1c6;font-size:14px}.instruction{color:#d0dfc2;font-size:15px;line-height:1.9;max-width:29em}.example{font-size:52px;letter-spacing:.025em;text-shadow:0 0 20px #d5edb71a}.primary,body.playing .primary{font-size:16px;font-weight:700;background:#b9452a;color:#fffdf7;border:1px solid #993c27;transition:background .15s,translate .12s}.primary:hover:not(:disabled){background:#a53d24}.small,.hint-rule{color:#4f604a;font-size:13px}.heading .eyebrow{color:#59694f}body.playing .typing small{color:#c3d3b6}body.playing .mystery{color:#f0f6d9;text-shadow:0 0 18px #d5edb712}.time-panel progress{accent-color:#54733c}.review li{border-bottom:1px solid #b6c4a8;line-height:1.8}.review-word small{color:#4d6046}#explanation strong{color:#284830}#answer::placeholder{color:#62705a;opacity:1}body.playing input:focus-visible{outline:3px solid #99482e;outline-offset:3px;border-color:#99482e}@media(min-width:900px){body.playing main{margin-top:20px}.machine,body.playing .machine{padding:24px}}@media(max-width:600px){.heading p{font-size:14px}.heading{margin-bottom:22px}.instruction{font-size:14px;line-height:1.9}.small,.hint-rule{font-size:12px}.example{font-size:44px}body.playing .machine{border-radius:14px}}@media(prefers-reduced-motion:reduce){.primary,body.playing .primary{transition:none}}.release-notes-link{margin-top:16px}.release-notes-link button{min-height:44px;padding:8px 12px;border:1px solid #b6bfb0;border-radius:6px;background:#faf9f2;color:#304034;font:inherit;font-size:13px;cursor:pointer}body.playing .release-notes-link{display:none}.info-dialog{box-sizing:border-box;width:min(640px,calc(100% - 32px));max-height:calc(100dvh - 32px);margin:auto;padding:24px;border:1px solid #718970;border-radius:12px;background:#f8f8f0;color:#304034;overflow:auto;overscroll-behavior:contain;line-height:1.85;text-align:left}.info-dialog::backdrop{background:#08190fcc}body:has(.info-dialog[open]){overflow:hidden}.release-dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:16px}.release-dialog-heading h2{margin:0;font-size:22px}.release-close{min-width:44px;min-height:44px;background:transparent;border:0;color:#52684e;font-size:26px;cursor:pointer}.release-heading{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;margin:24px 0 10px;padding-top:20px;border-top:1px solid #c9d5c8;font-size:14px;line-height:1.6}.release-version{padding:2px 9px;border:1px solid #8fa688;border-radius:6px;background:#dce9d5;color:#243c28;font-size:13px;font-weight:700;white-space:nowrap}.release-heading time{color:#52684e;font-size:12px;font-weight:400;white-space:nowrap}.release-list{padding-left:22px;margin:0 0 20px;font-size:14px}.release-list li{margin-bottom:12px;line-break:strict;word-break:normal;text-wrap:wrap}.release-phrase{display:inline-block;max-width:100%;vertical-align:top;overflow-wrap:anywhere}.release-return{width:auto;min-height:44px;padding:10px 18px;font-size:14px}.info-dialog button:focus-visible,.release-notes-link button:focus-visible{outline:2px solid #52684e;outline-offset:3px}@media(max-width:520px){.info-dialog{padding:20px}.release-dialog-heading h2{font-size:20px}.release-heading{gap:6px 10px}.release-summary{flex-basis:100%}}.release-notes-link{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.howto-intro{font-size:14px;margin:20px 0 12px;word-break:normal;text-wrap:wrap}.howto-example{margin:0 0 20px;padding:12px;border:1px solid #c9d5c8;border-radius:8px;text-align:center;font-size:24px;font-weight:700}.howto-example span{color:#62705f;margin:0 10px}.howto-tips{padding-top:16px;border-top:1px solid #c9d5c8}.howto-tips strong{display:block}.result-share{display:flex;justify-content:center;margin:18px 0}.result-share[hidden]{display:none}.share-x{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;max-width:100%;padding:10px 18px;border:1px solid #000;border-radius:8px;background:#000;color:#fff;text-decoration:none;font-size:14px;font-weight:700;line-height:1.5}.share-x:visited{color:#fff}.share-x:hover{background:#252525}.share-x:focus-visible{outline:3px solid #b87927;outline-offset:3px}.share-x svg{width:20px;height:20px;flex:none;fill:currentColor}.share-x>span:not(.sr-only){white-space:nowrap}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}body:not(.playing) header>a,body:not(.playing) .heading .eyebrow,body:not(.playing) .heading p,body:not(.playing) .difficulty-line>span:first-child,body:not(.playing) .small,body:not(.playing) footer{color:#596453}.mode-picker{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}.mode-picker button{min-width:0;min-height:66px;padding:10px 6px;border:1px solid #abb8a1;border-radius:7px;background:#fafbf5;color:#43563c;font-size:14px;font-weight:700;line-height:1.5}.mode-picker button small{display:block;margin-top:3px;font-size:12px;font-weight:400}.mode-picker button[aria-pressed=true]{background:#dfe9d5;border:2px solid #516b40;padding:9px 5px;color:#263e20}.mode-picker button:disabled{opacity:.65;cursor:wait}.secondary{display:block;min-height:44px;margin:16px auto 0;padding:8px 16px;border:1px solid #a5b299;border-radius:6px;background:#fafbf5;color:#425839;font:inherit;font-size:13px;line-height:1.6}.secondary:hover{background:#e6eddc}#setup-error{color:#983b29;font-size:13px;line-height:1.8;margin:12px 0 0}#setup-error:empty{display:none}.data-credit{font-size:12px;color:#52684e}.data-credit a{color:inherit;text-underline-offset:3px}.review-word{min-width:0;overflow-wrap:anywhere}@media(max-width:360px){.mode-picker{gap:6px}.mode-picker button{font-size:12px}.mode-picker button small{font-size:11px}}.dialogs-ready .info-dialog:not([open]){display:block;visibility:hidden;pointer-events:none;position:fixed;inset:0;contain:layout}
