@import url("./src/quick-duties.css");
@import url("./src/priory-puzzles.css");
@import url("./src/hilltop-puzzles.css");
@font-face{font-family:Abbey;src:local('Baskerville');font-display:swap}
.touch-pad,.touch-pad *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:none}
:root{--bg:#171d1c;--panel:#202725;--line:#3b4238;--gold:#d2b47b;--text:#ece5d4;--muted:#b3b5a5;--red:#c68977;--green:#a4bc94;--serif:Abbey,Georgia,serif;color-scheme:dark;font-family:Arial,Helvetica,sans-serif;color:var(--text);background:var(--bg);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.38}button,a{touch-action:manipulation}button{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,canvas:focus-visible{outline:2px solid var(--gold);outline-offset:4px}::selection{background:#d2b47b;color:#171d1c}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-thumb{background:#646957;border-radius:8px}svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}button{transition:background .15s,color .15s,transform .15s}@media(hover:hover){button:hover:not(:disabled){filter:brightness(1.14)}}button:active:not(:disabled){transform:translateY(1px)}[hidden]{display:none!important}
#app{max-width:1900px;margin:auto;padding:0 34px}.masthead{height:104px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:24px}.brand{display:flex;align-items:center;gap:14px;color:var(--gold);text-decoration:none;font-family:var(--serif);font-size:16px;letter-spacing:2px;line-height:1.3}.brand b{font-weight:400;font-size:12px;letter-spacing:3px}.brand svg{width:35px;height:46px}.abbey-title{font-size:10px;letter-spacing:3px;color:var(--muted)}.header-actions{display:flex;gap:17px;align-items:center}.quiet-button,.icon-button{background:none;border:0;color:var(--muted)}.quiet-button{font-size:12px}.icon-button{display:grid;place-items:center;width:32px;height:36px}.game-layout{display:grid;grid-template-columns:215px minmax(0,1fr) 204px;gap:26px;padding:30px 0 25px;min-height:calc(100dvh - 148px)}.left-panel{padding:10px 0 0;display:flex;flex-direction:column}.chapter{display:flex;align-items:center;gap:10px;color:var(--gold);font-family:var(--serif);font-style:italic;font-size:18px}.live-dot{width:4px;height:4px;border-radius:50%;background:var(--gold)}h1{font:normal 33px/1.05 var(--serif);letter-spacing:-.02em;margin:19px 0 15px;text-wrap:balance}.intro-copy{font:italic 15px/1.6 var(--serif);color:var(--muted);margin:0}.rule{height:1px;background:var(--line);margin:27px 0}.role-line{display:flex;gap:12px;align-items:center}.role-symbol{color:var(--gold);display:grid;place-items:center;border:1px solid #756444;width:39px;height:44px}.role-symbol svg{height:25px}.small-label{font-size:8px;letter-spacing:2px;color:var(--muted);display:block;margin-bottom:7px}.role-line strong{font:normal 21px var(--serif);color:var(--gold)}.subtle{font-size:12px;line-height:1.7;color:var(--muted);margin:16px 0 30px}.duty-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 12px}h2{font:normal 18px var(--serif);margin:0}.duty-heading>span{font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums}.duty-item{border:0;border-bottom:1px solid #353d34;background:none;display:flex;align-items:center;text-align:left;gap:11px;padding:14px 0;width:100%}.duty-item>svg{color:var(--gold);width:19px;flex-shrink:0}.duty-item strong{font-weight:400;font-size:11px;display:block;line-height:1.4}.duty-item small{color:var(--muted);font-size:9px;display:block;margin-top:5px}.duty-item.done{opacity:.55}.duty-item.done strong{text-decoration:line-through}.left-bottom{display:flex;gap:11px;margin-top:auto;padding-top:35px;color:#969e8e}.left-bottom>svg{width:20px;margin-top:9px}.left-bottom p{font:italic 13px/1.7 var(--serif);margin:5px 0 0}.left-bottom span{font:7px Arial;letter-spacing:1.6px}.game-column{display:flex;flex-direction:column;min-width:0}.statusbar{height:38px;display:flex;align-items:center;gap:15px;margin-bottom:16px}.faith-title{display:flex;align-items:center;gap:14px;white-space:nowrap;font-size:8px;letter-spacing:1.3px}.faith-title strong{font-size:12px;color:var(--gold);letter-spacing:0;font-weight:400;min-width:31px}.faith-track{height:5px;background:#394133;flex:1;min-width:20px}.faith-track>div{height:100%;width:100%;background:#b4b28b;transition:width .3s}.brother-count{font-size:9px;color:var(--muted);white-space:nowrap}.world-frame{border:1px solid #626454;position:relative;background:#1b2926;flex:1;min-height:450px;overflow:hidden;box-shadow:0 16px 45px #00000025}#world{width:100%;height:100%;position:absolute;inset:0;display:block;touch-action:none}.map-heading{position:absolute;top:20px;left:22px;display:flex;align-items:center;gap:9px;pointer-events:none;color:#c6c8af;font-size:9px;letter-spacing:2px}.map-mark{width:6px;height:6px;border:1px solid #b2bda0;transform:rotate(45deg)}.map-corner{position:absolute;right:22px;top:18px;color:#a2b09b;font:13px var(--serif);display:flex;align-items:center;gap:9px}.map-corner span{font-size:24px}.world-hint{position:absolute;bottom:20px;left:20px;right:95px;color:#c2c6af;font:italic 12px var(--serif);pointer-events:none}.zoom-control{position:absolute;bottom:14px;right:13px;display:flex;align-items:center;gap:6px;background:#1b2524cc;font-size:9px;color:#c0c7ae}.zoom-control button{background:none;border:0;width:24px;height:28px;font-size:17px}.actionbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-top:20px}.movement-hint{display:flex;gap:12px;align-items:center;color:var(--muted);font-size:9px;line-height:1.6}.keys{display:flex;flex-direction:column;align-items:center;gap:3px}.keys>span{display:flex;gap:3px}kbd{display:inline-grid;place-items:center;border:1px solid #646959;border-radius:3px;min-width:17px;height:17px;font:9px Arial;color:#c1c5b1}.actions{display:flex;gap:9px}.action-button{height:47px;background:#2d362d;border:1px solid #5c6650;display:flex;align-items:center;justify-content:center;gap:10px;padding:0 14px;font-size:10px;white-space:nowrap}.action-button svg{width:19px;height:19px;color:var(--gold)}.action-button>span:first-child{display:flex}.action-button kbd{margin-left:8px}.report-button{background:#422f28;border-color:#7c5745}.report-button svg{color:#d0a387}.council-button{background:#514633;border-color:#89744d}.right-panel{padding-top:10px;display:flex;flex-direction:column}.roster-heading{margin-bottom:22px}.roster-heading h2{font-size:21px}.roster-heading>span{display:block;font-size:10px;color:var(--muted);margin-top:9px}.brother{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid #343d33}.monk-badge{height:38px;width:35px;stroke:none;flex-shrink:0}.brother-name{font-size:11px;line-height:1.6}.brother-name small{display:block;font-size:9px;color:var(--muted)}.brother>i{width:5px;height:5px;background:#9dab81;border-radius:50%;margin-left:auto}.brother.inactive{opacity:.4}.brother.inactive i{background:#c7856e}.chronicle{margin-top:27px}.chronicle .duty-heading h2{font-size:17px}.ink-dot{display:block;width:4px;height:4px;border-radius:50%;background:var(--gold)}.event{font-size:10px;line-height:1.6;color:var(--muted);padding:10px 0;border-bottom:1px solid #343d33}.event time{font-size:8px;color:#9ca992;display:block;margin-bottom:5px}.event.danger{color:#d3a390}.event.good{color:#bed0a6}.legend{margin-top:auto;padding-top:28px;display:flex;gap:16px;font-size:8px;color:#bdc1ac}.legend span{display:flex;align-items:center;gap:6px}.legend i{width:5px;height:5px;border-radius:50%;display:inline-block}.task-dot{background:#d6b675}.you-dot{background:#c4cbb1}footer{height:42px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px;color:#a8ae9c;font-size:7px;letter-spacing:1.4px}footer>span:nth-child(2){font:italic 12px var(--serif);letter-spacing:0}
.overlay{position:fixed;inset:0;background:#0c1411dd;z-index:10;display:flex;align-items:center;justify-content:center;padding:25px;overflow:auto}.overlay:empty{display:none}.dialog{width:min(610px,100%);background:#222a26;padding:38px 43px;border:1px solid #786d50;box-shadow:0 20px 85px #00000060;max-height:92dvh;overflow:auto;position:relative}.dialog h2{font-size:35px;color:var(--text);line-height:1.1;text-wrap:balance}.dialog .lead{font:italic 17px/1.6 var(--serif);color:#c2c6af;margin:14px 0 24px}.dialog p{font-size:13px;line-height:1.7;color:#bfc5af}.dialog .crest{display:block;color:var(--gold);width:44px;height:48px;margin-bottom:22px}.dialog .crest svg{width:44px;height:48px;stroke-width:1}.dialog .close{position:absolute;right:16px;top:12px;background:none;border:0;font-size:26px;color:var(--muted);width:35px;height:35px}.primary{border:1px solid #d6bd85;background:#cdb07a;color:#1d281f;padding:14px 20px;font-size:12px;font-weight:bold;min-height:45px}.secondary{border:1px solid #6c745e;background:#2c352b;color:#dddcc5;padding:13px 20px;font-size:12px;min-height:45px}.wide{width:100%}.form-row{display:flex;gap:16px;margin-bottom:17px}.form-row>label{flex:1;min-width:0}label{display:block;font-size:11px;color:#c7ccb5}input,select{width:100%;display:block;margin-top:8px;padding:12px;border:1px solid #64705a;background:#19231e;color:var(--text);border-radius:0;caret-color:var(--gold);font-size:13px;min-height:44px}input::placeholder{color:#a9b29d}.dialog-actions{display:flex;gap:12px;margin-top:24px}.dialog-actions>*{flex:1}.help-steps{padding-left:22px;margin:24px 0}.help-steps li{padding:8px 0 8px 5px;color:#c5cab5;font-size:13px;line-height:1.7}.help-steps strong{color:#ecdfbe}.form-divider{border:0;border-top:1px solid #47503d;margin:24px 0}.small-note{font-size:10px!important;color:#abb39e!important;line-height:1.7!important}.error{color:#e1a28c!important;min-height:18px;font-size:12px;margin:12px 0 0}.entry-title{font-size:46px!important;max-width:400px}.entry-subtitle{font-family:var(--serif);font-style:italic;font-size:16px;color:#c4c8b1}.entry-tabs{display:flex;gap:24px;margin:25px 0 22px;border-bottom:1px solid #48503e}.entry-tabs button{padding:0 0 13px;border:0;border-bottom:2px solid transparent;background:none;color:#b1bba4;font-size:12px}.entry-tabs button.active{color:var(--gold);border-bottom-color:var(--gold)}.room-code{font:36px var(--serif);letter-spacing:7px;color:var(--gold);margin:20px 0 5px}.lobby-list{display:grid;grid-template-columns:1fr 1fr;gap:0 20px;margin:15px 0}.lobby-person{padding:10px 0;border-bottom:1px solid #46513d;font-size:12px;display:flex;align-items:center;gap:8px}.lobby-person small{font-size:9px;color:var(--muted);margin-left:auto}.lobby-person .monk-badge{height:30px}.lobby-share{display:flex;gap:8px}.lobby-share button{flex:1}.meeting-dialog{width:min(900px,100%)}.meeting-layout{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin-top:25px}.vote-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.vote-card{display:flex;align-items:center;gap:7px;padding:10px;background:#2b342a;border:1px solid #556148;text-align:left;font-size:11px}.vote-card.selected{background:#554a32;border-color:var(--gold)}.vote-card .monk-badge{height:33px;width:28px}.vote-card small{display:block;font-size:8px;color:#bdc7ac;margin-top:4px}.testimony{font-size:12px;color:#c4cbb5;line-height:1.6;margin:0 0 13px}.testimony strong{display:block;color:var(--gold);font-size:11px;margin-bottom:3px}.chat-log{height:210px;overflow:auto;border-bottom:1px solid #586348;padding:0 4px 8px 0}.chat-message{margin-bottom:12px;font-size:12px;color:#ccd1bb;line-height:1.5;overflow-wrap:anywhere}.chat-message strong{color:var(--gold);font-size:10px;display:block;margin-bottom:3px}.chat-form{display:flex;align-items:end;gap:8px;margin-top:9px}.chat-form input{margin:0}.chat-form button{padding:10px}.meeting-clock{color:var(--gold);font-size:12px;float:right}.task-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:30px 0}.task-tile{height:105px;border:1px solid #727554;background:#303a2c;color:#cdc399;font:28px var(--serif);display:grid;place-items:center}.task-tile svg{height:40px;width:40px}.task-tile.lit{background:#6a5938;border-color:#dfbc78;color:#ffe0a0}.task-tile.complete{background:#536345;border-color:#a6b989;color:#e3ebca}.sequence-hint{display:flex;justify-content:center;gap:24px;color:#dac08b;padding:18px;background:#19221d}.sequence-hint svg{width:34px;height:34px}.toast{position:absolute;bottom:70px;left:50%;transform:translateX(-50%);width:max-content;max-width:90%;padding:13px 18px;background:#222d23;border:1px solid #aaa478;color:#ede1c1;text-align:center;font-size:12px;z-index:3;box-shadow:0 8px 25px #0005}.alert-banner{position:absolute;top:53px;left:50%;transform:translateX(-50%);background:#613b2bea;border:1px solid #ac7860;padding:12px 18px;color:#f4d3b8;font-size:11px;width:max-content;max-width:90%;text-align:center}.reveal-dialog{text-align:center;width:min(660px,100%)}.reveal-stage{height:235px;position:relative;overflow:hidden;margin:20px -43px 24px;background:#18201c}.stake{position:absolute;bottom:37px;left:calc(50% - 5px);height:165px;width:10px;background:#756047;box-shadow:4px 5px 0 #151c16}.stake:after{content:'';position:absolute;left:-37px;top:49px;width:84px;height:8px;background:#756047}.condemned{position:absolute;left:calc(50% - 42px);bottom:58px;width:84px;height:110px;filter:brightness(.6)}.condemned .monk-badge{height:110px;width:84px}.pyre{position:absolute;bottom:29px;width:120px;height:15px;background:#68523a;left:calc(50% - 60px);transform:rotate(-8deg)}.pyre:after{content:'';position:absolute;inset:0;background:#84663f;transform:rotate(17deg)}.flames{position:absolute;bottom:40px;left:calc(50% - 64px);width:128px;height:100px;display:flex;align-items:end;justify-content:center;gap:0}.flames i{display:block;background:#d78945;width:25px;height:80px;border-radius:70% 10% 50% 50%;transform-origin:bottom;animation:fire .9s ease-in-out infinite alternate;opacity:.9}.flames i:nth-child(2){height:110px;background:#c36838;animation-delay:-.4s}.flames i:nth-child(3){height:95px;background:#e3ac5b;animation-delay:-.7s}.flames i:nth-child(4){height:65px;background:#e8bb72;animation-delay:-.2s}.flames i:nth-child(5){height:85px;background:#c4773e;animation-delay:-.5s}@keyframes fire{from{transform:scaleY(.7) skewX(-5deg)}to{transform:scaleY(1) skewX(8deg)}}.embers{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 90%,#d8803820,transparent 60%)}.verdict{font:25px var(--serif);color:var(--gold);margin:16px 0}.ballot-list{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:18px;font-size:10px;color:var(--muted)}.ballot-list span{background:#30392c;padding:6px 9px}.touch-pad{display:none}
@media(min-width:1600px){.game-layout{grid-template-columns:250px minmax(0,1fr) 230px;gap:34px}h1{font-size:39px}.world-frame{min-height:670px}.duty-item strong{font-size:12px}.brother{padding:14px 0}}
@media(max-width:1200px){#app{padding:0 20px}.game-layout{grid-template-columns:180px minmax(0,1fr);gap:20px}.right-panel{display:none}h1{font-size:29px}.abbey-title{display:none}.world-frame{min-height:490px}.action-button{padding:0 10px;gap:7px}.movement-hint{font-size:8px}.action-button kbd{margin-left:2px}}
@media(max-width:800px){#app{padding:0 12px}.masthead{height:78px}.brand{font-size:13px;gap:9px}.brand b{font-size:10px}.brand svg{width:26px;height:36px}.header-actions{gap:7px}.game-layout{display:flex;flex-direction:column;padding-top:15px;min-height:0}.left-panel{display:none}.statusbar{margin-bottom:8px;height:30px}.world-frame{height:calc(100dvh - 245px);min-height:410px;flex:none}.game-column{width:100%}.actionbar{padding-top:12px;justify-content:center}.movement-hint{display:none}.actions{width:100%;gap:7px}.action-button{flex:1;font-size:10px;padding:0 9px}.action-button kbd{display:none}.faith-title{font-size:7px;gap:9px}.brother-count{font-size:8px}.world-hint{bottom:112px;right:20px;font-size:11px;text-align:center}.touch-pad{display:grid;position:absolute;left:18px;bottom:17px;grid-template-columns:repeat(3,32px);grid-template-rows:repeat(2,32px);gap:4px}.touch-pad button{border:1px solid #7c8c6b;background:#243427cf;color:#d2d9c1;font-size:18px;touch-action:none}.touch-pad button:first-child{grid-column:2}.touch-pad button:nth-child(2){grid-column:1}.zoom-control{bottom:20px}footer>span:first-child{display:none}footer{font-size:6px;letter-spacing:.7px}.dialog{padding:29px 24px}.overlay{padding:14px}.dialog h2{font-size:30px}.entry-title{font-size:38px!important}.meeting-layout{grid-template-columns:1fr}.chat-log{height:160px}.meeting-dialog{max-height:95dvh}.form-row{gap:10px}.dialog-actions{gap:9px}.task-tile{height:75px}.reveal-stage{margin-left:-24px;margin-right:-24px}.lobby-list{gap:0 12px}.lobby-person{font-size:11px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* Keep game actions inside the viewport; supporting information scrolls independently. */
@media(min-width:801px){.game-layout{height:calc(100dvh - 148px);min-height:0}.left-panel,.right-panel{min-height:0;overflow-y:auto;scrollbar-width:thin;padding-right:4px}.game-column{min-height:0}.world-frame{min-height:0}.left-bottom{margin-top:20px;padding-top:15px}.left-panel .subtle{margin-bottom:22px}.left-panel .rule{margin:22px 0}}
#mobile-duties{display:none}#map-toggle{width:auto;min-width:40px;padding:0 8px;font-size:10px;border-right:1px solid #52604b}.dialog:focus{outline:none}
@media(max-width:800px){#mobile-duties{display:block}.header-actions{gap:2px}.header-actions .quiet-button{font-size:10px;padding:7px}.masthead{gap:8px}.header-actions .icon-button{width:27px}.zoom-control{bottom:28px}.world-frame{height:calc(100dvh - 230px);min-height:360px}}
#sound-button{width:53px;gap:4px;display:flex;justify-content:center;color:var(--gold)}
#sound-button span{font-size:9px}#sound-button[aria-pressed=false]{color:var(--muted)}
#map-toggle[aria-pressed=true]{color:var(--gold);background:#344634}
.world-hint{background:#0c1613b8;padding:5px 7px;width:fit-content;max-width:calc(100% - 170px)}
@media(max-width:800px){.header-actions #sound-button{width:42px}.world-hint{width:auto;max-width:none;left:14px;right:14px;bottom:112px}.header-actions #sound-button span{font-size:8px}}
/* Clear routes and action intent preserve the close, concealed view. */
.route-status{position:absolute;top:92px;left:18px;right:18px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;background:#18251fed;border:1px solid #8d825e;font-size:12px;color:#f0d69d;z-index:2}
.route-status button,.alert-banner button{background:none;border:1px solid currentColor;color:inherit;font-size:11px;padding:7px 10px;white-space:nowrap}
.alert-banner{top:46px;display:flex;align-items:center;justify-content:space-between;gap:12px;width:calc(100% - 36px);max-width:none;padding:9px 12px;font-size:11px;z-index:2}
.action-button{max-width:260px}.action-button #interact-label{white-space:normal;line-height:1.35}.roster-heading>span{line-height:1.6}.brother-name small{line-height:1.5}
.discovery-context{display:flex;gap:25px;flex-wrap:wrap;border-block:1px solid #59614d;padding:14px 0;margin:20px 0}.discovery-context div{flex:1;min-width:100px}.discovery-context dt{font-size:10px;color:#b9c4aa;margin-bottom:6px}.discovery-context dd{margin:0;font-size:14px;color:#eadfc6;font-variant-numeric:tabular-nums}
.meeting-layout h3{font:20px var(--serif);margin:0 0 15px}.abstain{margin-top:10px}.testimony-list{padding-right:10px}.council-notebook{margin-top:20px;padding-top:15px;border-top:1px solid #586348}.council-notebook summary{font-size:12px;cursor:pointer;color:var(--gold)}.council-notebook p{font-size:11px;line-height:1.5}
.council-questions{display:grid;grid-template-columns:1fr;gap:10px;padding-top:18px;border-top:1px solid #586348;margin-top:18px}.council-questions select{margin-top:5px}.council-questions .small-note{margin:0}.council-questions #discussion-status{margin:0;font-size:11px;color:#dfc998;min-height:0}.practice-discussion .testimony{padding:10px 0;border-top:1px solid #4c5645}.practice-discussion{overflow:visible}
.duty-dialog{width:min(660px,100%)}.duty-dialog .lead{margin:15px 0 7px}.duty-instruction{margin:0 0 22px}.duty-workspace{min-height:260px}.duty-feedback{min-height:40px!important;margin:15px 0!important;font-size:12px!important;color:#e5d7b5!important}.duty-feedback.error{color:#f1b6a3!important}.task-alarm{margin:20px 0;padding:14px;background:#51362b;border:1px solid #b68c65}.task-alarm p{margin:0 0 10px;color:#ffe1b6;font-size:12px}.task-alarm button{width:100%;color:#ffdfb2}
.candle-rack{height:220px;display:flex;align-items:flex-end;justify-content:space-around;padding:20px 8px 12px;background:#18221e;border-bottom:9px solid #756044}
.votive{position:relative;display:flex;align-items:center;flex-direction:column;justify-content:flex-end;width:21%;height:190px;background:none;border:0;padding:0;color:#d9c898}.candle-wax{width:27px;height:var(--candle-height);background:linear-gradient(90deg,#a49468,#e4d5a9 45%,#bbae83);border-radius:5px 5px 0 0}.candle-wick{height:9px;width:3px;background:#302822}.candle-base{height:9px;width:52px;border-radius:50%;background:#a18e5b}.candle-number{font-size:11px;margin-top:10px}.candle-flame{width:11px;height:24px;opacity:0;border-radius:60% 40% 55% 45%;background:#f1ba61}.votive.lit{opacity:1}.votive.lit .candle-flame{opacity:1;animation:fire .9s ease-in-out infinite alternate}.taper-button{display:flex;align-items:center;gap:14px;justify-content:center;width:100%;border:1px solid #9a865c;background:#303628;padding:15px;color:#efdaa8;font-size:12px;margin-top:18px}.taper-button:disabled{opacity:.85}.taper-art{display:block;width:60px;height:5px;background:#e5d3a0;transform:rotate(-12deg);position:relative}.taper-art:after{content:'';position:absolute;right:-8px;top:-4px;width:13px;height:8px;background:#efb756;border-radius:70% 40% 60% 50%}
.book-shelves{display:flex;gap:9px;padding:20px 10px 0;background:#272d25;border-bottom:13px solid #8c7250}.placement-slot{border:1px dashed #8d9275;background:none;color:#dcd1b0;min-width:0;position:relative}.book-shelves .placement-slot{flex:1;height:145px;display:flex;align-items:center;justify-content:end;flex-direction:column;padding:8px 3px;border-bottom:0}.shelf-volume{width:70%;height:98px;background:#596b51;border:1px solid #a1a98a;visibility:hidden;writing-mode:vertical-rl;font:13px var(--serif);padding:10px 6px}.shelf-volume.present{visibility:visible}.shelf-label{font:12px var(--serif);padding:7px 0}.placement-slot.filled{opacity:1;border-style:solid;background:#53604644}.object-tray{display:flex;justify-content:space-around;gap:12px;padding-top:22px}.book-object{width:22%;height:112px;max-width:100px;border:1px solid #b39b70;border-radius:2px 5px 5px 2px;background:#63523e;color:#f1deba;border-left:7px solid #3f392c;padding:12px 7px;font:15px var(--serif);position:relative}.book-object:nth-child(2){background:#4b6463}.book-object:nth-child(3){background:#675345}.book-object:nth-child(4){background:#535c44}.book-object.selected,.table-object.selected{outline:2px solid #e8c886;outline-offset:4px}.book-object:disabled,.table-object:disabled{opacity:.18}
.manuscript-page{padding:14px 28px 20px;background:#ded0aa;color:#443921}.ink-heading{font:20px var(--serif);text-align:center;color:#67452d}.trace-board{height:240px;max-width:290px;margin:15px auto;position:relative}.trace-board svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;stroke-linecap:round;stroke-linejoin:round}.trace-guide{fill:none;stroke:#a39470;stroke-width:6}.trace-ink{fill:none;stroke:#693629;stroke-width:5}.trace-point{position:absolute;transform:translate(-50%,-50%);width:36px;height:36px;border-radius:50%;background:#dbcfad;border:1px solid #8b7552;color:#59432c;font-size:13px}.trace-point.next{background:#684731;color:#fff0cf;border:2px solid #573827}.trace-point.inked{opacity:.45;background:#8d6b48;color:#fff0cf}.trace-point:active{transform:translate(-50%,-50%)}.manuscript-lines{height:23px;border-block:1px solid #aa9a74;margin:0 10px}
.recipe{text-align:center;font:18px var(--serif)!important;color:#e9d9af!important;margin:0 0 10px}.recipe span{display:block;font:12px Arial;margin-top:8px;color:#c2cbaa}.mortar-scene{height:155px;position:relative;display:flex;justify-content:center;align-items:center;padding-bottom:18px}.mortar-bowl{position:relative;width:128px;height:65px;margin-top:35px;background:#a39c81;border-radius:8px 8px 65px 65px;border-top:12px solid #656a57;overflow:hidden}.pestle{position:absolute;width:21px;height:90px;left:calc(50% + 25px);top:5px;background:#aaa58b;border-radius:12px;transform:rotate(35deg);z-index:1}.ground .pestle{transform:rotate(65deg);top:0}.mixed .mortar-bowl{border-top-color:#7f9770}.herb-piece{display:inline-block;width:25px;height:12px;background:#57754c;border-radius:70% 20% 65% 30%;margin:0 6px}.herb-chamomile{background:#d5c68d}.mortar-caption{position:absolute;bottom:0;color:#c5ceb3;font-size:11px}.herb-tray{display:flex;gap:12px;justify-content:center;margin:22px 0}.herb-object{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;flex:1;background:#263a2d;border:1px solid #8b9875;padding:12px;color:#dfdbc0;font-size:12px}.herb-object svg{width:25px;height:25px;stroke:#a8bb86}.mix-actions{display:flex;gap:10px}.mix-actions button{flex:1;font-size:11px;padding:12px 8px}
.table-setting{height:240px;background:#786343;position:relative;border:12px solid #5b4935}.table-setting:before{content:'';position:absolute;inset:15px;background:#b9ad87;border:1px solid #91815d}.table-setting .placement-slot{position:absolute;background:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;color:#51492e;font-size:10px;min-height:65px}.slot-bowl{top:35px;left:34%;width:33%;height:105px}.slot-cup{right:8%;top:23px;width:20%}.slot-bread{left:7%;top:28px;width:23%}.slot-spoon{bottom:12px;left:32%;width:38%;height:54px;min-height:54px!important}.table-setting .duty-prop{opacity:.3}.table-setting .filled .duty-prop{opacity:1}.table-object{background:none;border:1px solid #8e9272;color:#e2d7b7;display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:8px;min-width:0;width:22%;height:85px;padding:12px 4px;font-size:11px}.duty-prop{display:block;flex-shrink:0}.prop-bowl{width:55px;height:32px;border-radius:50%;background:#ac9270;border:6px solid #dec399}.prop-cup{width:28px;height:32px;border-radius:4px 4px 10px 10px;background:#a5845b;border-top:5px solid #624d35;position:relative}.prop-cup:after{content:'';position:absolute;right:-12px;top:3px;border:4px solid #b69b72;width:10px;height:15px;border-radius:50%}.prop-bread{width:48px;height:26px;background:#c49955;border-radius:55% 55% 20% 20%;display:flex;justify-content:center;gap:8px;align-items:center}.prop-bread i{display:block;width:3px;height:13px;background:#e1c48d;transform:rotate(30deg)}.prop-spoon{width:50px;height:8px;background:#8a6541;border-radius:8px;position:relative;margin:12px 0}.prop-spoon i{position:absolute;left:-5px;top:-6px;width:21px;height:20px;border-radius:50%;background:#99764e;border:3px solid #b28b60}
@media(max-width:800px){.route-status{top:126px;left:10px;right:10px;font-size:11px;gap:6px;padding:7px 9px}.alert-banner{top:45px;width:calc(100% - 20px);gap:8px;align-items:stretch;font-size:10px}.alert-banner span{line-height:1.5}.alert-banner button{white-space:normal;min-width:94px}.route-status button{font-size:10px;padding:7px}.discovery-context{gap:12px}.discovery-context dt{font-size:9px}.discovery-context dd{font-size:12px}.actionbar .movement-hint{display:none}.action-button{height:51px}.action-button #interact-label{font-size:9px}.duty-dialog{padding:25px 20px}.duty-dialog h2{font-size:28px}.object-tray{gap:9px}.book-object{font-size:12px;height:98px;padding:9px 4px}.book-shelves{gap:5px;padding:12px 5px 0}.shelf-label{font-size:10px}.candle-rack{height:190px}.votive{height:170px}.candle-base{width:40px}.trace-board{height:220px;margin:15px auto}.trace-point{width:38px;height:38px}.manuscript-page{padding:12px 18px}.table-setting{border-width:7px;height:220px}.recipe{font-size:16px!important}.mix-actions{flex-direction:column}.duty-workspace{min-height:240px}}
@media(prefers-reduced-motion:reduce){.candle-flame{animation:none!important}}
/* The abbey is the playing surface. Compact instruments stay at its edges. */
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
#app{height:100dvh;max-width:2000px;padding:0 20px;display:flex;flex-direction:column}.masthead{height:62px;min-height:62px;gap:18px}.brand{font-size:12px;gap:8px;letter-spacing:1.5px}.brand b{font-size:10px;letter-spacing:2px}.brand svg{width:25px;height:33px}.calling{display:flex;align-items:center;gap:10px;margin-right:auto}.calling .role-symbol{width:26px;height:30px;border:0}.calling strong{font:19px var(--serif);color:var(--gold)}.calling #day-label{color:var(--muted);font-size:11px;padding-left:12px;border-left:1px solid var(--line)}.header-actions{gap:12px}.header-actions .quiet-button{min-height:40px;padding:8px 5px}.game-layout{display:flex;flex:1;height:auto;min-height:0;padding:0 0 10px;gap:0}.game-column{width:100%;min-height:0;flex:1}.statusbar{height:34px;min-height:34px;margin:0;gap:12px}.faith-title{font-size:10px;letter-spacing:.5px}.faith-title strong{font-size:13px}.brother-count{font-size:11px}.faith-track{max-width:420px}.quick-duties{display:flex;align-items:center;gap:18px;padding:3px 0 10px;min-height:70px}.quick-duties .duty-heading{display:flex;flex-direction:column;align-items:start;gap:6px;min-width:94px;margin:0}.quick-duties h2{font-size:18px}.quick-duties .duty-heading>span{font-size:12px;color:var(--gold)}.quick-duties .duty-list{display:flex;flex:1;gap:8px;min-width:0}.quick-duties .duty-item{min-width:0;flex:1;width:auto;gap:8px;padding:9px 11px;border:1px solid #485341;background:#202b23;min-height:53px}.quick-duties .duty-item>svg{width:19px}.quick-duties .duty-item strong{font-size:12px}.quick-duties .duty-item small{font-size:10px;line-height:1.4;margin-top:3px}.quick-duties .duty-item.done{opacity:.55;background:none}.world-frame{min-height:0;flex:1;border-color:#626454;box-shadow:none}.map-heading{font-size:11px;letter-spacing:1px;top:17px;left:18px;background:#102019b8;padding:7px 9px}.map-corner{top:18px}.world-hint{font:13px Arial;line-height:1.4;left:18px;bottom:17px;max-width:calc(100% - 230px)}.zoom-control{right:17px;bottom:17px;height:36px;font-size:11px}.zoom-control button{min-width:30px;height:36px}#map-toggle{font-size:12px;padding:0 12px}.journey-bar{display:flex;flex-direction:column;gap:6px}.route-status,.alert-banner{position:static;transform:none;width:100%;max-width:none;margin:0 0 6px;min-height:37px;padding:5px 10px;gap:10px;font-size:12px;line-height:1.35}.route-status{background:#263328;border-color:#746b50}.alert-banner{background:#563829;border-color:#bc8665}.route-status button,.alert-banner button{min-height:30px;padding:5px 12px;font-size:11px}.actionbar{min-height:64px;padding-top:10px;gap:12px}.actionbar .movement-hint{display:flex;gap:18px;font-size:11px;line-height:1.4}.movement-hint #supplies-status{color:var(--gold);max-width:160px}.actions{gap:9px}.action-button{height:51px;min-height:45px;max-width:290px;font-size:12px;padding:0 18px}.action-button #interact-label{font-size:12px}.action-button:enabled{border-color:#a5a17a}.action-button#interact-button:enabled{background:#4b5738;color:#fff0c8;border-color:#d0bd81}.action-button:disabled{opacity:.5}.gather-button{color:#dce8c8}.toast{font-size:14px;line-height:1.5;bottom:76px;max-width:80%;z-index:4}footer{height:24px;min-height:24px;font-size:8px}footer>span:nth-child(2){display:none}#mobile-duties{display:none}.records-dialog{width:min(790px,100%)}.records-layout{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:24px}.records-layout h3{font:21px var(--serif);margin:0 0 12px}.records-layout .brother-name{font-size:13px}.records-layout .brother-name small{font-size:11px}.records-layout .event{font-size:12px}.records-layout .event time{font-size:11px}.records-layout .brother.inactive{opacity:.65}
/* A council keeps accounts and voting in view at the same time. */
.meeting-dialog{width:min(1120px,100%);height:min(800px,94dvh);max-height:94dvh;display:flex;flex-direction:column;overflow:hidden;padding:26px 30px}.meeting-clock{position:absolute;right:30px;top:25px;font-size:12px;font-variant-numeric:tabular-nums}.discovery-heading{display:flex;align-items:center;gap:13px;padding-right:120px;min-height:42px}.discovery-heading>svg{color:var(--gold);width:31px;height:31px;flex-shrink:0}.discovery-heading h2{font-size:31px;line-height:1.12}.discovery-context{flex-shrink:0;padding:12px 0;margin:16px 0 14px;gap:20px;align-items:center}.discovery-context dt{font-size:11px;margin-bottom:5px}.discovery-context dd{font-size:14px}.discovery-context .discovered-brother{display:flex;align-items:center;gap:8px;flex:1.3}.discovered-brother>.monk-badge{width:35px;height:46px}.discovery-context .discovered-brother>div{min-width:0}.council-tabs{display:flex;flex-shrink:0;gap:22px;border-bottom:1px solid #515b46;margin-bottom:15px}.council-tabs button{border:0;border-bottom:2px solid transparent;background:none;padding:9px 0 11px;font-size:13px;color:#c4ceb5}.council-tabs button[aria-selected=true]{border-color:var(--gold);color:var(--gold)}.meeting-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,1fr);gap:28px;margin:0;min-height:0;flex:1}.council-evidence{min-height:0;display:flex;flex-direction:column}.council-scroll{overflow-y:auto;overscroll-behavior:contain;min-height:0;padding-right:12px;flex:1;scrollbar-gutter:stable}.meeting-layout h3{font-size:22px;margin:0 0 9px}.meeting-layout .small-note{font-size:11px!important;line-height:1.5!important;margin:0 0 12px}.vote-grid{display:flex;flex-direction:column;gap:0}.brother-account{display:grid;grid-template-columns:146px minmax(0,1fr);gap:14px;border-bottom:1px solid #46513e;padding:12px 0}.vote-card{font-size:12px;line-height:1.4;gap:8px;padding:9px 5px;background:none;min-width:0;border:1px solid transparent;align-self:start;width:100%}.vote-card .monk-badge{width:40px;height:51px}.vote-card small{font-size:8px;margin-top:5px;line-height:1.5;color:#c2cbb5}.vote-card.selected{background:#4e4931;border-color:var(--gold)}.account-claim p{font-size:13px;line-height:1.6;color:#d8ddc8;margin:4px 0}.claim-kind{font-size:10px;color:var(--gold)}.council-decisions{display:flex;flex-direction:column;min-height:0;border-left:1px solid #4c5643;padding-left:26px}.council-questions{padding:0;margin:0;border:0;gap:11px}.question-row{display:flex;align-items:end;gap:8px}.question-row label{flex:1;min-width:0;font-size:11px}.question-row select{font-size:12px;padding:10px;min-height:42px}.question-row button{padding:10px 12px;min-height:42px;font-size:11px}.council-questions #discussion-status{min-height:20px;line-height:1.4;font-size:11px}.council-questions>.secondary{min-height:40px;padding:10px}.council-ballot{border-top:1px solid #62684e;margin-top:auto;padding-top:18px}.council-ballot #vote-status{font-size:13px;line-height:1.4;min-height:19px;color:#e6d2a7;margin:9px 0 13px}.council-ballot .abstain{margin:0 0 9px}.council-ballot .small-note{margin-top:10px}.council-ballot button{min-height:44px;padding:11px}.council-notebook{border:0;margin:0;padding:0}.council-notebook p{padding:11px 0;border-bottom:1px solid #46513e;font-size:13px}.council-notebook time{color:var(--gold);font-variant-numeric:tabular-nums}.practice-discussion .testimony{display:flex;gap:10px;padding:14px 0}.testimony .monk-badge{height:45px;width:35px}.testimony strong{font-size:12px;line-height:1.5}.testimony strong small{display:block;color:#bac7a8;font-size:10px;font-weight:normal}.testimony p{font-size:13px;margin:5px 0;line-height:1.6}.council-decisions .chat-log{flex:1;min-height:100px;height:auto;margin-bottom:6px}.council-decisions .chat-form{margin-bottom:18px}.chat-message{font-size:13px}.chat-message strong{font-size:12px}.verdict-heading{display:flex;align-items:center;justify-content:center;gap:10px;font:21px var(--serif);color:var(--gold);margin-bottom:18px}.reveal-dialog h2{font-size:36px}.meeting-dialog,.reveal-dialog{animation:council-arrival .42s cubic-bezier(.16,1,.3,1)}@keyframes council-arrival{from{transform:translateY(18px);clip-path:inset(0 0 7%)}to{transform:none;clip-path:inset(0)}}
@media(max-width:1100px){.quick-duties{gap:10px}.quick-duties .duty-heading{min-width:80px}.quick-duties .duty-item{padding:8px;gap:6px}.quick-duties .duty-item>svg{display:none}.quick-duties .duty-item strong{font-size:11px}.quick-duties .duty-item small{font-size:10px}.actionbar .movement-hint{display:none}.actions{width:100%;justify-content:flex-end}.action-button{flex:1;max-width:none}.meeting-dialog{padding:23px}.meeting-layout{gap:20px;grid-template-columns:minmax(0,1.1fr) minmax(285px,1fr)}.council-decisions{padding-left:20px}.brother-account{grid-template-columns:125px minmax(0,1fr);gap:8px}.vote-card .monk-badge{width:32px;height:44px}}
@media(max-width:800px){#app{padding:0 10px}.masthead{display:grid;grid-template-columns:auto 1fr;grid-template-rows:35px 33px;height:74px;min-height:74px;gap:0 12px;padding:4px 0}.brand{font-size:10px;gap:6px;grid-row:1;grid-column:1}.brand b{font-size:8px}.brand svg{width:20px;height:29px}.calling{grid-column:2;grid-row:1;margin:0;justify-content:flex-end;gap:6px}.calling strong{font-size:16px}.calling #day-label{font-size:10px;padding-left:6px}.calling .role-symbol{width:19px}.header-actions{grid-column:1/-1;grid-row:2;justify-content:flex-end;gap:10px}.header-actions .quiet-button{padding:4px 6px;min-height:31px;font-size:11px}.header-actions .icon-button{height:30px}#mobile-duties{display:block;margin-right:auto}.game-layout{padding:0 0 7px;min-height:0;height:auto}.statusbar{height:29px;min-height:29px;gap:8px}.faith-title{font-size:8px;gap:8px}.faith-title strong{font-size:11px}.brother-count{font-size:9px}.quick-duties{min-height:66px;padding:2px 0 8px;gap:8px}.quick-duties .duty-heading{display:none}.quick-duties .duty-list{overflow-x:auto;gap:6px;padding-bottom:3px;scrollbar-width:thin}.quick-duties .duty-item{flex:0 0 132px;min-height:48px;padding:7px 9px}.quick-duties .duty-item strong{font-size:11px}.quick-duties .duty-item small{font-size:9px}.world-frame{height:auto;min-height:140px;flex:1}.map-heading{font-size:10px;top:10px;left:10px;padding:6px}.map-corner{top:12px;right:12px}.world-hint{left:10px;right:10px;bottom:111px;width:auto;max-width:none;font-size:11px;padding:5px 7px}.touch-pad{left:12px;bottom:12px;grid-template-columns:repeat(3,40px);grid-template-rows:repeat(2,40px);gap:4px}.zoom-control{right:10px;bottom:14px;gap:2px}.zoom-control button{width:27px;min-width:27px;height:34px}#map-toggle{font-size:11px;padding:0 9px}.route-status,.alert-banner{font-size:10px;padding:5px 8px;gap:6px;min-height:34px;margin-bottom:5px}.route-status button,.alert-banner button{font-size:10px;min-width:60px;min-height:28px;padding:5px 8px;white-space:nowrap}.actionbar{min-height:58px;padding-top:7px;gap:0}.actions{gap:5px;flex-wrap:wrap}.action-button{height:46px;min-height:46px;font-size:10px;padding:0 7px;gap:5px;min-width:0}.action-button #interact-label{font-size:10px}.action-button svg{width:16px;height:16px}.action-button kbd{display:none}.gather-button{flex-basis:100%;height:35px;min-height:35px;order:-1}.toast{bottom:145px;font-size:12px;padding:10px 12px;max-width:90%}footer{height:21px;min-height:21px;font-size:6px;letter-spacing:.5px}footer>span:first-child{display:block}.records-layout{grid-template-columns:1fr;gap:26px}.records-dialog{max-height:93dvh}.meeting-dialog{height:96dvh;max-height:96dvh;padding:16px;width:100%}.overlay:has(.meeting-dialog){padding:8px}.meeting-clock{right:16px;top:14px;font-size:10px}.discovery-heading{padding:18px 0 0;gap:9px;min-height:51px}.discovery-heading h2{font-size:23px}.discovery-heading>svg{width:24px;height:24px}.discovery-context{gap:8px;padding:8px 0;margin:10px 0 5px}.discovery-context div{min-width:60px}.discovery-context dt{font-size:8px;margin-bottom:4px}.discovery-context dd{font-size:10px;line-height:1.4}.discovery-context .discovered-brother{flex-basis:100%;gap:6px}.discovered-brother>.monk-badge{height:27px;width:23px}.discovery-context .discovered-brother>div{display:flex;align-items:center;gap:8px}.discovery-context .discovered-brother dt{margin:0}.council-tabs{gap:20px;margin-bottom:10px}.council-tabs button{font-size:11px;padding:8px 0}.meeting-layout{grid-template-columns:1fr;grid-template-rows:minmax(95px,1fr) auto;gap:12px;min-height:0}.council-scroll{padding-right:4px}.meeting-layout h3{font-size:18px;margin-bottom:5px}.meeting-layout .small-note{font-size:10px!important;margin-bottom:7px}.brother-account{grid-template-columns:112px minmax(0,1fr);padding:8px 0;gap:9px}.vote-card{font-size:11px;padding:6px 3px}.vote-card .monk-badge{height:37px;width:28px}.vote-card small{font-size:7px}.account-claim p{font-size:11px;line-height:1.5}.claim-kind{font-size:9px}.council-decisions{border-left:0;border-top:1px solid #4c5643;padding:10px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:10px}.council-questions{gap:6px}.council-questions h3{font-size:16px}.question-row{gap:5px;align-items:end}.question-row label{font-size:9px}.question-row select{min-height:34px;font-size:10px;padding:6px;margin-top:4px}.question-row button{min-height:34px;padding:6px;font-size:9px;width:49px;flex-shrink:0}.council-questions>.secondary{font-size:9px;min-height:33px;padding:6px}.council-questions #discussion-status{font-size:9px;min-height:0}.council-ballot{border:0;margin:0;padding:0 0 0 9px;border-left:1px solid #4c5643}.council-ballot h3{font-size:16px}.council-ballot #vote-status{font-size:11px;line-height:1.4;min-height:31px;margin:8px 0}.council-ballot button{padding:8px;min-height:39px;font-size:10px}.council-ballot .small-note{font-size:9px!important;line-height:1.35!important;margin:7px 0 0}.council-notebook p,.testimony p{font-size:11px}.council-decisions:has(.chat-log){grid-template-columns:1fr;grid-template-rows:auto minmax(55px,80px) auto auto;gap:4px}.council-decisions:has(.chat-log) .council-ballot{border:0;border-top:1px solid #4c5643;padding:9px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:7px;align-items:center}.council-decisions:has(.chat-log) .council-ballot h3,.council-decisions:has(.chat-log) .council-ballot .small-note{display:none}.council-decisions:has(.chat-log) #vote-status{grid-column:1/-1;margin:0;min-height:0}.council-decisions:has(.chat-log) .abstain{margin:0}.council-decisions .chat-form{margin:3px 0 6px}.council-decisions .chat-log{height:auto;min-height:55px}.chat-form input{min-height:36px;padding:8px;font-size:11px}.chat-form button{min-height:36px;font-size:10px}.reveal-dialog h2{font-size:29px}}
@media(max-width:380px){.header-actions{gap:5px}.calling strong{font-size:14px}.calling #day-label{font-size:9px}.action-button>span:first-child{display:none}.brother-account{grid-template-columns:100px minmax(0,1fr)}.meeting-dialog{padding:12px}.question-row{flex-wrap:wrap}.question-row button{width:100%;min-height:26px}.council-decisions{grid-template-columns:1.1fr 1fr}}
@media(prefers-reduced-motion:reduce){.meeting-dialog,.reveal-dialog{animation:none}}
.ghost-guidance{display:flex;align-items:center;gap:22px;padding:10px 16px;color:#d7e9df;font-size:13px;min-height:52px}.ghost-guidance strong{font-family:var(--serif);font-size:19px;font-weight:400}.ghost-guidance span{color:#b8ceca;line-height:1.5}
@media(max-width:800px){.ghost-guidance{flex-direction:column;align-items:flex-start;gap:3px;padding:7px 0;font-size:11px}.ghost-guidance strong{font-size:16px}}

/* Short landscape screens keep the room in view; duties open from the header. */
@media(min-width:801px) and (max-height:650px){
  .masthead{height:46px;min-height:46px}.brand{font-size:11px}.brand b{font-size:9px}.brand svg{height:32px;width:24px}.calling strong{font-size:19px}.header-actions{gap:12px}#mobile-duties{display:block}.statusbar{height:25px;min-height:25px}.quick-duties{display:none}.game-layout{padding-bottom:6px}.actionbar{min-height:54px;padding-top:6px}.action-button{height:44px;min-height:44px}.movement-hint{display:none!important}footer{display:none}.route-status,.alert-banner{min-height:30px;margin:0 0 5px;padding:4px 9px;font-size:11px}.route-status button,.alert-banner button{min-height:26px;padding:4px 8px}.world-hint{font-size:11px;bottom:100px;max-width:480px}.touch-pad{display:grid;position:absolute;left:15px;bottom:12px;grid-template-columns:repeat(3,36px);grid-template-rows:repeat(2,36px);gap:3px}.touch-pad button{border:1px solid #7c8c6b;background:#243427cf;color:#d2d9c1;font-size:18px;touch-action:none}.touch-pad button:first-child{grid-column:2}.touch-pad button:nth-child(2){grid-column:1}.zoom-control{bottom:13px}
}

.system-options{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}.system-options button{flex:1;min-width:130px;white-space:normal;text-align:left}.system-options strong,.system-options span{display:block}.system-options span{font-size:12px;line-height:1.5;margin-top:8px;color:var(--muted,#aaa)}.ledger-counts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:22px 0}.ledger-counts>div{display:flex;justify-content:space-between;gap:16px;padding:12px;border:1px solid #a9b69933}.actions{flex-wrap:wrap}.actionbar{flex-shrink:0}

/* iOS uses the same game inside a safe-area-constrained native WebKit view. */
.native-ios{overscroll-behavior:none;-webkit-text-size-adjust:100%}.native-ios body{overscroll-behavior:none}.native-ios button,.native-ios #world{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.native-ios input,.native-ios select,.native-ios textarea{font-size:16px}.native-connection-actions{display:flex;gap:10px;margin-top:20px}.native-connection-actions>*{flex:1}.native-ios .touch-pad button{min-width:40px;min-height:40px}.native-ios .entry-tabs{gap:20px}.native-ios .header-actions .quiet-button{min-height:34px}.native-ios .dialog .entry-tabs button{min-height:44px}.native-ios .entry-title{font-size:clamp(32px,7vw,46px)!important}
@media(pointer:coarse) and (min-width:801px){.touch-pad{display:grid;position:absolute;left:16px;bottom:13px;grid-template-columns:repeat(3,44px);grid-template-rows:repeat(2,44px);gap:4px}.touch-pad button{border:1px solid #7c8c6b;background:#243427cf;color:#d2d9c1;font-size:20px;touch-action:none}.touch-pad button:first-child{grid-column:2}.touch-pad button:nth-child(2){grid-column:1}.world-hint{bottom:116px}.movement-hint{display:none!important}}
@media(max-height:500px) and (pointer:coarse){.quick-duties{display:none}#mobile-duties{display:block}.masthead{height:45px;min-height:45px;display:flex;padding:0;gap:10px}.header-actions{margin-left:auto}.calling #day-label{display:none}.statusbar{height:24px;min-height:24px}.actionbar{padding-top:4px;min-height:48px}.action-button{min-height:44px;height:44px}footer{display:none}.world-hint{left:166px;right:130px;bottom:13px;font-size:10px}.touch-pad{grid-template-columns:repeat(3,40px);grid-template-rows:repeat(2,40px);gap:3px;bottom:8px}.dialog{max-height:95dvh}.entry-title{font-size:30px!important}.dialog .lead{margin:8px 0 10px}.entry-tabs{margin:12px 0}.dialog .crest{display:none}}

.native-ios .action-button kbd{display:none}

@media(pointer:coarse){button:active:not(:disabled){transform:none}}

/* Bot seats and saved-room recovery stay usable on narrow phones. */
#bot-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:16px}
#fill-bots{grid-column:1/-1}
#bot-controls button,#rejoin-abbey{font-size:14px}
#rejoin-abbey{margin-bottom:18px}

.lobby-settings{margin:18px 0;text-align:left;border:1px solid var(--border,#5c4c31);border-radius:8px;padding:12px}.lobby-settings summary{cursor:pointer;font-size:1rem;font-weight:600;padding:4px}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:16px 0}.settings-grid label{font-size:14px;display:flex;flex-direction:column;gap:5px;min-width:0}.settings-grid .small-note{margin:0}.settings-grid input{width:100%;min-width:0;font-size:16px}.lobby-settings input:disabled{opacity:.8}.lobby-settings .lobby-share{margin-top:12px}@media(max-width:420px){.settings-grid{grid-template-columns:1fr}}
