:root{--fg:#1a1a1a;--bg:#fff;--muted:#444;--line:#666;--soft:#f3f5f8;--accent:#0b3d91;--focus:#c2410c}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:16px/1.65 -apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;color:var(--fg);background:var(--bg);word-break:keep-all;overflow-wrap:break-word}
.wrap{max-width:860px;margin:0 auto;padding:0 16px}
a{color:var(--accent)}
a:focus-visible,button:focus-visible,.pad:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.site-head{border-bottom:1px solid #d0d4da}
.brand{display:inline-flex;align-items:center;min-height:44px;font-weight:700;color:var(--fg);text-decoration:none}
h1{font-size:1.6rem;line-height:1.3;margin:14px 0 8px}
h2{font-size:1.2rem;line-height:1.4;margin:28px 0 8px}
h3{font-size:1rem;line-height:1.5;margin:16px 0 4px}
p,ul,ol{margin:0 0 12px}
li{margin-bottom:4px}
.answer{margin:0 0 16px}

.tool{margin:0 0 8px}
.pad{border:2px dashed var(--line);border-radius:8px;padding:8px;background:var(--soft);cursor:pointer;touch-action:manipulation}
.pad[data-active="true"]{border-style:solid;border-color:var(--accent);box-shadow:inset 0 0 0 2px var(--accent)}
.pad-status{margin:0 0 8px;min-height:44px;padding:4px 8px;display:flex;align-items:center;justify-content:center;font-weight:700;text-align:center;border:1px solid var(--line);background:#fff;border-radius:6px}
.map{display:grid;gap:8px;user-select:none;-webkit-user-select:none}
.nav{width:40%}
.row{display:flex;gap:2px;margin-bottom:2px}
.gap{height:8px}
.k{position:relative;flex:var(--w,1) 1 0%;min-width:0;height:22px;display:flex;align-items:center;justify-content:center;font-size:9px;line-height:1;font-style:normal;white-space:nowrap;overflow:hidden;border:1px solid var(--line);border-radius:3px;background:#fff;color:var(--fg)}
.sp{flex:var(--w,1) 1 0%}
.k[data-s="seen"]{background:repeating-linear-gradient(45deg,#cfe0ff 0 3px,#fff 3px 6px);border-color:var(--accent);color:#0b2a66}
.k[data-s="seen"]::after{content:"\2713";position:absolute;top:0;right:1px;font-size:7px;line-height:1}
.k[data-s="held"]{background:var(--accent);color:#fff;border:2px solid #000;font-weight:700}
.k[data-s="held"]::after{content:"\25CF";position:absolute;top:0;right:1px;font-size:7px;line-height:1}
.k.demo{outline:2px dashed var(--focus);outline-offset:-2px}

.read{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}
.read div{border:1px solid #c5cad2;border-radius:6px;padding:6px 8px;min-height:56px}
.read dt{font-size:.8rem;color:var(--muted)}
.read dd{margin:0;font-weight:700;overflow-wrap:anywhere}
.btn{min-height:44px;min-width:44px;padding:8px 20px;font:inherit;font-weight:700;color:#fff;background:var(--accent);border:2px solid var(--accent);border-radius:6px;cursor:pointer}
.legend{list-style:none;padding:0;margin:12px 0;display:flex;flex-wrap:wrap;gap:8px 20px}
.legend li{display:flex;align-items:center;gap:8px;margin:0}
.sample{flex:none;width:34px}
.note{font-size:.9rem;color:var(--muted);margin-bottom:8px}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

.site-foot{margin-top:40px;border-top:1px solid #d0d4da;padding:8px 0 24px;font-size:.9rem;color:var(--muted)}
.site-foot ul{list-style:none;padding:0;margin:0 0 8px;display:flex;flex-wrap:wrap;gap:0 16px}
.site-foot li{margin:0}
.site-foot a{display:inline-flex;align-items:center;min-height:44px}

@media (max-width:639px){
  .tool{display:flex;flex-direction:column}
  .tool>.read{order:-2;margin:0 0 8px}
  .tool>#reset{order:-1;align-self:flex-start;margin:0 0 8px}
  .read{gap:4px}
  .read div{min-height:0;padding:3px 8px}
  .read dt{font-size:.75rem;line-height:1.3}
  .read dd{line-height:1.3}
  .answer{margin:0 0 8px}
  h1{margin:8px 0 6px}
}
@media (min-width:640px){
  h1{font-size:2rem}
  .map{grid-template-columns:15fr 3fr;align-items:start}
  .nav{width:auto}
  .k{height:34px;font-size:12px}
  .row{gap:3px;margin-bottom:3px}
  .k[data-s="seen"]::after,.k[data-s="held"]::after{font-size:9px;right:2px}
  .read{grid-template-columns:repeat(5,1fr)}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
