:root{--box-wood:#8a6a4a;--box-wood-dark:#6e5238;--ground:#cdbb8e;--paper:#f8f3e6;--paper-edge:#e4d8bd;--ink:#2f2a24;--ink-soft:#5d554a;--accent:#b8432f;--accent-dark:#96351f;--night:#1b1f3b;--window-light:#f2c14e;--page:#efe6d2;--focus:#3a6ea5;--danger:#a3372a;--ui-font:system-ui, -apple-system, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic UI", "Meiryo", sans-serif;--diary-font:"Hiragino Mincho ProN", "Yu Mincho", "Noto Serif JP", serif}*,:before,:after{box-sizing:border-box}html,body{background:var(--page);min-height:100%;color:var(--ink);font-family:var(--ui-font);-webkit-text-size-adjust:100%;margin:0;font-size:16px;line-height:1.6}#app{min-height:100vh}button{font:inherit}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}[hidden]{display:none!important}.shell{grid-template-columns:minmax(0,1fr);grid-template-areas:"header""stage""side";max-width:1280px;margin:0 auto;padding:0 0 24px;display:grid}.village-header{grid-area:header;align-items:baseline;gap:12px;padding:10px 16px 4px;display:flex}.village-name{letter-spacing:.05em;margin:0;font-size:1.05rem;font-weight:700}.village-meta{color:var(--ink-soft);margin:0;font-size:.95rem}.stage-wrap{aspect-ratio:1/.92;grid-area:stage;width:100%;max-height:72vh;position:relative}.stage{position:absolute;inset:0;overflow:hidden}.hakoniwa-canvas{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;width:100%;height:100%;display:block}.hakoniwa-canvas.finger-inside{cursor:none}.side{flex-direction:column;grid-area:side;gap:12px;min-width:0;padding:8px 16px 0;display:flex}.overlay{pointer-events:none;position:absolute;inset:0}.bubble{max-width:min(260px,70%);color:var(--ink);white-space:pre-wrap;background:#fffdf6;border:1.5px solid #6e6252;border-radius:12px;width:max-content;padding:6px 10px;font-size:.92rem;line-height:1.5;position:absolute;top:0;left:0;box-shadow:0 2px #0000001f}.bubble:after{content:"";background:#fffdf6;border-bottom:1.5px solid #6e6252;border-right:1.5px solid #6e6252;width:10px;height:10px;position:absolute;bottom:-7px;left:50%;transform:translate(-50%)rotate(45deg)}.bubble-request{border-color:var(--accent);border-width:2px;font-weight:700}.bell-text{color:#fff7d6;letter-spacing:.1em;background:#6e5238d9;border-radius:8px;padding:1px 8px;font-size:.85rem;position:absolute;top:0;left:0}.door-sign{color:var(--ink);background:#f4ead2;border:1.5px solid #7a5a3a;border-radius:3px;padding:1px 6px;font-size:.75rem;position:absolute;top:0;left:0}.negotiation{background:var(--paper);border:2px solid var(--box-wood);border-radius:12px;width:min(460px,100% - 24px);max-height:calc(100% - 24px);padding:14px 16px;position:absolute;bottom:12px;left:50%;overflow:auto;transform:translate(-50%);box-shadow:0 6px 24px #00000040}.negotiation-ask{margin:0 0 10px}.negotiation-choices{gap:10px;margin-bottom:8px;display:flex}.negotiation-choices .btn{flex:1;min-height:48px}.negotiation-note{color:var(--ink-soft);margin:8px 0 0;font-size:.85rem}.negotiation-details{margin-top:8px}.btn{appearance:none;color:var(--ink);cursor:pointer;background:#fffaf0;border:1.5px solid #7a6a55;border-radius:10px;min-height:44px;padding:8px 14px}.btn:hover{background:#fff3dd}.btn:disabled{opacity:.45;cursor:default}.btn-primary{background:var(--accent);border-color:var(--accent-dark);color:#fffaf0;font-weight:700}.btn-primary:hover{background:var(--accent-dark)}.btn-danger{border-color:var(--danger);color:var(--danger);background:#fff1ee;font-weight:700}.btn-small{min-height:36px;padding:4px 10px;font-size:.9rem}.btn-link{appearance:none;color:var(--focus);cursor:pointer;background:0 0;border:none;min-height:36px;padding:4px 0;text-decoration:underline}.actions{gap:10px;display:flex}.actions .action{flex:1;justify-content:center;align-items:center;gap:6px;display:inline-flex}.badge{border-radius:6px;padding:3px 5px;font-size:.75rem;line-height:1;display:inline-block}.badge-new{background:var(--accent);color:#fffaf0}.badge-bookmark{color:var(--ink);background:#e9dfc7;border:1px solid #b9ab8c}.memo{border:1px solid var(--paper-edge);background:#fffcf4d9;border-radius:10px;padding:8px 12px}.memo-head{justify-content:space-between;align-items:center;display:flex}.memo-title{color:var(--ink-soft);margin:0;font-size:.85rem;font-weight:700}.memo-lines{font-family:var(--diary-font);min-height:4.8em;margin:4px 0 0;padding:0;list-style:none}.memo-lines li{border-bottom:1px dotted #d8ccb0;padding:2px 0}.notice{border:1px solid var(--paper-edge);background:#fff8e8;border-radius:10px;padding:8px 12px;font-size:.9rem}.notice p{margin:0}.panels{display:contents}.panel{background:var(--paper);border-top:3px solid var(--box-wood);z-index:20;border-radius:16px 16px 0 0;max-height:82vh;padding:12px 16px 24px;position:fixed;bottom:0;left:0;right:0;overflow:auto;box-shadow:0 -8px 30px #00000040}.panel-head{background:var(--paper);justify-content:space-between;align-items:center;gap:8px;padding:4px 0 8px;display:flex;position:sticky;top:-12px}.panel-title{margin:0;font-size:1.1rem}.panel-title:focus{outline:none}.diary-page{font-family:var(--diary-font);border:1px solid var(--paper-edge);background:#fffdf7 repeating-linear-gradient(#0000,#0000 calc(1.9em - 1px),#eee3c8 calc(1.9em - 1px) 1.9em);border-radius:6px;min-height:12em;padding:14px 16px;font-size:1.05rem;line-height:1.9}.diary-heading{justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;display:flex}.diary-heading h3{margin:0;font-size:1rem;font-weight:700}.diary-badges{flex-shrink:0;gap:4px;display:flex}.diary-line{margin:0}.diary-postscript{color:var(--ink-soft);margin:8px 0 0}.scribble{margin:0;padding-left:1.2em}.diary-nav{justify-content:space-between;align-items:center;margin-top:10px;display:flex}.diary-position{color:var(--ink-soft);font-size:.9rem}.fine{color:var(--ink-soft);font-size:.85rem}.record-section{border-top:1px solid var(--paper-edge);padding:8px 0}.record-section h3{margin:4px 0 8px;font-size:1rem}.record-section h4{margin:12px 0 4px;font-size:.92rem}.record-dl{grid-template-columns:minmax(8em,max-content) 1fr;gap:2px 12px;margin:0;font-size:.92rem;display:grid}.record-dl dt{color:var(--ink-soft)}.record-dl dd{overflow-wrap:anywhere;margin:0}.signal-table{border-collapse:collapse;width:100%;font-size:.88rem}.signal-table th,.signal-table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--paper-edge);padding:4px 6px}.record-history,.record-diary{padding-left:1.2em;font-size:.88rem}.record-diary p{white-space:pre-wrap;font-family:var(--diary-font);margin:2px 0 8px}.record-raw{border:1px solid var(--paper-edge);background:#fffdf7;border-radius:6px;width:100%;padding:8px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8rem}.record-ops{flex-wrap:wrap;gap:10px;display:flex}.dialog-layer{z-index:50;background:#1e181273;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.dialog{background:var(--paper);border:2px solid var(--box-wood);border-radius:12px;width:min(420px,100%);padding:16px}.dialog-title{margin:0 0 8px;font-size:1.05rem}.dialog-actions{justify-content:flex-end;gap:10px;margin-top:12px;display:flex}@media (min-width:900px) and (min-aspect-ratio:1){.shell{grid-template:"header header""stage side"minmax(0,1fr)/minmax(0,1fr) 380px;gap:0 16px;height:100vh;padding:0 16px 16px}.stage-wrap{aspect-ratio:auto;height:100%;min-height:0;max-height:none}.side{padding:8px 0 0;overflow:auto}.panels{display:block}.panel{border:2px solid var(--paper-edge);max-height:none;box-shadow:none;border-radius:12px;padding:12px 14px 16px;position:static}.panel-head{top:-12px}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.debug-panel{z-index:100;color:#e8e8e8;background:#141414db;border-radius:8px;flex-wrap:wrap;gap:4px;max-width:320px;padding:8px;font:12px ui-monospace,Menlo,monospace;display:flex;position:fixed;bottom:8px;right:8px}.debug-panel pre{white-space:pre-wrap;width:100%;margin:4px 0 0}.debug-panel button,.debug-panel input{font:inherit}
