@font-face{font-family:BFNunito;src:url('../fonts/Nunito-400.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:BFNunito;src:url('../fonts/Nunito-800.woff2') format('woff2');font-weight:800;font-display:swap}
@font-face{font-family:BFBaloo;src:url('../fonts/Baloo2-700.woff2') format('woff2');font-weight:700;font-display:swap}
.bf-page{--font-body:BFNunito,system-ui,sans-serif;--font-title:BFBaloo,system-ui,sans-serif;margin:0;color:#224b50;background:#f0f2e9;font:400 16px/1.45 var(--font-body)}
.bf-page *{box-sizing:border-box}.bf-page [hidden]{display:none!important}.bf-page a{color:inherit}.bf-page button{font:800 .85rem var(--font-body);color:#204952;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.bf-page :focus-visible{outline:3px solid #ca762e;outline-offset:3px}.bf-page button:disabled{cursor:default;opacity:.5}.bf-page button{min-height:44px;border:1px solid #bfd2cb;border-radius:12px;background:#f3f7ee;padding:9px 14px}
.bf-page button[aria-pressed=true]{background:#234d53;color:#fff;border-color:#234d53}.bf-page .bf-primary{background:#ecc374;color:#493b21;border-color:#c39949;box-shadow:0 2px 0 #a4793229}
.bf-skip{position:fixed;top:-100px;left:12px;padding:12px;background:#fff;z-index:100004}.bf-skip:focus{top:12px}
.bf-sitehead{max-width:1360px;margin:auto;padding:10px 22px;min-height:66px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:.82rem;font-weight:800}.bf-sitehead a{display:flex;align-items:center;gap:9px;min-height:44px;text-decoration:none}.bf-sitehead img{object-fit:contain}
.bf-page main{max-width:1360px;margin:auto;padding:0 18px 16px}.bf-game{position:relative;display:grid;grid-template-rows:auto minmax(300px,1fr) auto;min-height:690px;height:calc(100svh - 105px);max-height:1040px;border:1px solid #cedad0;border-radius:22px;background:#fffdf4;overflow:hidden;box-shadow:0 10px 36px #193d4612}
.bf-heading{padding:12px 20px;min-height:75px;display:flex;align-items:center}.bf-heading h1{font:700 1.75rem/1.1 var(--font-title);margin:0}.bf-eyebrow{display:block;font-size:.62rem;letter-spacing:.11em;text-transform:uppercase;font-weight:800;color:#5d796f;margin:0 0 4px}
.bf-game>.game-viewport__open{position:absolute;right:15px;top:17px;margin:0;min-height:44px;font-size:.74rem;padding:7px 12px;box-shadow:none;color:#284f50;background:#e5eee4;border:1px solid #c4d7c9}
.bf-stage{position:relative;isolation:isolate;overflow:hidden;min-height:0;background:#699caa;outline-offset:-4px!important}.bf-canvas,.bf-canvas canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.bf-canvas canvas{touch-action:pan-y}
.bf-cover{position:absolute;inset:0;display:flex;align-items:center;padding:30px;background:#9cbbb7}.bf-cover>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.bf-cover::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#092f3d46,transparent 70%)}
.bf-intro-card{position:relative;z-index:1;width:min(330px,100%);padding:24px;background:#fffcf0f2;border:1px solid #fff8;border-radius:19px;box-shadow:0 10px 35px #1c3e512e}.bf-intro-card h2,.bf-panel h2{font:700 clamp(1.7rem,3.3vw,2.3rem)/1.08 var(--font-title);margin:8px 0 13px}.bf-intro-card p{font-size:.92rem;margin:0 0 20px}.bf-intro-card small{display:block;font-size:.7rem;margin-top:12px;color:#5a7471}
.bf-hud{position:absolute;inset:12px 14px auto;display:flex;align-items:flex-start;justify-content:space-between;gap:10px;pointer-events:none}.bf-location{background:#fffdf0ee;border:1px solid #fff9;border-radius:13px;padding:10px 14px;box-shadow:0 4px 15px #22465022}.bf-location small{font-size:.53rem;letter-spacing:.12em;font-weight:800;display:block;color:#5b7b74}.bf-location strong{display:block;font:700 1.22rem/1.2 var(--font-title)}.bf-location>span{display:block;font-size:.66rem;margin-top:3px;font-weight:800}
.bf-scene-actions{display:flex;gap:5px;pointer-events:auto}.bf-scene-actions button{font-size:.69rem;padding:7px 10px;background:#fffff1e8;border-color:#ffffffad;box-shadow:0 2px 8px #17464b20}
.bf-signal{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);pointer-events:none;background:#fff4cbf2;padding:13px 24px;border:2px solid #dfa354;border-radius:50px;box-shadow:0 6px 30px #1a535340;text-align:center;min-width:210px}.bf-signal>span{display:inline;color:#bb6332;margin-right:6px}.bf-signal strong{font:700 1.4rem var(--font-title)}.bf-signal small{display:block;font-size:.7rem}
.bf-sheet,.bf-book{position:absolute;z-index:9;inset:10px;margin:auto;max-width:620px;overflow:auto;overscroll-behavior:contain;border:5px solid #ae8c5c;background:#fff9e8;border-radius:17px;padding:17px;box-shadow:0 12px 45px #173d5870}.bf-sheet{inset:12px 12px auto auto;width:min(420px,calc(100% - 24px));max-height:calc(100% - 24px)}.bf-sheet-head{display:flex;justify-content:space-between;gap:12px;align-items:center;border-bottom:1px solid #d3c7a8;padding-bottom:9px;margin-bottom:11px}.bf-sheet-head h2{font:700 1.8rem/1.1 var(--font-title);margin:0}.bf-sheet-head button{min-width:44px;flex-shrink:0;font-size:1.3rem;background:#eee3c6;border-color:#c6b181}
.bf-place-list{display:grid;gap:8px}.bf-place-list button{text-align:left;background:#f5f1da;padding:13px 15px;border-color:#d3c8a7;display:grid;grid-template-columns:36px 1fr;align-items:center;gap:0 10px}.bf-place-list button span{grid-row:span 2;font:700 1.6rem var(--font-title);color:#789080}.bf-place-list strong{font:700 1.2rem var(--font-title)}.bf-place-list small{font:400 .76rem var(--font-body);opacity:.84}.bf-place-list button[aria-pressed=true] span{color:#d8dfa7}
.bf-catch{position:absolute;z-index:3;right:20px;bottom:20px;width:min(340px,calc(100% - 40px));padding:20px;background:#fff9eaf2;border:1px solid #fff;border-radius:18px;box-shadow:0 6px 30px #21495233}.bf-catch h2{font:700 2.1rem/1.1 var(--font-title);margin:5px 0}.bf-catch p{font-size:.85rem;margin:8px 0 15px}.bf-catch button{width:100%}
.bf-panel{position:absolute;inset:0;z-index:7;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:12px;text-align:center;padding:24px;background:#fbf6e8ec;backdrop-filter:blur(4px);overflow:auto}.bf-panel h2,.bf-panel p{margin:0;max-width:430px}.bf-panel a{display:flex;min-height:44px;align-items:center;font-size:.85rem}.bf-finish-fish{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.bf-finish-fish img{width:90px;height:65px;object-fit:contain}
.bf-spinner{width:28px;height:28px;border:3px solid #b8cebd;border-top-color:#356e6c;border-radius:50%;animation:bf-spin 1s linear infinite}@keyframes bf-spin{to{transform:rotate(360deg)}}
.bf-paused{position:absolute;inset:0;z-index:6;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#1a3e4c99;color:white;pointer-events:none}.bf-paused strong{font:700 2rem var(--font-title)}.bf-paused span{font-size:.8rem}
.bf-book>p{font-size:.76rem}.bf-book-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.bf-book-list article{padding:10px;border:1px solid #d8cda9;border-radius:12px;background:#fffdf3}.bf-book-list img{height:75px;width:100%;object-fit:contain}.bf-book-list h3{font:700 1.2rem var(--font-title);margin:4px 0}.bf-book-list p{font-size:.72rem;margin:5px 0}.bf-book-list small{font-size:.65rem;color:#5a7768}.bf-book-list article.is-unknown img{opacity:.3;filter:grayscale(1)}
.bf-bottom{background:#fffdf5;padding:10px 15px 8px}.bf-feedback{font-size:.8rem;font-weight:800;min-height:1.45em;margin:0 0 8px;text-align:center}.bf-play{display:grid;grid-template-columns:minmax(150px,1fr) minmax(260px,1.5fr) auto;align-items:center;gap:12px}.bf-clue{display:flex;flex-direction:column;gap:1px}.bf-clue strong{font:700 1.15rem/1.15 var(--font-title)}.bf-clue>span:last-child{font-size:.73rem;max-width:320px}.bf-depths{display:flex;gap:6px}.bf-depths button{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;flex-direction:column;font-size:.74rem;min-height:64px;padding:7px}.bf-depths i{font-style:normal;font-size:1.4rem;line-height:1.2;margin-bottom:3px}.bf-buttons{display:flex;gap:6px;align-items:stretch}.bf-buttons .bf-action{min-width:135px;font-size:.83rem;min-height:62px;touch-action:none;user-select:none;-webkit-user-select:none}.bf-action.is-held{background:#32766e;color:white;border-color:#22645e;box-shadow:inset 0 3px 8px #17403933}.bf-buttons>[data-bf-assist],.bf-buttons>[data-bf-pause]{font-size:.7rem;padding:6px 10px}
.bf-meters>div:first-child{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:.85rem;margin-bottom:7px}.bf-meters span{font-size:.7rem}.bf-tension [role=progressbar]{height:11px;background:linear-gradient(90deg,#d8e6bf 55%,#f0d79e 55%,#f0d79e 82%,#e9b19d 82%);border-radius:10px;overflow:hidden}.bf-tension i{display:block;width:0;height:100%;border-right:3px solid #204853;background:#376e628f}.bf-tension small{display:block;font-size:.65rem;margin-top:5px}.bf-keyhelp,.bf-note{font-size:.66rem;color:#637d75;text-align:center;margin:7px 0 0}.bf-note{font-size:.72rem;max-width:820px;margin:12px auto 0}
.bf-game.is-game-viewport{grid-template-rows:minmax(0,1fr) auto!important;padding:var(--gv-bar) 0 0!important;background:#fffdf4!important}.bf-game.is-game-viewport .bf-heading{display:none}.bf-game.is-game-viewport .bf-stage{grid-row:1}.bf-game.is-game-viewport .bf-bottom{grid-row:2}.bf-game.is-game-viewport .bf-scene-actions button{min-height:44px}.bf-game.is-game-viewport .bf-panel h2{font-size:2rem!important}
@media(max-width:920px){.bf-play{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr)}.bf-buttons{grid-column:span 2;justify-content:center}.bf-buttons .bf-action{flex:2;min-height:50px}.bf-buttons>button:not(.bf-action){flex:1}.bf-clue>span:last-child{font-size:.7rem}.bf-game{min-height:760px}.bf-scene-actions{display:grid;grid-template-columns:repeat(2,1fr)}}
@media(max-width:550px){.bf-page main{padding:0 7px 14px}.bf-sitehead{padding:5px 10px;min-height:57px;font-size:.7rem}.bf-brand{max-width:175px}.bf-heading{min-height:92px;padding:10px 12px 38px}.bf-heading h1{font-size:1.45rem}.bf-heading .bf-eyebrow{font-size:.54rem}.bf-game>.game-viewport__open{left:10px;right:auto;top:55px;min-height:30px;font-size:.67rem;padding:5px 10px}.bf-game{border-radius:15px;min-height:750px;height:calc(100svh - 83px)}.bf-cover{padding:15px;align-items:flex-end}.bf-cover>img{object-position:64% center}.bf-intro-card{padding:17px;width:100%}.bf-intro-card h2{font-size:1.85rem}.bf-intro-card p{font-size:.82rem;margin-bottom:13px}.bf-intro-card small{font-size:.65rem}.bf-hud{inset:8px 8px auto}.bf-location{padding:8px 10px}.bf-location strong{font-size:1.06rem}.bf-location small{font-size:.45rem}.bf-location>span{font-size:.58rem}.bf-scene-actions{grid-template-columns:1fr;gap:4px}.bf-scene-actions button{font-size:.6rem;padding:5px 8px;min-height:37px;min-width:83px}.bf-scene-actions [data-bf-evening],.bf-scene-actions [data-bf-calm]{display:none}.bf-bottom{padding:7px 8px}.bf-feedback{font-size:.7rem;margin-bottom:6px}.bf-play{grid-template-columns:minmax(0,1fr);gap:7px}.bf-clue{display:block;line-height:1.2}.bf-clue .bf-eyebrow{display:none}.bf-clue strong{font-size:.94rem;margin-right:5px}.bf-clue>span:last-child{font-size:.66rem}.bf-depths{gap:4px}.bf-depths button{min-height:46px;font-size:.65rem;flex-direction:row;gap:5px;padding:5px}.bf-depths i{font-size:1.1rem;margin:0}.bf-buttons{grid-column:1;gap:4px}.bf-buttons .bf-action{font-size:.75rem;min-width:0;min-height:48px}.bf-buttons>[data-bf-assist],.bf-buttons>[data-bf-pause]{font-size:.64rem;padding:5px 7px}.bf-keyhelp{display:none!important}.bf-catch{padding:14px;left:9px;right:9px;bottom:9px;width:auto}.bf-catch h2{font-size:1.6rem}.bf-catch p{font-size:.75rem;margin:4px 0 10px}.bf-catch .bf-eyebrow{font-size:.53rem}.bf-catch button{min-height:44px}.bf-signal{top:49%;min-width:195px;padding:10px 16px}.bf-signal strong{font-size:1.25rem}.bf-signal small{font-size:.6rem}.bf-book{inset:7px;padding:11px;border-width:4px}.bf-book-list{gap:6px}.bf-book-list article{padding:7px}.bf-book-list img{height:52px}.bf-book-list h3{font-size:1.03rem}.bf-book-list p{font-size:.65rem}.bf-sheet{inset:7px;width:calc(100% - 14px);max-height:calc(100% - 14px);padding:11px}.bf-sheet-head h2{font-size:1.4rem}.bf-place-list button{padding:9px}.bf-place-list strong{font-size:1rem}.bf-place-list small{font-size:.65rem}.bf-place-list{gap:5px}}
@media(max-height:520px) and (min-width:551px){.bf-game.is-game-viewport .bf-play{grid-template-columns:1fr 1.2fr 1.2fr;gap:8px}.bf-game.is-game-viewport .bf-buttons{grid-column:auto}.bf-game.is-game-viewport .bf-buttons .bf-action{min-width:90px;min-height:45px}.bf-game.is-game-viewport .bf-keyhelp{display:none}.bf-game.is-game-viewport .bf-depths button{min-height:45px;flex-direction:row;gap:5px}.bf-game.is-game-viewport .bf-intro-card{padding:12px;width:300px}.bf-game.is-game-viewport .bf-intro-card p{font-size:.75rem;margin-bottom:8px}.bf-game.is-game-viewport .bf-intro-card h2{font-size:1.55rem;margin:2px 0 5px}.bf-game.is-game-viewport .bf-intro-card small{display:none}.bf-game.is-game-viewport .bf-catch{padding:10px;width:270px;right:12px;bottom:10px}.bf-game.is-game-viewport .bf-catch h2{font-size:1.4rem!important}.bf-game.is-game-viewport .bf-catch p{font-size:.72rem;margin:4px 0 8px}}
@media(prefers-reduced-motion:reduce){.bf-spinner{animation:none}}
.bf-game.is-game-viewport{min-height:0!important}
/* Keep focus from scrolling the fixed game shell; books/sheets scroll themselves. */
.bf-game.is-game-viewport{overflow:clip!important}
@media(max-width:550px){.bf-scene-actions{grid-template-columns:repeat(2,minmax(0,1fr));max-width:178px}.bf-scene-actions button{min-width:0}.bf-scene-actions [data-bf-evening],.bf-scene-actions [data-bf-calm]{display:block}.bf-game.is-game-viewport .bf-scene-actions button{min-height:44px}}
@media(max-width:550px){.bf-heading{min-height:112px}.bf-game>.game-viewport__open{min-height:44px}.bf-scene-actions button{min-height:44px}}
