@charset "UTF-8";
:root{color-scheme:light;--ink:#183c46;--muted:#516b6c;--gold:#f1c976;--paper:#fff8e6;--edge:#cbbb94;--teal:#255b64;--navy:#142f3d;font-family:Georgia,'Times New Roman',serif;color:var(--ink);background:#183e49}*{box-sizing:border-box}body{margin:0;height:100vh;height:100dvh;overflow:hidden;background:radial-gradient(at 10% 5%,#476b65,transparent 65%),#163a47}button,select,input{font:600 14px/1.25 system-ui,sans-serif;color:var(--ink)}button,a,select,input{touch-action:manipulation}button{border:1px solid #b6ad90;background:#fff8e7;border-radius:9px;min-height:44px;padding:9px 14px;cursor:pointer;box-shadow:0 2px 0 #132c3b18;transition:background .15s,transform .15s}button:hover{background:#e5f1e7;color:#133f47;border-color:#658b80}button:active{transform:translateY(1px)}button:disabled{opacity:.65;background:#deddd3;color:#4e5d5d;cursor:default}button.chosen,button[aria-pressed=true]{background:#245861;color:#fff8dc;border-color:#173942;box-shadow:inset 0 0 0 2px #f0c877}button.primary{background:#f1c976;border-color:#af803b;color:#28372c}button.primary:hover{background:#ffdda2;color:#223e35}button.danger{color:#922f35}a{color:#f5d596}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #ee9541;outline-offset:3px}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:500}h1{font-size:clamp(30px,4vw,59px);line-height:1.06;letter-spacing:-1.4px}h2{font-size:29px}h3{font-size:21px}p{line-height:1.5}small,.small{font:12px/1.5 system-ui,sans-serif}label{font:14px/1.4 system-ui,sans-serif}select,input[type=text],input[type=number]{min-height:44px;border:1px solid #a9ac95;background:#fffaf0;border-radius:8px;padding:8px;max-width:100%}.topbar{height:52px;display:flex;gap:20px;align-items:center;justify-content:space-between;padding:5px 22px;color:#d4e1d6;border-bottom:1px solid #8dac9038;background:#102e3c}.topbar a{font:600 13px system-ui;text-decoration:none;padding:10px 0}.topbar span{font:10px system-ui;letter-spacing:2px}.topbar button{min-height:36px;padding:5px 13px;background:#254451;color:#fceacc;border-color:#60776f}#app{height:calc(100% - 52px)}.screen{height:100%;overflow:auto;padding:30px clamp(14px,5vw,80px);color:var(--paper)}.eyebrow{font:600 11px system-ui;letter-spacing:3px;text-transform:uppercase;color:#eed1a0;margin-bottom:12px}.muted{color:var(--muted)}.hero{position:relative;max-width:1300px;margin:auto;border:1px solid #a7b69277;border-radius:22px;overflow:hidden;min-height:550px;box-shadow:0 20px 70px #071d3877}.landscape{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#153b48ed 0%,#173f47e6 36%,transparent 80%);pointer-events:none}.hero-copy{position:relative;z-index:1;max-width:650px;padding:50px}.hero-copy p{max-width:460px;color:#e4eee1;margin:23px 0}.hero-party{display:flex;position:relative;z-index:1;justify-content:flex-end;gap:0;padding:0 40px 18px;margin-top:-145px;pointer-events:none}.hero-party .traveler{width:105px;height:160px;filter:drop-shadow(0 7px 4px #16383f55)}.row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.spread{justify-content:space-between}.stack{display:grid;gap:15px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-top:22px}.paper{background:var(--paper);border:1px solid var(--edge);border-radius:15px;padding:22px;color:var(--ink);box-shadow:0 8px 26px #09243233}.paper p{margin:10px 0}.paper h3{margin-bottom:12px}.feature-card{background:#e8efe133;color:#eee9d4;padding:20px;border-radius:12px;border:1px solid #9db29644}.feature-card p{font:14px/1.5 system-ui;margin-top:6px}.traveler{width:62px;height:77px;overflow:visible}.body{transform-origin:39px 72px}.idle .body{animation:breathe 3.6s ease-in-out infinite}.walking .body{animation:walk .45s ease-in-out infinite}.thinking .body{animation:think 1.2s ease-in-out infinite}.celebrating .body{animation:celebrate .6s ease-in-out infinite}.surprised .body{animation:surprise .4s ease-out 2}@keyframes breathe{50%{transform:translateY(-2px) rotate(1deg)}}@keyframes walk{50%{transform:translateY(-5px) rotate(6deg)}}@keyframes think{50%{transform:rotate(-7deg)}}@keyframes celebrate{50%{transform:translateY(-13px) rotate(-8deg)}}@keyframes surprise{50%{transform:scale(1.15,.88)}}.reduced *{animation:none!important;transition:none!important}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.creation{display:grid;grid-template-columns:300px 1fr;gap:22px;margin:24px auto;max-width:1200px}.preview{text-align:center}.preview .traveler{width:140px;height:165px}.edit-fields{display:grid;gap:9px}.edit-fields label{display:grid;gap:4px}.roster{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px}.person{padding:4px;min-width:70px;display:flex;flex-direction:column;align-items:center;position:relative}.person .name{font:600 11px system-ui;white-space:nowrap}.person.done{background:#d7e6c9}.person.done:after{content:'✓';position:absolute;top:3px;right:4px;color:#2e6436;background:#f6fcdf;border-radius:99px;padding:2px}.roster .person{max-width:140px}.journey-map{position:relative;isolation:isolate;min-height:470px;overflow:hidden;border-radius:18px;margin:20px 0;border:1px solid #9dbea5}.map-paths{position:absolute;inset:0;width:100%;height:100%;z-index:-1}.map-grid{position:relative;display:grid;grid-template-columns:repeat(5,1fr);gap:25px;align-items:center;padding:80px 20px 35px;min-height:470px}.map-stop{background:#fff7dfeb;border:2px solid #c4b78a;border-radius:50% 50% 15px 15px;padding:18px 10px;text-align:center;color:var(--ink)}.map-stop p{font:12px/1.4 system-ui;margin:6px}.map-stop.active{box-shadow:0 0 0 5px #f2cb7a77;border-color:#ab7b2f}.map-stop button{font-size:12px;padding:8px}.branches{display:grid;gap:24px}.town{position:relative;min-height:270px;border-radius:16px;overflow:hidden;margin-top:20px}.houses{position:relative;display:flex;flex-wrap:wrap;align-items:flex-end;gap:13px;min-height:270px;padding:80px 30px 25px}.house{width:66px;height:65px;position:relative;background:#f6d394;border:3px solid #866e55;border-radius:4px}.house:before{content:'';position:absolute;top:-31px;left:-10px;border-left:40px solid transparent;border-right:40px solid transparent;border-bottom:30px solid #9c5651}.house:after{content:'▥ ▥';display:block;color:#4b7271;padding:8px;font-size:21px;text-align:center}.house:nth-child(3n){background:#e0e8c0;height:85px}.game{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:10px;padding:15px 20px}.game-head{display:flex;align-items:center;gap:20px;justify-content:space-between;color:#f8edcb}.game-head h2{font-size:28px}.game-head p{font:13px/1.4 system-ui;color:#d5e4d9;max-width:900px;margin-top:5px}.badge{font:11px system-ui;letter-spacing:1px;background:#426367;color:#f6e7b9;border-radius:20px;padding:6px 10px;white-space:nowrap}.game-body{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 205px;gap:13px}.scene{position:relative;isolation:isolate;overflow:auto;overscroll-behavior:contain;border:1px solid #aabb9e;border-radius:17px;background:#8cadad;scrollbar-color:#789b8c #e7ead8}.scene>.landscape{position:sticky;top:0;height:100%;min-height:350px;margin-bottom:-100%;z-index:-1;display:block}.scene-inner{position:relative;padding:20px;min-height:100%;display:flex;flex-direction:column;justify-content:flex-start;gap:14px}.scene-banner{align-self:flex-start;background:#fff8e8ed;color:#2b4549;padding:10px 14px;border-radius:10px;max-width:720px;font:14px/1.45 system-ui;border:1px solid #b4ad90}.board-surface{background:#fff8e8e8;border:1px solid #bdb18d;border-radius:14px;padding:17px;max-width:950px;box-shadow:0 12px 24px #1b374530}.sidebar{background:#efe8d5;border:1px solid #a9b698;border-radius:14px;min-height:0;display:flex;flex-direction:column;overflow:hidden}.selected{padding:10px;border-bottom:1px solid #c5bba0;font:12px/1.5 system-ui;color:#213d43;background:#fff9e7}.selected strong{font:600 14px system-ui}.selected .traveler{float:left;width:48px;height:68px;margin-right:7px}.party-scroll{overflow:auto;min-height:0;padding:7px;display:grid;grid-template-columns:repeat(2,1fr);gap:6px;align-content:start}.game-foot{color:#f2e6c9;display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px}.message{font:13px/1.4 system-ui;padding:7px 12px;background:#0f2e3a;border-left:3px solid #ebc579;min-height:44px;max-height:72px;overflow:auto}.toolbar{display:flex;gap:5px;flex-wrap:wrap}.toolbar button{padding:7px 10px;font-size:12px}.gates{display:grid;grid-template-columns:1fr 1fr;gap:18px;max-width:800px;margin:20px 0}.gate{min-height:130px;background:#5f716eea;border:3px solid #c7b68c;border-radius:60% 60% 12px 12px;color:#fff0c3;font-family:Georgia;font-size:24px;box-shadow:inset 0 10px 20px #162e4866}.gate:hover{background:#415b5c;color:#fff4cd}.gate:before{content:'◡  ◡';display:block;font-size:24px;letter-spacing:17px}.caves .gate{background:#3d465c}.cliffs .gate{border-radius:35% 35% 12px 12px}.instructions{font:13px/1.5 system-ui}.seat-grid{display:grid;gap:10px;margin:12px 0;max-width:750px}.seat{position:relative;min-height:110px;padding:5px;background:#e5cc9c;border:2px solid #a28459;display:flex;flex-direction:column;align-items:center;justify-content:space-between;min-width:77px}.seat .traveler{height:60px;width:52px}.seat small{font-size:10px}.stone .seat{background:#dae0d0;clip-path:polygon(10% 0,90% 0,100% 50%,90% 100%,10% 100%,0 50%);border-radius:25px}.wire-list{display:flex;flex-wrap:wrap;gap:6px;font:12px/1.4 system-ui}.wire{padding:6px 8px;background:#e5ddcb;border-radius:7px;border:1px solid #b6ae93}.wire.live{background:#deefba;border-color:#678b54;color:#2c542f}.trolls{display:flex;gap:8px}.troll{font-size:16px;padding:10px 18px}.pizza{display:grid;grid-template-columns:160px 1fr;align-items:center;gap:20px}.pizza-art{width:150px;height:150px;border:12px solid #d7a252;border-radius:50%;background:radial-gradient(#d5774c 2px,#eec46c 3px);box-shadow:0 8px 12px #7c5c462b;display:flex;flex-wrap:wrap;align-content:center;justify-content:center;font-size:26px}.pad-grid{display:grid;grid-template-columns:repeat(5,minmax(58px,1fr));gap:7px;max-width:570px;margin:12px 0}.pad{position:relative;min-height:60px;padding:4px;background:#d4e5ab;border:2px solid #779962;border-radius:45%;font-size:12px}.pad.chosen{background:#285c4e;color:#fff7df}.pad.crab{border-color:#a5312d;background:#ffcd9b}.pad .pad-symbol{font-size:20px;display:block}.toads{display:flex;flex-wrap:wrap;gap:7px}.toad{font-size:12px;display:flex;align-items:center;gap:7px}.toad-icon{font-size:25px}.fleens{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}.fleen{width:90px;border:1px solid #b4a173;background:#ead8a6;border-radius:12px;text-align:center;padding:6px;font:11px system-ui}.fleen.target{border:3px solid #ac7b32;background:#ffefb5}.fleen.called{opacity:.45}.fleen .traveler{height:65px;width:55px}.example{display:flex;align-items:center;gap:5px;background:#f5ead3;padding:7px;border-radius:12px;font:12px system-ui}.example .traveler{height:60px;width:47px}.hotel-grid,.mud-grid{display:grid;grid-template-columns:repeat(5,minmax(70px,1fr));gap:7px;max-width:650px}.hotel-room{min-height:74px;padding:5px;background:#f7e1aa;border:3px solid #9a7968;border-radius:40% 40% 4px 4px;display:flex;align-items:center;flex-direction:column;justify-content:center}.hotel-room small{font-size:10px}.hotel-room .traveler{width:32px;height:40px}.axis-label{font:12px/1.5 system-ui;margin:8px 0}.mud-cell{height:57px;background:#967960;color:#fff8e0;padding:6px;text-align:center;border-radius:4px;border:1px solid #6e614f;font:12px system-ui}.mud-cell.target{background:#fff1b1;color:#233f48;border:3px solid #baa75e;font-weight:bold}.mud-cell.hit{background:#cde7b9;color:#315837}.ball-controls{display:flex;flex-wrap:wrap;gap:12px;margin:14px 0}.ball-controls label{display:grid;gap:5px}.lion-path{display:grid;grid-template-columns:repeat(4,minmax(80px,1fr));gap:10px}.carvings{padding:10px;background:#d6ceb9;border-radius:6px;font:13px/1.5 system-ui}.mirror-pair{display:flex;align-items:center;gap:15px;justify-content:center;margin:8px}.mirror-card{text-align:center;padding:10px;background:#e6f0e9;border:3px double #5c9099;border-radius:35% 35% 10px 10px;min-width:95px}.mirror-card .traveler{width:80px;height:100px}.mirror-card small{display:block}.filters{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.filters button{font-size:12px}.filter-chain{padding:10px;background:#dce9e9;border-radius:7px;font:13px system-ui;min-height:45px}.bubble-network{background:#e9eafbe8;border-radius:18px;padding:18px;border:1px solid #b3b6ce;max-width:720px;display:grid;gap:12px}.bubble-node{border:2px solid #748eb4;border-radius:30px;padding:14px;background:#f6f4ff;font:13px/1.5 system-ui}.bubble-gates{display:flex;gap:12px}.bubble-gates button{border-radius:40px;background:#ceecf2;flex:1;min-height:70px}.bubble-gates button:hover{background:#a7dbe8}.win-banner{background:#fff2c7;border:2px solid #b49556;border-radius:16px;padding:25px;text-align:center;color:#294849}.win-banner h2{margin:12px}.win-party{display:flex;justify-content:center;flex-wrap:wrap}.win-party .traveler{width:65px}.practice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;margin-top:24px}.practice-card{background:#fff7e4;border:1px solid #a9b498;border-radius:14px;overflow:hidden;color:#2e4851}.practice-art{position:relative;height:120px;overflow:hidden}.practice-card>div:last-child{padding:17px}.practice-card select{width:100%;margin:12px 0}.practice-card button{width:100%}dialog{color:var(--ink);background:var(--paper);border:2px solid #c3aa76;border-radius:18px;max-width:min(690px,calc(100vw - 24px));width:640px;max-height:calc(100dvh - 30px);padding:23px;box-shadow:0 25px 100px #041d3aaa}dialog::backdrop{background:#092b3dc9;backdrop-filter:blur(5px)}dialog h2{margin-bottom:14px}dialog p{margin:12px 0}dialog form{margin-top:20px;text-align:right}dialog .stack{margin:10px 0}.notebook{font:14px/1.5 system-ui;padding-left:22px}.notebook li{padding:7px 0;border-bottom:1px solid #dbd2b8}.settings-label{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:10px;padding:10px 0}.notice{padding:10px;border:1px solid #d8bd88;background:#fff1c8;color:#5a492c;border-radius:8px;font:13px/1.5 system-ui}#storageWarning{position:fixed;bottom:5px;left:5px;right:5px;background:#fce6ac;color:#4b351c;z-index:100;padding:12px;font:13px system-ui;border:2px solid #b65b3e}.help-links a{color:#245863}.summary{font:13px/1.5 system-ui}.mobile-only{display:none}
@media(max-width:760px){.topbar{height:45px;padding:4px 12px;gap:6px}.topbar span{display:none}.topbar a{font-size:12px}#app{height:calc(100% - 45px)}.screen{padding:18px 12px}.hero{min-height:520px}.hero-copy{padding:27px 22px}.hero-copy p{margin:15px 0;font-size:15px}.hero-party{margin-top:-5px;padding:8px 10px;justify-content:center}.hero-party .traveler{width:62px;height:86px}.hero:after{background:linear-gradient(90deg,#153b48ef,#173f47ac 70%,#173f4755)}h1{font-size:38px}.creation{grid-template-columns:1fr;margin:15px 0;gap:15px}.preview .traveler{width:85px;height:110px}.edit-fields{grid-template-columns:1fr 1fr}.paper{padding:16px}.map-grid{grid-template-columns:1fr 1fr;gap:18px;padding:20px;min-width:340px}.journey-map{min-height:500px}.map-stop:last-child{grid-column:1/3}.map-stop{padding:12px 6px}.map-stop h3{font-size:18px}.branches{gap:10px}.game{gap:6px;padding:8px 8px max(7px,env(safe-area-inset-bottom));grid-template-rows:auto minmax(0,1fr) auto}.game-head{gap:5px;align-items:flex-start}.game-head h2{font-size:21px}.game-head p{font-size:12px;line-height:1.35;margin-top:4px;max-height:50px;overflow:auto}.badge{font-size:9px;letter-spacing:0;padding:5px 6px}.game-body{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) 139px;gap:6px}.scene{border-radius:10px}.scene-inner{padding:11px;gap:10px}.scene>.landscape{min-height:100%;margin-bottom:-100%}.scene-banner{padding:8px 10px;font-size:12px}.board-surface{padding:11px}.sidebar{border-radius:9px;display:grid;grid-template-rows:54px 1fr}.selected{font-size:11px;line-height:1.4;padding:5px 8px;overflow:auto}.selected strong{font-size:12px}.selected .traveler{width:33px;height:43px}.party-scroll{display:flex;gap:5px;padding:4px;overflow-x:auto;overflow-y:hidden}.person{min-width:58px;flex:0 0 58px;padding:2px;min-height:72px}.person .traveler{height:50px;width:42px}.person .name{font-size:10px}.game-foot{grid-template-columns:1fr;gap:5px}.message{font-size:12px;line-height:1.3;min-height:35px;max-height:46px;padding:6px 9px}.toolbar{display:grid;grid-template-columns:repeat(5,1fr);gap:4px}.toolbar button{padding:5px 2px;font-size:11px;min-height:40px}.gates{gap:12px;margin:5px 0}.gate{min-height:100px;font-size:19px}.gate:before{font-size:19px}.seat-grid{gap:6px}.seat{min-height:91px;min-width:64px}.seat .traveler{height:45px;width:37px}.seat small{font-size:9px}.seat>span{font-size:11px}.pizza{grid-template-columns:1fr;gap:10px}.pizza-art{width:100px;height:100px;justify-self:center;font-size:18px;border-width:8px}.troll{padding:8px;font-size:13px;flex:1}.pad-grid{gap:5px}.pad{min-height:57px;font-size:10px;min-width:0}.pad .pad-symbol{font-size:18px}.toads{gap:4px}.toad{padding:5px;font-size:10px;min-height:44px}.toad-icon{font-size:20px}.hotel-grid,.mud-grid{grid-template-columns:repeat(5,minmax(53px,1fr));gap:4px;min-width:292px}.hotel-room{min-height:66px;padding:2px;font-size:11px;border-width:2px}.mud-cell{height:47px;padding:3px;font-size:11px}.lion-path{grid-template-columns:repeat(4,minmax(59px,1fr));gap:5px}.mirror-pair{gap:7px}.mirror-card{min-width:78px;padding:6px}.mirror-card .traveler{width:60px;height:78px}.mirror-card small{font-size:10px}.bubble-network{padding:10px;gap:8px}.bubble-node{padding:10px;font-size:12px}.bubble-gates button{min-height:55px;font-size:12px}.fleen{width:74px}.fleen .traveler{width:42px;height:54px}.win-banner{padding:16px}.win-party .traveler{width:45px;height:60px}dialog{padding:18px}.mobile-only{display:inline}}
@media(max-width:950px) and (orientation:landscape) and (max-height:550px){.topbar{height:38px}#app{height:calc(100% - 38px)}.game{padding:5px 8px;gap:5px}.game-head h2{font-size:18px}.game-head p{font-size:11px;max-height:29px;margin-top:2px}.game-body{grid-template-columns:minmax(0,1fr) 180px;grid-template-rows:minmax(0,1fr)}.sidebar{display:flex}.selected{min-height:60px}.party-scroll{display:grid;grid-template-columns:1fr 1fr;overflow:auto}.person{min-height:64px;min-width:60px}.game-foot{grid-template-columns:1fr auto}.toolbar{display:flex}.toolbar button{font-size:10px;min-height:36px;padding:5px 8px}.message{max-height:40px;font-size:11px}.game-head .badge{font-size:10px}.scene-inner{padding:10px}.hero-copy{padding:25px}.hero-party{margin:0}.hero{min-height:430px}}

/* Scene scenery stays behind the scrollable puzzle surface. */
.scene>.landscape{position:absolute;inset:0;margin:0;min-height:100%;height:100%;z-index:-1}
.game-body{grid-template-rows:minmax(0,1fr) auto}.game-body>.scene{grid-column:1;grid-row:1}.scene-actions{grid-column:1;grid-row:2;display:flex;align-items:center;gap:6px;flex-wrap:wrap;color:#f7ebd0}.scene-actions:empty{display:none}.scene-actions button{min-height:42px}.scene-actions label{display:flex;align-items:center;gap:5px;color:#fff0d7;font-size:11px}.scene-actions select{font-size:12px;min-height:42px;max-width:110px}.game-body>.sidebar{grid-column:2;grid-row:1/3}.selected{flex-shrink:0}.party-scroll{min-width:0}.person .name{max-width:100%;overflow:hidden;text-overflow:ellipsis}
@media(max-width:760px){.game-body{grid-template-rows:minmax(0,1fr) auto 139px}.game-body>.sidebar{grid-column:1;grid-row:3}.scene-actions{gap:4px;justify-content:space-between}.scene-actions button{min-height:44px;font-size:11px;padding:6px 9px;flex:1}.scene-actions label{display:grid;gap:2px;min-width:0;flex:1}.scene-actions select{font-size:11px;min-height:37px;width:100%;padding:3px;max-width:none}.scene-actions>.small{font-size:11px}}
@media(max-width:950px) and (orientation:landscape) and (max-height:550px){.game-body{grid-template-columns:minmax(0,1fr) 215px;grid-template-rows:minmax(0,1fr) auto}.game-body>.sidebar{grid-column:2;grid-row:1/3}.selected{height:91px;min-height:91px;font:11px/1.4 system-ui;overflow:auto;padding:7px}.selected .traveler{height:55px;width:40px}.party-scroll .person .traveler{height:43px;width:36px}.party-scroll .person{min-height:63px}.scene-actions{justify-content:flex-start}.scene-actions button{min-height:38px;font-size:11px;padding:5px 9px;flex:initial}.scene-actions select{min-height:34px}.scene-actions label{display:flex;flex:initial}}
.journey-map>.landscape{z-index:-2}.journey-map>.map-paths{z-index:-1}.map-grid{z-index:1}
/* Storage warnings consume layout space rather than covering active controls. */
body{display:flex;flex-direction:column}.topbar{flex-shrink:0;order:0}#app{order:2;flex:1;min-height:0;height:auto}#storageWarning{order:1;position:static;flex-shrink:0;margin:0;padding:8px 14px;font-size:12px;border-width:0 0 2px}
