/* Compact cabin: preserve landscape dimensions, remove redundant document flow. */
.in-journey .rail-workspace main{padding:14px 0 6px;min-height:calc(100dvh - 28px)}
.in-journey .rail-footer{padding:7px 0;font-size:9px}
.journey-follow{position:relative;max-width:1040px;padding:0 40px}
.journey-follow>.module-heading{margin:0;text-align:center}
.journey-follow .studio-eyebrow{display:none}
.journey-follow .module-heading h1{font-size:26px;line-height:1.15;margin:3px 0 4px}
.journey-follow .module-heading p{font-size:12px;line-height:1.4;margin:0}
.journey-reference{font-size:10px;margin:5px 0 0;line-height:1.4}
.travel-status{margin:5px 0 0;min-height:18px;line-height:18px;font-size:11px}
.journey-follow .travel-scene{margin:0 -40px;height:245px}
.announcement-space{height:30px;min-height:30px;margin:0}
.announcement-card{padding:4px 10px;gap:7px;min-height:28px;max-width:690px;font-size:10px;border:0;background:transparent}
.announcement-card p{font-size:11px;line-height:1.3;margin:0}
.announcement-card>.button{min-height:26px;padding:4px 8px;font-size:10px}
.ride-tools{position:absolute;right:-12px;top:102px;display:flex;flex-direction:column;gap:8px;z-index:7}
.ride-tool{position:relative;display:grid;place-items:center;width:38px;height:38px;border:1px solid #d7e0d5;border-radius:50%;background:#f7f6ef;color:#718778;box-shadow:0 2px 9px #41533c07}
.ride-tool[aria-pressed=true]{background:#dbe9df;border-color:#87aa96;color:#2d624c}
.ride-tool:hover{background:#e7eee4}.tool-auto{font-size:8px;position:absolute;bottom:1px;right:5px;background:var(--paper);border-radius:3px;padding:0 2px}
.cab-dashboard{display:grid;grid-template-columns:minmax(300px,440px) minmax(180px,260px);align-items:center;justify-content:center;gap:25px;margin:0 auto 4px}
.driving-controls{display:grid;grid-template-columns:1fr 170px;grid-template-rows:105px auto;max-width:none;width:100%;margin:0;padding:8px 14px;background:#edeedf;border-radius:16px;border:1px solid #d9dfd0;position:relative;min-height:144px}
.cab-instruments{display:flex;flex-direction:column;justify-content:space-between;padding:3px 0 4px;min-width:140px}
.drive-modes{align-self:flex-start;gap:2px;padding:2px;background:#dce2d4}
.drive-modes button{display:flex;align-items:center;gap:5px;font-size:11px;padding:7px 9px;min-height:32px;white-space:nowrap}
.cab-speed{display:flex;align-items:center;gap:18px;padding-left:7px}
.drive-current{margin:0;text-align:left}.drive-current strong{font-size:28px;line-height:1.2}.drive-current small{font-size:10px}.drive-current em{font-size:10px}
.speed-limit b{font-size:17px;min-width:40px;height:40px;background:#faf8ef}
.lever-instrument{position:relative;height:105px;display:flex;align-items:flex-end;justify-content:center}
.cab-lever{width:158px;height:112px;flex:none;touch-action:none;cursor:grab;outline-offset:0;border-radius:12px;position:relative;margin-bottom:0}
.cab-lever:active{cursor:grabbing}.cab-lever:focus-visible{outline:2px solid #7c9b7d}.cab-lever svg{display:block;width:100%;height:100%;overflow:visible}.cab-lever text{font:9px sans-serif;fill:#788476}.lever-arm{transform-origin:90px 106px}.cab-lever[aria-disabled=true]{cursor:default;opacity:.62}
.lever-target{position:absolute;left:70px;top:0;white-space:nowrap;text-align:center;pointer-events:none}.lever-target small{font-size:8px;display:block;color:var(--muted)}.lever-target output{font-size:12px;font-weight:700}
.driving-controls p{grid-column:1/-1;margin:5px 0 0;min-height:16px;font-size:10px;line-height:1.4}.drive-takeover{position:absolute;top:100%;right:0;margin:1px 5px 0;font-size:9px;z-index:1}
.travel-readouts{flex-direction:column;gap:10px;margin:0;max-width:none;text-align:left}
.travel-readouts>div{border:0;padding:0}.travel-readouts small{font-size:10px;margin:0 0 3px}.travel-readouts strong{font-size:21px;line-height:1.2}
.rail-app .travel-route{max-width:740px;padding:8px 0 0;margin:0 auto;background:transparent}
.travel-route .route-card-heading{margin-bottom:8px}.travel-route .route-card-heading h2{font-size:11px}.travel-route ol{flex-wrap:nowrap;gap:0}.travel-route li{font-size:10px;min-width:0}.travel-route li>i{margin-bottom:5px}.trip-progress{margin-top:7px}
.arrival-actions{margin-top:9px;display:flex;align-items:center;justify-content:center;gap:12px;min-height:44px}.arrival-actions>.button{font-size:12px;min-height:36px;padding:8px 16px;white-space:nowrap}.arrival-actions>p{font-size:10px;max-width:230px;text-align:left;line-height:1.4;margin:0}
.ride-modes{display:flex;gap:8px;margin:12px 0}.ride-modes button{display:flex;align-items:center;justify-content:center;gap:9px;padding:10px 14px;min-height:42px;flex:1}.ride-modes strong{font-size:12px}.ride-modes span{font-size:10px;color:var(--muted)}
/* Sidebar fits the new destinations without hiding admin on typical laptops. */
.rail-side-nav{gap:3px}.rail-side-nav>button{min-height:36px;padding:9px 13px}.secondary-nav{margin-top:14px}.secondary-nav>button{font-size:11px;min-height:32px;padding:7px 13px}.side-bottom{padding-top:15px}.side-wallet{padding-bottom:10px}.side-settings{padding:8px 0}.side-about{padding:6px 0}.rail-sidebar .side-brand{margin-bottom:10px}
/* Illustrated journal; all content is real text, never embedded in the illustration. */
.illustrated-book{width:min(900px,calc(100vw - 24px));max-height:94dvh;background:transparent;border:0;box-shadow:none;overflow:visible;color:#4d4635}
.illustrated-book .modal-heading{border:0;padding:0 10px 7px;color:#f7f4e9}.illustrated-book .modal-heading h2{font-size:15px}.illustrated-book .modal-heading .icon-button{background:#f7f2e8;color:#554737;border-radius:50%}
.illustrated-book .modal-body{max-height:calc(94dvh - 50px);padding:0;overflow-y:auto;border-radius:14px;background:#674027;scrollbar-width:thin}
.journal-owner{padding:7px;text-align:center;color:#f1e1bd;font:12px var(--sans)}
.journal-spread{position:relative;display:grid;grid-template-columns:1fr 1fr;min-height:440px;background:url('assets/travel-book-open.webp') center/100% 100% no-repeat;padding:8% 5% 8%;gap:6%;perspective:1400px}
.journal-leaf{position:relative;min-width:0;padding:0 6px 17px}.journal-leaf h3{font:600 22px var(--serif);text-align:center;color:#64543a;margin:0 0 18px}.page-number{position:absolute;bottom:0;left:50%;font-size:10px;color:#9b8b6f}
.journal-cover{position:absolute;inset:5% 2% 6% 50%;width:48%;height:89%;object-fit:fill;transform-origin:0 50%;animation:open-journal .8s ease-out forwards;pointer-events:none;z-index:3}
@keyframes open-journal{0%,10%{transform:rotateY(0);opacity:1}85%{opacity:1}100%{transform:rotateY(-170deg);opacity:0}}
.book-title-page{text-align:center;padding-top:15px}.book-title-page>span{color:#93805c}.book-title-page>small{display:block;font-size:9px;letter-spacing:3px;margin:17px 0}.book-title-page h3{font-size:30px;line-height:1.2}.book-title-page>p{font-size:12px;color:#8b7656}
.illustrated-book .book-totals{grid-template-columns:1fr 1fr;gap:18px;margin:24px 0}.illustrated-book .book-totals strong{font-size:23px;color:#586e59}.illustrated-book .book-totals small{font-size:10px}.illustrated-book .book-since{font-size:10px;line-height:1.5;margin:18px 0 0}
.illustrated-book .station-stamps{gap:17px 12px}.illustrated-book .station-stamp{border:2px solid #63816e;outline:1px solid #63816e;outline-offset:-5px;border-radius:50% 45% 47% 43%;background:transparent;padding:15px 8px;transform:rotate(-3deg);min-height:132px;display:flex;align-items:center;justify-content:center;flex-direction:column}
.illustrated-book .station-stamp:nth-child(even){transform:rotate(3deg);border-color:#927153;outline-color:#927153}.illustrated-book .station-stamp h4{font-size:13px;margin:5px 0}.illustrated-book .station-stamp time{font-size:8px;letter-spacing:.4px}.illustrated-book .station-stamp small{font-size:9px;margin-top:5px}.book-empty{border:0;background:transparent;padding:38px 10px}.book-empty p{font-size:12px;line-height:1.7}.book-empty h3{margin-top:15px}
.book-route-list{list-style:none;padding:0;margin:0}.book-route-list li{padding:12px 0;border-bottom:1px solid #8f79592e;font-size:12px;line-height:1.5}.book-route-list small{display:block;color:#8e7958;font-size:10px}
.journal-pagination{display:flex;align-items:center;justify-content:center;gap:24px;padding:3px 12px 9px;color:#f1e5ca;font-size:11px}.journal-pagination button{color:#f1e5ca}.journal-pagination button:first-child svg{transform:rotate(180deg)}.journal-pagination button:disabled{opacity:.25}
/* Local social pages and optional nonmodal chat. */
.social-page{max-width:740px;margin:auto}.profile-card,.friend-card{display:flex;gap:22px;align-items:center;padding:26px;background:#f6f4e9;border:1px solid #dce3d5;border-radius:18px}.profile-emblem{display:grid;place-items:center;background:#dee9df;color:#537861;border:1px solid #c4d4c5;width:78px;height:78px;border-radius:50%;flex-shrink:0}.profile-card h2{font-size:25px;margin:0 0 7px}.profile-card p{font-size:13px;line-height:1.7;margin:10px 0}.profile-card .favorite-train{display:flex;align-items:center;gap:8px;color:#786e54;margin-bottom:0}.profile-card [data-presence]{font-size:11px;color:#739078}.presence-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#76a07b;margin-right:6px}.test-badge{font:700 8px var(--sans);letter-spacing:.7px;padding:3px 5px;background:#eee2bd;color:#8a6f39;border-radius:4px;vertical-align:middle}.profile-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;text-align:center;padding:28px}.profile-stats strong{display:block;font-size:28px;color:#48705b}.profile-stats span{font-size:12px;color:var(--muted)}.profile-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.social-note{font-size:11px;line-height:1.7;color:var(--muted);text-align:center;margin-top:22px}.social-note .text-button{font-size:11px;color:#547e67;text-decoration:underline}.social-empty{padding:50px 30px;text-align:center;color:#718772;border:1px dashed #cddacb;border-radius:18px}.social-empty h2{font-size:22px;margin:20px 0}.social-empty p{font-size:13px;line-height:1.7}.friend-card{gap:16px;flex-wrap:wrap}.friend-card .profile-emblem{width:55px;height:55px}.friend-name{font-size:20px;font-weight:650;color:#3f634e}.friend-card p{font-size:11px;color:var(--muted);margin-top:8px}.friend-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-left:auto}.friend-actions>span{font-size:11px}.friend-actions .text-button{font-size:10px;color:#9b7964}
#social-profile-form textarea,#social-profile-form select{display:block;width:100%;font:inherit;border:1px solid #ccd6c7;background:#fffdf7;color:var(--ink);border-radius:8px;padding:10px;margin:7px 0 17px}#social-profile-form input{margin-bottom:17px}.admin-social{border-top:1px solid var(--line);margin-top:18px;padding-top:18px}.admin-social p{font-size:12px;margin:9px 0}.admin-social button{margin:3px}
.guest-welcome{text-align:center}.guest-welcome img{width:230px;margin:0 auto 22px}.guest-welcome h3{font-size:24px;line-height:1.3}.guest-welcome p{font-size:13px;line-height:1.8;margin:15px 0 26px}.guest-welcome small{display:block;font-size:11px;line-height:1.7;color:var(--muted);margin:16px 0 5px}
.chat-panel{position:fixed;right:16px;top:14px;bottom:auto;width:290px;height:340px;max-height:65dvh;z-index:30;background:#faf8ef;border:1px solid #cbd9ca;border-radius:16px;box-shadow:0 10px 35px #30443226;display:flex;flex-direction:column;overflow:hidden}.chat-panel header{display:flex;align-items:center;justify-content:space-between;padding:12px 15px;background:#e6eddf}.chat-panel header strong{font-size:14px}.chat-panel header small[data-presence]{display:block;font-size:10px;color:#69836b;margin-top:3px}.chat-messages{padding:12px;flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain}.chat-bubble{max-width:92%;background:#e8eedd;border-radius:11px 11px 11px 2px;padding:9px 11px;margin-bottom:9px}.chat-bubble.mine{margin-left:auto;background:#e2eaf0;border-radius:11px 11px 2px 11px}.chat-bubble strong{font-size:9px;color:#788975}.chat-bubble p{font-size:12px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;margin:4px 0}.chat-bubble time{display:block;font-size:8px;text-align:right;color:#8b9986}.chat-empty{font-size:12px;line-height:1.7;color:var(--muted)}.chat-panel form{display:flex;padding:8px;gap:4px;border-top:1px solid #e0e5d8}.chat-panel input{margin:0;width:100%;min-width:0;padding:9px;border:1px solid #dce3d6;border-radius:9px;background:#fffdf7;font-size:12px}.chat-panel footer{font-size:8px;color:#99a18c;text-align:center;padding:0 8px 8px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:1000px){.journey-follow{padding:0 20px}.journey-follow .travel-scene{margin:0 -20px}.ride-tools{right:-15px}.cab-dashboard{gap:15px;grid-template-columns:minmax(300px,400px) minmax(120px,180px)}.travel-readouts strong{font-size:17px}.rail-sidebar .side-brand{width:210px}.rail-side-nav>button{font-size:12px}}
@media(max-width:650px){.in-journey .rail-workspace main{padding-top:61px}.journey-follow{padding:0}.journey-follow .module-heading h1{font-size:22px}.journey-follow .module-heading p{font-size:11px}.journey-follow .travel-scene{height:210px;margin:0 -18px}.ride-tools{top:103px;right:-10px;gap:5px}.ride-tool{width:34px;height:34px}.cab-dashboard{display:flex;flex-direction:column;gap:9px}.driving-controls{grid-template-columns:1fr 155px;padding:7px 10px;min-height:140px}.travel-readouts{flex-direction:row;width:100%;gap:10px;justify-content:space-between}.travel-readouts strong{font-size:16px}.travel-readouts small{font-size:9px}.arrival-actions{flex-direction:column;gap:4px;margin-top:10px}.arrival-actions>p{max-width:none;text-align:center;font-size:9px}.travel-route li{font-size:9px}.journey-reference{font-size:9px}.announcement-card p{font-size:10px}.illustrated-book{width:calc(100vw - 12px)}.journal-spread{display:block;padding:35px 25px;background-size:200% 100%;background-position:left center}.journal-leaf{min-height:260px;padding:10px 5px 30px}.journal-leaf+ .journal-leaf{margin-top:15px;border-top:1px solid #c3ae8b;padding-top:25px}.journal-cover{left:3%;width:94%;object-fit:fill;top:0;height:440px}.journal-leaf h3{font-size:22px}.book-title-page h3{font-size:28px}.illustrated-book .book-totals{margin:20px 0}.illustrated-book .station-stamp h4{font-size:12px}.profile-card{padding:18px;gap:14px}.profile-emblem{width:54px;height:54px}.profile-card h2{font-size:22px}.profile-card p{font-size:12px}.profile-stats{padding:25px 5px;gap:12px}.friend-actions{margin-left:0;width:100%}.chat-panel{top:54px;right:8px;width:min(290px,calc(100vw - 16px));height:285px;max-height:40dvh}.rail-sidebar .side-brand{width:220px}.ride-modes button{gap:6px;padding:9px}.ride-modes strong{font-size:11px}}
@media(prefers-reduced-motion:reduce){.journal-cover{display:none}.lever-arm{transition:none}}
.reduce-motion .journal-cover{display:none}
