:root{--paper: #f3ecdf;--paper-2: #faf6ef;--ink: #2c2824;--soft: #6f675e;--line: #e3d5c2;--focus: #8a5a2b;--good: #2f6b45;--bad: #8d4038;--chip: #efe6d6;--cell: 48px;color:var(--ink);background:var(--paper);font-family:Avenir Next,Segoe UI,sans-serif;font-size:18px;line-height:1.4}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--paper)}button,input{font:inherit;color:inherit}button{border:0;border-radius:14px;min-height:48px;padding:10px 16px;background:var(--ink);color:var(--paper);cursor:pointer;touch-action:manipulation}button.secondary,button.choice,button.key,button.op,button.calm{background:transparent;color:var(--ink);border:0}button.key{background:var(--chip)}button.choice.is-on{background:var(--chip);padding-left:12px}button.text-button{background:transparent;color:var(--soft);min-height:36px;padding:4px 0}.brand{background:transparent;color:var(--ink);padding:0;min-height:0;font-weight:700;letter-spacing:.01em}.app{width:min(920px,calc(100% - 28px));margin:0 auto;padding:22px 0 48px}.top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:18px}.who-row{display:flex;gap:14px;align-items:baseline}.who-row .who{margin:0}.brand-lock{font-weight:700;margin:0 0 12px}.consent{display:flex;gap:10px;align-items:flex-start;margin:16px 0}.consent input{width:22px;height:22px;margin:4px 0 0}.who,.kicker,.quiet,.note,figcaption{color:var(--soft)}h1{font-size:2rem;line-height:1.15;margin:0 0 8px;font-weight:650}h2{font-size:1.05rem;margin:22px 0 8px}.lead{margin-top:0;max-width:38rem}.ops,.choices,.row-actions,.key-actions,.nav{display:flex;flex-wrap:wrap;gap:16px;row-gap:16px}.nav{margin:0 0 8px;gap:20px}.nav button{color:var(--soft);font-size:.95rem}.nav button.is-on,button.text-button.is-on{color:var(--ink);font-weight:650}.version{color:var(--soft);font-size:.85rem;margin-top:28px}.guide{margin:4px 0 16px;max-width:36rem}.guide .equation{font-size:1.35rem;font-weight:650;margin:0 0 4px;font-variant-numeric:tabular-nums}.guide p{margin:0 0 4px}.fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:16px;align-items:stretch;margin-top:22px}.field{display:flex;flex-direction:column;align-items:flex-start;min-height:240px;padding:26px 26px 22px;border-radius:22px;background:var(--paper-2)}.field-gap{flex:1 1 auto;min-height:16px;width:100%}.field-pad{height:48px;width:100%}.field-title{margin:0;font-size:clamp(1.45rem,2.2vw,1.85rem);line-height:1.2;font-weight:650;letter-spacing:-.02em}.field-name{font-size:clamp(2.4rem,4vw,3.1rem);line-height:1.02;font-weight:650;letter-spacing:-.03em}.field-note{color:var(--soft);margin-top:8px}button.field{width:100%;min-height:280px;color:var(--ink);background:var(--paper-2);text-align:left;justify-content:space-between;gap:28px;transition:background .18s ease}button.field:hover{background:var(--chip)}button.field:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.field .text.word,.result-box{width:100%;min-height:52px;margin:0 0 12px}.result-box{display:flex;align-items:center}.result-box.is-right{background:color-mix(in srgb,var(--good) 16%,var(--paper-2));animation:arrive .52s cubic-bezier(.16,1,.3,1) both}@keyframes arrive{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){button.field{transition:none}.result-box.is-right{animation:none}}.ops{margin:8px 0 18px}.op,.choice{min-height:44px;padding-left:0;padding-right:12px}.quiet{padding-left:1.1rem}.note{color:var(--bad)}.badge-line{font-weight:650}.clock{font-variant-numeric:tabular-nums;color:var(--soft);margin-top:0}.stage{overflow-x:auto;padding-bottom:8px}.board{display:flex;align-items:stretch;gap:28px;flex-wrap:wrap}.sheet-actions{display:flex;flex-direction:column;align-items:flex-start;gap:28px;margin-top:20px}.sheet-actions .key-actions,.dock .key-actions{column-gap:36px;row-gap:28px}.dock{position:fixed;left:0;right:0;bottom:0;z-index:5;background:var(--paper);border-top:1px solid var(--line);padding:12px 16px calc(12px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:12px}.dock .pad{margin:0 auto;width:min(100%,420px)}.dock .keys{max-width:none}.app.has-dock{padding-bottom:calc(var(--dock-h, 340px) + 20px)}.digit-catcher{position:fixed;top:0;left:0;width:16px;height:16px;opacity:.01;font-size:16px;border:0;padding:0;z-index:6;color:transparent;background:transparent;caret-color:transparent}.leer-key{min-width:96px;align-self:flex-start}.problem{display:flex;align-items:flex-start;gap:14px;width:max-content}.sheet{display:grid;grid-template-columns:repeat(var(--cols),var(--cell));width:max-content;background:#ffffff59;border-top:1px solid var(--line);border-left:1px solid var(--line)}.tail{display:flex;align-items:center;gap:6px;min-height:var(--cell)}.cell{width:var(--cell);height:var(--cell);min-width:0;min-height:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:center;position:relative;padding:0;border-radius:0;background:transparent;color:var(--ink);font-variant-numeric:tabular-nums;font-size:1.35rem}.cell.is-carry{align-items:flex-start;font-size:.95rem;color:var(--focus)}.cell.is-given{font-weight:650}.cell.is-mark{width:auto;min-width:.8em;height:var(--cell);border:0;background:transparent;font-size:1.35rem}.cell.is-line:not(.is-digit):not(.is-given):not(.is-carry){width:auto;height:12px;border-bottom:3px solid var(--ink)}.cell.is-line.is-digit,.cell.is-line.is-given,.cell.is-line.is-carry{box-shadow:inset 0 -3px 0 var(--ink)}.cell.is-focus{outline:3px solid var(--focus);outline-offset:-3px;background:var(--paper-2)}.cell.is-good{box-shadow:inset 0 0 0 2px var(--good)}.cell.is-bad{background:repeating-linear-gradient(-45deg,transparent,transparent 5px,color-mix(in srgb,var(--bad) 16%,transparent) 5px,color-mix(in srgb,var(--bad) 16%,transparent) 6px);box-shadow:inset 0 0 0 2px var(--bad)}.cell.is-struck .glyph{position:relative}.cell.is-struck .glyph:after{content:"";position:absolute;left:-.12em;right:-.12em;top:54%;border-top:2px solid var(--ink)}.ought{position:absolute;right:2px;bottom:0;font-size:.68rem;color:var(--good)}.status{min-height:1.4em;font-weight:650}.pair{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,680px),1fr));gap:28px;margin:16px 0}figure{margin:0;min-width:0;overflow-x:auto}.pad{margin-top:12px}.keys{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-width:360px}.key{min-height:56px;font-size:1.3rem}.text,.form input{display:block;width:min(100%,360px);margin:8px 0 14px;padding:12px 14px;border-radius:12px;border:0;background:var(--chip)}.text.word{width:min(100%,36rem);margin-top:16px;font-size:1.25rem}.text:focus,.form input:focus{outline:3px solid var(--focus);background:var(--paper-2)}.form label{display:block;margin-bottom:8px}.attempts{list-style:none;padding:0}.attempts li{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}@media(max-width:720px){h1{font-size:1.6rem}.app{width:min(100% - 20px,920px)}}
