@charset "UTF-8";
.bf-page { padding-top:54px; padding-bottom:70px; }
.bf-hero { display:grid; grid-template-columns:1.4fr 1fr; gap:40px; align-items:center; margin-bottom:30px; }
.bf-hero h1 { font-size:clamp(43px,5.6vw,75px); }
.bf-hero p { max-width:590px; }
.bf-emblem { border:1px solid var(--line); border-radius:24px; background:var(--soft); padding:24px; }
.bf-emblem svg { width:100%; height:180px; color:var(--blue); }
.bf-emblem p { text-align:center; font-size:13px; margin:0; }
.bf-storage { border:1px solid var(--line); background:var(--soft); border-radius:10px; padding:13px 17px; }
.bf-memory { border-color:var(--blue); }
.bf-status { min-height:26px; color:var(--ink); overflow-wrap:anywhere; }
.bf-actions { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin:16px 0; }
.bf-actions .btn { white-space:normal; }
.bf-collection { display:flex; flex-wrap:wrap; gap:10px; margin:24px 0; }
.bf-collection button { min-height:46px; background:var(--surface); color:var(--ink); border:1px solid var(--line); border-radius:10px; padding:11px 16px; text-align:left; overflow-wrap:anywhere; }
.bf-collection [aria-pressed=true] { border:2px solid var(--blue); }
.bf-heading { display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; align-items:baseline; }
.bf-heading h2 { overflow-wrap:anywhere; margin-bottom:12px; }
.bf-heading span { color:var(--blue); font-size:13px; }
.bf-main { border-top:1px solid var(--line); padding-top:24px; }
.bf-empty,.bf-about { padding:28px; border:1px solid var(--line); border-radius:18px; background:var(--surface); }
.bf-empty h2,.bf-about h2 { font-size:27px; }
.bf-about { margin-top:30px; }
.bf-intro { white-space:pre-wrap; overflow-wrap:anywhere; }
.bf-metadata,.bf-add,.bf-node-panel,.bf-diagnostic { background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:20px; margin:20px 0; min-width:0; }
.bf-metadata summary,.bf-add summary { cursor:pointer; font-weight:bold; font-size:18px; min-height:44px; line-height:1.4; }
.bf-page input,.bf-page select,.bf-page textarea { width:100%; font-size:16px; }
.bf-page input[type=checkbox] { width:20px; }
.bf-page label { display:block; margin:12px 0; }
.bf-page label>input,.bf-page label>select,.bf-page label>textarea { display:block; margin-top:5px; }
.bf-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.bf-workspace { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:26px; align-items:start; }
.bf-map-head h2 { font-size:27px; margin-bottom:12px; }
.bf-map-head p { font-size:14px; }
.bf-level { position:relative; padding:14px 0 24px; border-bottom:1px solid var(--line); }
.bf-level:before { content:''; position:absolute; left:9px; top:50px; bottom:8px; width:2px; background:var(--blue); opacity:.5; }
.bf-level>h3 { font-size:12px; text-transform:uppercase; letter-spacing:.12em; color:var(--blue); margin-bottom:18px; }
.bf-level-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr)); gap:14px; padding-left:23px; }
.bf-map-node { border:1px solid var(--line); background:var(--surface); border-radius:12px; padding:13px; min-width:0; }
.bf-map-node>button { border:0; background:transparent; width:100%; text-align:left; padding:5px; min-height:54px; border-radius:7px; color:var(--ink); }
.bf-map-node>button[aria-pressed=true] { outline:2px solid var(--blue); outline-offset:2px; }
.bf-map-node>button>span { display:block; font-size:11px; color:var(--muted); margin-bottom:7px; }
.bf-map-node strong { display:block; font-size:16px; line-height:1.35; overflow-wrap:anywhere; }
.bf-map-node ul { list-style:none; padding:0; margin:16px 0 0; border-top:1px solid var(--line); }
.bf-map-node li { font-size:12px; padding:10px 0 0; line-height:1.5; overflow-wrap:anywhere; }
.bf-destination { display:block; color:var(--blue); }
.bf-map-node .smallnote { margin:14px 0 0; }
.bf-unconnected { border:1px dashed var(--line); border-radius:12px; padding:18px; margin-top:20px; }
.bf-unconnected:before { display:none; }
.bf-unconnected .bf-level-cards { padding-left:0; }
.bf-node-panel { margin-top:0; }
.bf-node-panel h2 { font-size:25px; }
.bf-node-frame { margin:18px 0; }
.bf-node-panel .bf-actions { align-items:stretch; }
.bf-choice-list { display:grid; gap:15px; }
.bf-choice-edit { padding:15px; border:1px solid var(--line); border-radius:11px; }
.bf-choice-edit h4 { margin:0 0 8px; font-size:14px; }
.bf-choice-error { color:var(--ink); overflow-wrap:anywhere; margin-bottom:0; }
.bf-choice-add { margin-top:22px; padding-top:18px; border-top:1px solid var(--line); }
.bf-choice-add h3 { font-size:21px; }
.bf-diagnostic h2 { font-size:24px; }
.bf-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.bf-metrics p { margin:0; font-size:12px; }
.bf-metrics b { display:block; color:var(--ink); font-size:28px; line-height:1.3; }
.bf-tour { max-width:960px; margin:24px auto 0; }
.bf-tour-head { text-align:center; }
.bf-tour-head h2 { font-size:clamp(28px,4vw,45px); overflow-wrap:anywhere; }
.bf-tour-head h2:focus { outline-offset:8px; }
.bf-tour-context { font-size:13px; }
.bf-tour-frame { margin:24px 0; }
.bf-tour-reading { max-width:750px; margin:auto; }
.bf-current-question { font-size:clamp(20px,3vw,28px); color:var(--ink); line-height:1.4; overflow-wrap:anywhere; }
.bf-observation { padding:18px; background:var(--soft); border:1px solid var(--line); border-radius:12px; margin:18px 0 28px; }
.bf-observation summary,.bf-distance summary { cursor:pointer; font-weight:bold; min-height:36px; line-height:1.5; }
.bf-observation p { margin-top:12px; white-space:pre-wrap; overflow-wrap:anywhere; }
.bf-tour-choices { display:grid; gap:12px; }
.bf-tour-choice { display:flex; align-items:center; gap:16px; padding:18px; border:1px solid var(--line); border-radius:13px; background:var(--surface); color:var(--ink); min-height:64px; text-align:left; }
.bf-tour-choice strong { flex:1; font-size:17px; overflow-wrap:anywhere; min-width:0; }
.bf-tour-choice>span { color:var(--blue); }
.bf-tour-choice:hover { border-color:var(--blue); background:var(--soft); }
.bf-distance { padding:16px 0; font-size:13px; }
.bf-route { max-width:750px; margin:30px auto 0; border-top:1px solid var(--line); padding-top:24px; }
.bf-route h3 { font-size:22px; }
.bf-route ol { list-style:none; padding:0; display:grid; gap:12px; counter-reset:visit; }
.bf-route li { counter-increment:visit; position:relative; border-left:2px solid var(--blue); padding:5px 15px 10px 36px; overflow-wrap:anywhere; }
.bf-route li:before { content:counter(visit,decimal-leading-zero); position:absolute; left:9px; top:6px; color:var(--blue); font-size:12px; }
.bf-route li>span { display:block; font-size:12px; color:var(--muted); }
.bf-route strong { display:block; font-size:15px; }
.bf-entry { display:inline-block; padding:12px 0; }
.bf-page [hidden] { display:none!important; }
@media(max-width:1000px) {
  .bf-workspace { grid-template-columns:minmax(0,1fr); }
  .bf-node-panel { max-width:760px; width:100%; margin:0 auto; }
  .bf-level-cards { grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr)); }
}
@media(max-width:760px) {
  .bf-hero { grid-template-columns:minmax(0,1fr); gap:16px; }
  .bf-emblem { display:none; }
  .bf-hero h1 { font-size:clamp(42px,7vw,62px); }
}
@media(max-width:520px) {
  .bf-page { padding-top:30px; }
  .bf-form-grid { grid-template-columns:minmax(0,1fr); gap:0; }
  .bf-level-cards { grid-template-columns:minmax(0,1fr); }
  .bf-metadata,.bf-add,.bf-node-panel,.bf-diagnostic,.bf-empty,.bf-about { padding:18px; }
  .bf-actions>.btn { flex:1 1 145px; }
  .bf-metrics { gap:8px; }
  .bf-tour-choice { gap:10px; padding:15px; }
}
@media(prefers-reduced-motion:reduce) {
  .bf-page * { animation:none; transition:none; scroll-behavior:auto; }
}
