:root{--warm:#c98a5b;--warm-soft:#f6e8d8;--ink:#27241f;--mute:#756f65;--line:#ddd7cd;--bg:#f7f4ee;--paper:#fffdf9;--soft:#f0e6d2;--soft2:#e3ead9;--soft3:#dde7e8;--acc:#8a6a43;--green:#7c9473;--ok:#5f7f5a;--ng:#a5553f;--code:#f3efe6}
*{box-sizing:border-box}html{scroll-padding-top:12px}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.9 -apple-system,BlinkMacSystemFont,"Noto Sans JP","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;letter-spacing:.02em;-webkit-text-size-adjust:100%}
a{color:var(--acc)}a:hover{text-decoration-thickness:2px}
.wrap{max-width:860px;margin:0 auto;padding:0 20px}
header.site{position:sticky;top:0;z-index:10;background:rgba(247,244,238,.92);backdrop-filter:blur(12px);border-bottom:1px solid rgba(221,215,205,.8)}
header.site .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 20px;min-height:72px;padding:8px 20px}
header.site .brand{font-weight:800;letter-spacing:.14em;text-decoration:none;color:var(--ink);font-size:17px}
header.site .brand::after{content:"　一般社団法人 仮の宿";font-weight:500;letter-spacing:.06em;font-size:11px;color:var(--mute)}
header.site nav a{margin-right:16px;font-size:13px;text-decoration:none;color:var(--mute)}header.site nav a:hover{color:var(--ink)}
nav.crumb{font-size:12.5px;color:var(--mute);margin:18px 0 8px}nav.crumb ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px}
nav.crumb li+li:before{content:"›";margin-right:4px;color:#b8b0a3}nav.crumb a{color:var(--mute);text-decoration:none}
.kicker{font-size:12px;letter-spacing:.18em;color:var(--acc);font-weight:700;text-transform:uppercase}
h1{font-size:clamp(24px,4.6vw,34px);line-height:1.35;margin:.2em 0 .5em;font-weight:800;letter-spacing:.02em}
h2{font-size:clamp(19px,3.4vw,23px);line-height:1.4;margin:2.4em 0 .8em;padding:0 0 .3em;border-bottom:1px solid var(--line);font-weight:800}
h3{font-size:17px;margin:1.6em 0 .5em;font-weight:700}
p{margin:.7em 0}
.lead{color:var(--ink);font-size:17px;margin:0 0 1em}
.meta{font-size:13px;color:var(--mute)}
.box{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:16px 20px;margin:1.2em 0}
.box.point{background:var(--soft)}.box.point b{display:block;margin-bottom:6px;color:var(--acc);letter-spacing:.08em;font-size:13px}
.toc{background:var(--paper)}.toc ol{margin:.3em 0 .2em 1.2em;padding:0}.toc li{margin:.25em 0}.toc a{text-decoration:none}
table{border-collapse:collapse;width:100%;font-size:14.5px;margin:.5em 0}
th,td{border:1px solid var(--line);padding:6px 9px;text-align:left;vertical-align:top}th{background:var(--soft)}
.tbl{overflow-x:auto;-webkit-overflow-scrolling:touch}
figure{margin:1.2em 0}figcaption{font-size:13px;color:var(--mute);margin-bottom:.3em}
pre.code{background:var(--code);border:1px solid var(--line);border-radius:8px;padding:10px 12px;overflow-x:auto;font:13.5px/1.6 ui-monospace,SFMono-Regular,Menlo,Consolas,"Noto Sans Mono CJK JP",monospace;margin:.4em 0 1em;counter-reset:ln}
pre.code span{display:block;white-space:pre}pre.code span:before{counter-increment:ln;content:counter(ln);display:inline-block;width:2.2em;margin-right:.8em;text-align:right;color:#9aa3b2;user-select:none}
dl.terms{margin:.6em 0}dl.terms dt{font-weight:700;margin-top:.7em}dl.terms dd{margin:.15em 0 0 1em}
.ex{border-left:4px solid var(--green);background:var(--soft2);padding:10px 14px;margin:.9em 0;border-radius:0 8px 8px 0}.ex .q{font-weight:700}.ex .a{margin-top:.4em}
.q-item{border:1px solid var(--line);background:var(--paper);border-radius:14px;padding:14px 18px;margin:1em 0}.q-item .qh{font-size:13px;color:var(--mute)}.q-item ol.ch{margin:.4em 0 .4em 1.6em;padding:0}.q-item ol.ch li{margin:.15em 0}
details{margin:.4em 0}summary{cursor:pointer;color:var(--acc);font-weight:700}
.ans{border-top:1px dashed var(--line);margin-top:.6em;padding-top:.6em}.ans b.ok{color:var(--ok)}
.src{font-size:12.5px;color:var(--mute)}
.pn{display:flex;justify-content:space-between;gap:12px;margin:2em 0 1em;flex-wrap:wrap}.pn a{flex:1 1 45%;border:1px solid var(--line);background:var(--paper);border-radius:14px;padding:12px 16px;text-decoration:none;font-size:14.5px;color:var(--ink)}.pn a:hover{border-color:var(--acc)}.pn a.next{text-align:right}
footer.site{border-top:1px solid var(--line);margin-top:4em;padding:28px 0 48px;font-size:13px;color:var(--mute)}footer.site a{color:var(--mute)}footer.site a{margin-right:12px}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;margin:1em 0}.card{border:1px solid var(--line);border-radius:16px;padding:18px 20px;text-decoration:none;color:var(--ink);background:var(--paper);transition:transform .15s,box-shadow .15s}.card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(39,36,31,.08)}.card b{display:block;color:var(--ink);font-size:16px;margin-bottom:4px}.card small{color:var(--mute)}
/* drill (JS) */
#drill{border:1px solid var(--line);background:var(--paper);border-radius:16px;padding:18px 20px;margin:1.6em 0}
#drill button{font:inherit;padding:8px 14px;border-radius:8px;border:1px solid var(--acc);background:var(--bg);color:var(--acc);cursor:pointer;margin:4px 6px 4px 0}
#drill button.primary{background:var(--acc);color:#fff}
#drill .choice{display:block;width:100%;text-align:left;margin:6px 0}
#drill .choice.ok{border-color:var(--ok);background:#e8f5ee}#drill .choice.ng{border-color:var(--ng);background:#fbeceb}
#drill .fb{margin-top:8px}#drill .nojs{color:var(--mute);font-size:14px}
@media (max-width:480px){body{font-size:15.5px}.q-item,.ex{padding:10px 12px}}

/* learn top hero */
.lhero{display:flex;gap:40px;align-items:center;padding:36px 0 8px}.lhero .t{flex:1.3}.lhero .a{flex:.7;max-width:300px}.lhero img{width:100%;height:auto;border-radius:18px}
.lhero .eyebrow{font-size:12px;letter-spacing:.18em;color:var(--acc);font-weight:700;margin-bottom:8px}
.btn{display:inline-block;padding:11px 20px;border:1px solid var(--ink);border-radius:999px;text-decoration:none;color:var(--ink);font-size:14px;background:transparent}.btn.primary{background:var(--ink);color:#fff}
.sect{margin-top:2.6em}.sect .kicker{margin-bottom:2px}.sect h2{margin-top:.2em}
@media (max-width:700px){.lhero{flex-direction:column-reverse;gap:16px}.lhero .a{max-width:200px}}

/* warmth */
@import url("https://fonts.googleapis.com/css2?family=Zen+Maru+Gothic:wght@500;700&display=swap");
h1,h2,h3,.brand,.card b,.lhero .eyebrow,.kicker{font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif}
h1{letter-spacing:.04em}h2{border-bottom:0;padding-left:14px;position:relative}h2::before{content:"";position:absolute;left:0;top:.35em;width:5px;height:1.1em;border-radius:3px;background:var(--warm)}
.card{border-top:3px solid var(--warm-soft)}.card:hover{border-top-color:var(--warm)}
.sect{display:flex;align-items:flex-end;gap:14px}.sect img{width:56px;height:56px;border-radius:14px;background:var(--paper);border:1px solid var(--line);padding:6px}
.box.point{background:var(--warm-soft);border-color:#eddcc7}
.btn.primary{background:var(--warm);border-color:var(--warm)}
.src{background:var(--paper);border:1px dashed var(--line);border-radius:12px;padding:10px 14px}
/* やさしいことばモード */
.easy-toggle{margin-left:auto;font:inherit;font-size:12.5px;padding:6px 12px;border:1px solid var(--line);border-radius:999px;background:var(--paper);color:var(--ink);cursor:pointer}
.easy-toggle[aria-pressed=true]{background:var(--warm);border-color:var(--warm);color:#fff}
.easy-box{display:none;background:var(--warm-soft);border:1px solid #eddcc7;border-radius:16px;padding:16px 20px;margin:1em 0 1.4em;font-size:17px;line-height:2.1}
.easy-box b{display:block;color:var(--warm);font-size:13px;letter-spacing:.14em;margin-bottom:6px;font-family:"Zen Maru Gothic",sans-serif}
body.easy .easy-box{display:block}
body.easy{font-size:18px}body.easy p,body.easy li{line-height:2.2}body.easy h1,body.easy h2,body.easy h3{font-family:"Zen Maru Gothic",sans-serif}
rt{font-size:.55em;color:var(--mute)}
