:root{font-family:Avenir Next,PingFang SC,Noto Sans SC,sans-serif;color:#142218;background:radial-gradient(circle at top left,rgba(255,219,141,.8),transparent 28%),radial-gradient(circle at right 20%,rgba(100,136,101,.26),transparent 24%),linear-gradient(180deg,#f7f1df,#e8dcc0 48%,#d9c5a1);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input{font:inherit}.app-shell{min-height:100vh;padding:32px}.hero,.layout{width:min(1180px,100%);margin:0 auto}.hero{display:grid;grid-template-columns:1.6fr 1fr;gap:20px;align-items:end;margin-bottom:24px}.eyebrow{margin:0 0 10px;letter-spacing:.24em;text-transform:uppercase;font-size:.78rem;color:#49614f}h1{margin:0;font-size:clamp(2.4rem,5vw,5rem);line-height:.95}.intro{max-width:54ch;font-size:1.05rem;line-height:1.7;color:#34463a}.panel{background:#fff8eac7;border:1px solid rgba(90,73,41,.12);border-radius:24px;box-shadow:0 24px 50px #4c371024;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.status-panel{padding:20px}.status-line{display:grid;gap:6px;padding:12px 0}.status-line+.status-line{border-top:1px solid rgba(80,61,28,.08)}.status-line span{color:#5d6f60;font-size:.92rem}.layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}.board-panel{padding:22px}.board-grid{display:grid;grid-template-columns:repeat(15,minmax(18px,1fr));aspect-ratio:1;width:min(100%,780px);margin:0 auto;background:linear-gradient(90deg,rgba(92,64,18,.18) 0 1px,transparent 1px),linear-gradient(rgba(92,64,18,.18) 0 1px,transparent 1px),linear-gradient(135deg,#ffffff2e,#91713314),#d8b27a;background-size:calc(100% / 15) 100%,100% calc(100% / 15),100% 100%,100% 100%;border-radius:28px;padding:10px}.cell{position:relative;border:none;background:transparent;cursor:pointer;padding:0}.cell:hover .crosshair{opacity:1;transform:scale(1)}.cell.predicted .crosshair,.crosshair.visible{opacity:1;transform:translate(-50%,-50%) scale(1);border-style:solid;border-color:#c95f30b3}.crosshair{position:absolute;top:50%;right:50%;bottom:50%;left:50%;width:22%;height:22%;border-radius:999px;border:1px dashed rgba(50,74,61,.35);transform:translate(-50%,-50%) scale(.8);opacity:0;transition:.18s ease}.stone{position:absolute;top:14%;right:14%;bottom:14%;left:14%;border-radius:999px;display:grid;place-items:center;box-shadow:inset 0 1px 2px #fff3,0 6px 14px #00000038}.stone.black{background:radial-gradient(circle at 30% 28%,#545454,#1a1a1a 52%,#000)}.stone.white{background:radial-gradient(circle at 30% 28%,#fff,#f1ebdf 58%,#cbbfae)}.stone-marker{width:28%;height:28%;border-radius:999px;background:#c95f30;box-shadow:0 0 0 3px #fff8ea80}.prediction-pulse{position:absolute;top:28%;right:28%;bottom:28%;left:28%;border-radius:999px;border:2px solid rgba(201,95,48,.55);animation:pulse-ring 1.25s ease-out infinite;pointer-events:none}.sidebar{display:grid;gap:20px}.controls,.tips{padding:20px}h2{margin:0 0 16px;font-size:1.15rem}.control-group{display:grid;gap:10px;margin-bottom:14px}.field{display:grid;gap:8px;margin-bottom:14px}.field span{color:#4d5f50;font-size:.92rem}.field input{width:100%;border:1px solid rgba(76,60,31,.15);border-radius:14px;background:#fffcf5eb;padding:12px 14px;color:#213025}.field input:focus{outline:2px solid rgba(38,72,52,.2);border-color:#26483466}.choice,.primary-action{border:none;border-radius:16px;padding:14px 16px;cursor:pointer;transition:transform .14s ease,box-shadow .14s ease,background .14s ease}.choice{background:#ebe0cae6;color:#2d392f}.choice.active{background:#264834;color:#f7f1df}.primary-action{width:100%;background:#c95f30;color:#fff8ea;box-shadow:0 12px 24px #a34a223d}.choice:hover,.primary-action:hover{transform:translateY(-1px)}.tips ul{margin:0;padding-left:18px;color:#34463a;line-height:1.75}.hint,.error-text{margin:12px 0 0;font-size:.92rem;line-height:1.6}.hint{color:#55685a}.error-text{color:#a33f2e}@keyframes pulse-ring{0%{transform:scale(.7);opacity:.85}to{transform:scale(1.55);opacity:0}}@media (max-width: 980px){.app-shell{padding:18px}.hero,.layout{grid-template-columns:1fr}.board-grid{width:100%}}
