@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+KR:wght@400;500;600&family=Noto+Sans+KR:wght@400;500;600&display=swap');
:root{font-family:'Noto Sans KR',sans-serif;color:#514a3e;background:#f2ede2;font-synthesis:none}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input{font:inherit}button{color:inherit;cursor:pointer}button:focus-visible{outline:3px solid #9e7749;outline-offset:4px}#world{position:fixed;inset:0}canvas{display:block;width:100%;height:100%;touch-action:none}header{position:absolute;top:32px;left:40px;right:40px;display:flex;align-items:center;justify-content:space-between;pointer-events:none}header button{pointer-events:auto}.brand{display:flex;align-items:center;gap:13px;background:none;border:0;text-align:left;font-family:'Noto Serif KR',serif;font-size:27px;letter-spacing:5px}.cross{font-size:39px;font-weight:400;line-height:1;color:#92764f}.brand small{display:block;font:9px sans-serif;letter-spacing:3px;margin-top:5px}.topright{display:flex;gap:10px;align-items:center}.round,.pill{background:#fffaf0c9;backdrop-filter:blur(15px);border:1px solid #ffffffb0;box-shadow:0 4px 22px #5c46320a;height:44px}.round{width:44px;border-radius:50%;font-size:20px}.round[aria-pressed=true]{background:#918162;color:white}.pill{border-radius:30px;padding:0 20px;font-size:12px}.pill span{margin-left:20px;color:#9d8c70}.intro{position:absolute;top:23%;left:5%;pointer-events:none;max-width:280px}.eyebrow{font-size:10px;letter-spacing:3px;color:#8d806b}.intro h1{font-family:'Noto Serif KR',serif;font-weight:400;font-size:clamp(26px,3vw,43px);line-height:1.65;letter-spacing:-1px;margin:20px 0}.intro p{font-size:12px;color:#887d6a;line-height:2.1}.verse-line{width:30px;height:1px;background:#bca98b;margin:28px 0 18px}.intro .verse{font-family:'Noto Serif KR',serif;font-size:11px}.verse small{display:block;font-family:'Noto Sans KR',sans-serif;font-size:9px;color:#a69983}.place{position:absolute;right:40px;top:91px;display:flex;gap:7px;align-items:center;font-size:10px;color:#827760}.place small{font-size:9px;color:#9e9380}.live-dot{height:5px;width:5px;border-radius:50%;background:#8d9c79}footer{position:absolute;bottom:26px;left:0;right:0;display:flex;align-items:center;flex-direction:column;pointer-events:none}.hints{font-size:10px;color:#7c715e;background:#fff9ed99;padding:8px 17px;border-radius:20px;margin-bottom:16px}.hints i{margin:0 8px;color:#b1a791}nav{display:flex;gap:5px;padding:9px;background:#fffdf4e8;backdrop-filter:blur(18px);border:1px solid #fff;border-radius:24px;box-shadow:0 10px 40px #513b1b14;pointer-events:auto}nav button{display:flex;align-items:center;gap:9px;padding:13px 19px;border:0;background:transparent;border-radius:16px;font-size:11px;transition:.2s}nav button:hover,nav button[aria-pressed=true]{background:#eae4d5}nav button span{font-size:21px;color:#897457}nav button b{font-weight:500}kbd{font-size:9px;border:1px solid #ddd3c1;border-radius:4px;padding:1px 4px;color:#9a8d76}.footer-note{font-family:'Noto Serif KR',serif;font-size:9px;letter-spacing:1px;margin-top:14px;color:#9c8d75}#name-tag{position:absolute;background:#fffaf0d9;border:1px solid white;border-radius:20px;font-size:9px;padding:5px 11px;pointer-events:none;transform:translate(-50%,-100%)}#toast{position:absolute;top:125px;left:50%;transform:translate(-50%,-8px);opacity:0;background:#fffaf0ed;box-shadow:0 5px 30px #0001;padding:13px 22px;border-radius:30px;font-size:12px;transition:.4s;pointer-events:none;max-width:85%;text-align:center}#toast.show{opacity:1;transform:translate(-50%,0)}dialog{border:1px solid #fff;border-radius:26px;background:#fcf9f1;color:#514a3e;padding:40px;width:420px;max-width:calc(100% - 32px);box-shadow:0 30px 100px #332a392b}dialog::backdrop{background:#403a2d45;backdrop-filter:blur(5px)}.close{position:absolute;right:17px;top:12px;font-size:28px;background:none;border:0;color:#a5987f}dialog h2{font-family:'Noto Serif KR',serif;font-weight:500;font-size:25px;margin:0 0 18px}dialog p{font-size:12px;line-height:2;color:#8c806b}dialog label{display:block;margin:23px 0 9px;font-size:12px}dialog input[type=text]{width:100%;padding:12px;border:1px solid #d9cfba;border-radius:10px;background:#fffdf8;color:#514a3e}dialog input[type=range]{width:100%;accent-color:#927b55}.primary,.choice{border:0;background:#8b795c;color:#fffaf0;border-radius:12px;padding:13px 20px;width:100%;margin-top:12px;font-size:12px}.choice{background:#eee8db;color:#6f634e;text-align:left}.choice small{display:block;font-size:10px;margin-top:5px;color:#9a8c74}.scripture{font-family:'Noto Serif KR',serif;font-size:22px!important;line-height:1.9!important;color:#66573d!important}.caption{font-size:10px!important;letter-spacing:2px}.timer{font-size:44px;font-family:'Noto Serif KR',serif;text-align:center;color:#88724e;margin:25px 0}#loading{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#f2ede2;z-index:10;transition:opacity 1s;pointer-events:none}#loading span{font-size:40px;color:#9c8964}#loading h2{font-family:'Noto Serif KR',serif;letter-spacing:10px;font-weight:400}#loading p{font-size:11px;color:#9a8a70}@media(max-width:700px){header{top:20px;left:20px;right:20px}.brand{font-size:22px;gap:8px}.brand small{font-size:7px;letter-spacing:2px}.cross{font-size:30px}.round{width:36px;height:36px}.pill{height:36px;padding:0 12px;font-size:10px}.pill span{margin-left:8px}.topright{gap:5px}.intro{top:16%;left:25px}.intro h1{font-size:28px;margin:12px 0}.intro p{font-size:10px}.intro .verse,.verse-line{display:none}.eyebrow{font-size:8px}.place{right:20px;top:73px;font-size:9px}.place small{display:none}nav button{padding:11px 13px;font-size:10px;gap:6px}kbd{display:none}.hints{font-size:8px;padding:7px 10px}.hints i{margin:0 4px}footer{bottom:20px}#toast{top:110px;font-size:10px}}

.space-actions{position:absolute;bottom:176px;right:34px;display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end;max-width:330px}.space-actions button{border:1px solid #fff9;background:#fffaf0df;backdrop-filter:blur(10px);border-radius:22px;padding:10px 15px;font-size:11px;box-shadow:0 4px 20px #0001}.seat-map{background:#eae4d6;padding:16px;border-radius:15px}.altar-label{text-align:center;padding:5px 0 18px;letter-spacing:4px;font-size:12px}.seat-row{display:flex;gap:7px;justify-content:center;margin:7px 0}.seat-row button{width:30px;height:30px;border:1px solid #ac9978;background:#d6c4a3;border-radius:7px 7px 3px 3px;font-size:10px}.seat-row button:hover,.seat-row .selected{background:#8d7956;color:white}.aisle-gap{width:18px}.book-illustration{margin:20px auto;background:#41372e;color:#d9bd79;border:3px double #b59860;border-radius:3px 10px 10px 3px;width:100px;height:130px;text-align:center;padding-top:20px;font-size:35px;box-shadow:5px 5px 0 #e2d9bd}.book-illustration small{display:block;font-size:11px;letter-spacing:3px;margin-top:10px}select{width:100%;padding:12px;background:#fffaf0;color:#66573d;border:1px solid #d3c7b3;border-radius:9px;font:inherit;font-size:13px}.external{display:block;text-align:center;text-decoration:none}.night{color:#e4ddce}.night .intro p,.night .eyebrow,.night .footer-note,.night .place{color:#c6bba4}.night .intro h1{color:#eee5d3}.night .brand,.night .cross{color:#e6d2aa}.night .hints,.night nav,.night .space-actions button,.night .pill,.night .round{background:#272c39df;color:#e8ddc6;border-color:#93877950}.night nav button{color:#e8ddc6}.night dialog{background:#252a35;color:#eee3cf;border-color:#635e54}.night dialog p{color:#c3b7a1}.night #name-tag{background:#34394b;color:#f6ebd6;border-color:#807963}.night nav button:hover,.night nav button[aria-pressed=true]{background:#4b4b50}.night .scripture{color:#e8dbbe!important}@media(max-width:700px){.space-actions{bottom:161px;right:18px;max-width:100%;left:18px;justify-content:center}.space-actions button{padding:8px 12px;font-size:10px}.seat-map{padding:10px}.seat-row{gap:5px}}

.bible-dialog{width:960px;max-height:94dvh;padding:30px}.bible-dialog .book-illustration{display:none}.bible-dialog h2{font-size:22px;margin-bottom:12px}.bible-dialog label{display:inline-block;margin:8px 8px 10px 0}.bible-dialog select{width:auto;min-width:90px;margin-right:15px}#bible-frame{display:block;border:1px solid #ddd3c1;border-radius:12px;background:white;width:100%;height:58dvh;margin-top:8px}.bible-credit{font-size:10px!important;margin-bottom:0}@media(max-width:700px){.bible-dialog{padding:26px 16px 16px}.bible-dialog select{font-size:11px;padding:8px;margin-right:4px;min-width:60px}.bible-dialog label{font-size:10px;margin-right:4px}#bible-frame{height:60dvh}.intro{pointer-events:none}}

.board-open{position:absolute;right:40px;top:125px;border:1px solid #b8a58370;border-radius:30px;padding:10px 17px;background:#fffaf0e6;font-size:11px;color:#756346;box-shadow:0 4px 20px #0001}.prayer-board{width:560px;max-height:90dvh;overflow:auto}.prayer-board textarea{display:block;width:100%;min-height:110px;resize:vertical;padding:14px;font:inherit;font-size:13px;line-height:1.8;color:#594d3d;background:#fffdf8;border:1px solid #d9cfbb;border-radius:12px}.board-meta{display:flex;justify-content:space-between;gap:10px;font-size:10px;color:#9b8b71;margin:8px 0}.privacy-note{font-size:10px!important;line-height:1.8!important}.board-divider{display:flex;align-items:center;justify-content:space-between;padding:20px 0 14px;margin-top:10px;border-top:1px solid #d9cebb;font-size:12px}.board-divider button,.delete-prayer{background:transparent;border:0;font-size:10px;color:#9a8463}.prayer-card{padding:14px 17px;border:1px solid #dfd5c2;background:#f5efe2;border-radius:13px;margin:10px 0}.prayer-card p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;color:#6b5d48;margin:10px 0}#prayer-list{font-size:12px;line-height:1.9}#prayer-status{min-height:20px;font-size:11px;color:#96704d}button:disabled{opacity:.5;cursor:wait}.night .board-open{background:#272c39df;color:#e8ddc6;border-color:#93877950}.night .prayer-card{background:#303440;border-color:#55535a}.night .prayer-card p{color:#e1d6c2}.night .prayer-board textarea{background:#1e2330;color:#eee0c7;border-color:#625d56}@media(max-width:700px){.board-open{right:20px;top:104px;padding:8px 12px;font-size:10px}.prayer-board{padding:30px 22px}.space-actions{gap:5px}}

.bible-controls{margin:14px 0}.bible-location,.bible-version-row{display:flex;align-items:center;gap:10px}.bible-version-row{margin-top:8px}.bible-dialog .bible-controls label{margin:0;white-space:nowrap}.bible-dialog .bible-controls select{margin:0;min-width:90px}.bible-dialog #bible-book{min-width:145px}.bible-dialog #bible-version{min-width:145px}.bible-dialog #bible-frame{height:56dvh}.night .bible-controls select{background:#303440;color:#e8dcc5;border-color:#776b58}@media(max-width:700px){.bible-location,.bible-version-row{gap:8px}.bible-dialog #bible-book,.bible-dialog #bible-version{min-width:130px}.bible-dialog #bible-frame{height:54dvh}}

.rooms-open{position:absolute;top:174px;right:40px;background:#fffaf0e6;border:1px solid #b8a58370;border-radius:25px;padding:10px 17px;font-size:11px;color:#756346}.room-dialog{max-height:85dvh;overflow:auto}.room-dialog .choice{margin-top:7px}.night .rooms-open{background:#272c39df;color:#e8ddc6;border-color:#93877950}@media(max-width:700px){.rooms-open{top:145px;right:20px;font-size:10px;padding:8px 12px}}

.bible-reading-window{overflow:hidden;border:1px solid #ddd3c1;border-radius:12px;margin-top:8px;background:white}.bible-dialog .bible-reading-window #bible-frame{width:calc(106.383% + 319.15px);max-width:none;margin-top:0;margin-left:calc(-3.1915% - 9.575px);border:0;border-radius:0;display:block}.bible-dialog{overflow-x:hidden}

.music-panel{position:absolute;left:24px;bottom:22px;width:360px;max-width:calc(100vw - 32px);padding:18px 16px 14px;background:#fcf8efed;backdrop-filter:blur(18px);border:1px solid #e4d6bd;border-radius:18px;box-shadow:0 12px 50px #0003;z-index:4;color:#62543f}.music-panel[hidden]{display:none}.music-panel .caption{margin:0 0 10px;font-size:9px;letter-spacing:2px}.music-panel>label{font-size:13px;display:block;margin-bottom:8px}.music-panel select{font-size:11px;width:100%;padding:9px}.music-panel #music-artist{font-size:10px;margin:7px 0;color:#958363}.music-close{position:absolute;right:9px;top:5px;border:0;background:none;font-size:25px;color:#9c8a6c}.youtube-stage{width:100%;height:200px;background:#191919;border-radius:9px;overflow:hidden}.youtube-stage iframe{display:block;width:100%;height:200px}.music-panel #music-status{font-size:10px;line-height:1.7;margin:9px 0;min-height:17px}.music-controls{display:flex;gap:10px;align-items:center}.music-controls button{border:0;border-radius:12px;background:#917b55;color:white;padding:9px 13px;font-size:11px;white-space:nowrap}.music-controls label{font-size:10px;white-space:nowrap}.music-controls input{width:100%;accent-color:#927b55}.night .music-panel{background:#252b38ed;color:#e7dbc5;border-color:#6c6559}.night .music-panel select{background:#303747;color:#e7dbc5;border-color:#6c6559}@media(max-width:700px){.music-panel{left:16px;bottom:160px;width:360px;max-height:calc(100dvh - 240px);overflow:auto;padding:15px 12px 12px}}

.rooms-open{top:125px}nav #prayer-board-open{position:static;white-space:nowrap}nav{gap:2px}.hints[hidden]{display:none}@media(max-width:700px){.rooms-open{top:104px}nav button{padding:11px 9px;gap:5px}nav button span{font-size:19px}nav button b{font-size:10px}}

.audio-source{position:fixed!important;left:-10000px!important;top:0!important;width:356px!important;height:200px!important;pointer-events:none;opacity:0}.music-panel{width:330px}.music-panel .youtube-stage{display:none}.music-panel #music-status{font-size:10px}

.music-panel{position:fixed;bottom:auto;right:auto;max-height:calc(100dvh - 100px);z-index:5}@media(max-width:700px){.music-panel{bottom:auto;max-height:calc(100dvh - 100px)}}

#avatar-preview{width:105px;height:115px;margin:0 auto 8px;background:#eae3d4;border-radius:50%}#avatar-preview svg{width:100%;height:100%}.avatar-styles,.avatar-colors{border:0;padding:0;margin:20px 0;display:flex;gap:6px;flex-wrap:wrap}.avatar-styles legend,.avatar-colors legend{font-size:12px;margin-bottom:10px}.avatar-styles button{border:1px solid #d6c9af;border-radius:10px;background:#efe8da;padding:9px 11px;font-size:11px}.avatar-styles button[aria-pressed=true]{background:#8b795c;color:white;border-color:#8b795c}.avatar-colors button{width:34px;height:34px;border:2px solid transparent;border-radius:50%}.avatar-colors button[aria-pressed=true]{outline:2px solid #9b835b;outline-offset:3px}.avatar-note{font-size:10px!important}.night #avatar-preview{background:#3a3c46}.night .avatar-styles button{background:#3b3c46;color:#e5d9c0;border-color:#776b58}

#avatar-preview{width:260px;height:200px;margin:0 auto;background:radial-gradient(ellipse at 50% 80%,#dcd3bd66,transparent 65%);border-radius:18px}#avatar-preview canvas{width:260px;height:200px;cursor:grab}.avatar-drag{text-align:center;font-size:9px!important;margin:0!important}.avatar-styles{gap:5px;margin:15px 0}.avatar-styles button{padding:7px 9px}.avatar-colors{align-items:center;margin:15px 0}.avatar-colors button{width:26px;height:26px}.avatar-colors .custom-outfit{display:flex;align-items:center;gap:5px;margin:0 0 0 7px;font-size:10px}.custom-outfit input{width:32px;height:27px;padding:0;border:0;background:none;cursor:pointer}.night #avatar-preview{background:radial-gradient(ellipse at 50% 80%,#4a4a4d66,transparent 65%)}

.bible-chapter-nav{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:8px 0;font-size:11px;color:#958060}.bible-chapter-nav button{background:#e9e1d1;border:0;border-radius:9px;padding:9px 13px;font-size:11px}.bible-chapter-nav button:disabled{opacity:.4;cursor:default}.bible-footer{display:flex;gap:15px;justify-content:space-between;align-items:center;margin-top:12px;flex-wrap:wrap}.bible-source-link{color:#8d7855;text-decoration:none;font-size:11px;font-weight:600}.bible-footer .bible-credit{margin:0!important}.night .bible-chapter-nav button{background:#3c3c46;color:#e1d3b7}

/* Mobile: keep the chapel visible and group controls along the edges. */
@media(max-width:700px){
 .intro,.footer-note,.place,.brand small{display:none!important}
 header{top:max(14px,env(safe-area-inset-top));left:16px;right:16px}
 .brand{font-size:22px;letter-spacing:3px;gap:7px;padding:0}
 .brand .cross{font-family:Georgia,serif;font-variant-emoji:text;font-size:28px}
 .topright{gap:7px}.round{width:36px;height:36px;font-size:19px}
 .rooms-open{top:65px;right:16px;padding:8px 12px;font-size:10px}
 #toast{top:109px;padding:9px 15px;font-size:10px;max-width:85%;width:max-content}
 footer{bottom:calc(14px + env(safe-area-inset-bottom));padding:0 12px}
 footer nav{width:100%;max-width:390px;justify-content:space-evenly;border-radius:21px;padding:7px 3px;gap:0}
 footer nav button{padding:9px 6px;gap:5px;min-width:0;font-size:10px}
 footer nav button span{font-size:18px}footer nav button b{font-size:10px;white-space:nowrap}
 .space-actions{bottom:calc(92px + env(safe-area-inset-bottom));left:12px;right:12px;justify-content:center;gap:7px}
 .space-actions button{padding:8px 13px;font-size:10px}
 .hints{position:fixed;bottom:150px;max-width:calc(100vw - 32px);text-align:center}
 #name-tag{font-size:9px;padding:4px 9px}
 .music-panel{max-width:calc(100vw - 24px)}
}

/* Welcome copy appears on entry and leaves as soon as walking starts. */
body.has-started-moving .intro{opacity:0;visibility:hidden;transition:opacity .35s,visibility .35s}
@media(max-width:700px){
 body.welcome-visible .intro{display:block!important;opacity:1;visibility:visible;top:23%;left:24px;max-width:240px;padding:18px 20px;border-radius:20px;background:linear-gradient(120deg,#fff9eddb,#fff9ed55);backdrop-filter:blur(3px)}
 body.welcome-visible .intro h1{font-size:27px;line-height:1.65;margin:10px 0}
 body.welcome-visible .intro p{font-size:11px;line-height:1.9}
 body.welcome-visible .intro .eyebrow{font-size:8px;letter-spacing:2px}
 body.night.welcome-visible .intro{background:linear-gradient(120deg,#242936dd,#24293655)}
}

/* Readable status messages in both lighting modes. */
#toast{color:#493923;background:#fffaf0;border:1px solid #d8c7a5;font-weight:600;box-shadow:0 5px 24px #30221124;line-height:1.65}
body.night #toast{color:#fff3da;background:#282c38;border-color:#87785f;box-shadow:0 5px 24px #0005}

/* Consistent line icons and mobile welcome typography. */
.ui-icon{width:21px;height:21px;display:block;flex:none}.round{display:grid;place-items:center}.brand .cross .ui-icon{width:24px;height:35px;stroke-width:2.6}.brand{font-family:'Noto Serif KR',serif;font-weight:600;letter-spacing:4px}.brand small{font-family:'Noto Sans KR',sans-serif;font-weight:500}
@media(max-width:700px){
 header .brand small{display:block!important;font-size:7px;letter-spacing:2.2px;margin-top:5px}
 header .brand{font-size:23px;letter-spacing:4px;gap:9px}
 body.welcome-visible .intro{top:24%;left:8%;max-width:84%;padding:0;border-radius:0;background:none!important;backdrop-filter:none}
 body.welcome-visible .intro h1{font-size:clamp(29px,8vw,37px);line-height:1.85;letter-spacing:-1px;margin:23px 0 22px;font-weight:400}
 body.welcome-visible .intro .eyebrow{font-size:9px;letter-spacing:3px}
 body.welcome-visible .intro p{font-size:11px;line-height:2.1}
 body.welcome-visible .intro .verse-line{display:block;width:27px;margin:25px 0 16px}
 body.welcome-visible .intro .verse{display:block;font-size:10px}
 body.welcome-visible .intro .verse small{font-size:8px}
 .intro{color:#514a3e;text-shadow:0 1px 14px #fff7df99}.night .intro{color:#f4ead5;text-shadow:0 1px 14px #0006}
 footer nav{border-radius:20px;padding:12px 5px;max-width:430px}
 footer nav button{gap:6px;padding:8px 5px}footer nav button b{font-size:10px;font-weight:600}
 footer nav .ui-icon{width:19px;height:19px;color:#9e865b}
 footer nav kbd{display:none}.night footer nav{background:#282d39ed;color:#f1e6d0}
}

.wall-verse-choice[aria-pressed=true]{outline:2px solid #ad9468;outline-offset:2px}.wall-verse-choice strong{font-weight:500}.wall-verse-choice small{line-height:1.8;margin-top:7px}
