/* Canvas Room: objects become a book or a choice-led story. */
#canvas-room { scroll-margin-top:90px; }
.room-hotspot { position:absolute; z-index:2; width:44px; height:44px; display:grid; place-items:center; border:0; padding:0; background:transparent; color:#233455; cursor:pointer; transform:translate(-50%,-50%); font:inherit; }
.room-hotspot-dot { width:15px; height:15px; border:3px solid #fff; border-radius:50%; background:#477d6a; box-shadow:0 0 0 5px #ffffff55,0 2px 12px #203d3530; transition:transform .18s,box-shadow .18s; }
.room-hotspot>span:last-child { position:absolute; top:39px; left:50%; transform:translateX(-50%); white-space:nowrap; padding:5px 9px; background:#fffffff0; border:1px solid #bccfc4; border-radius:6px; font-size:10px; font-weight:650; box-shadow:0 3px 10px #1c3a3110; }
.room-hotspot[data-room-object="art"]>span:last-child { top:auto; bottom:38px; }
.room-hotspot:hover .room-hotspot-dot,.room-hotspot:focus-visible .room-hotspot-dot { transform:scale(1.25); box-shadow:0 0 0 8px #ffffff80,0 2px 12px #203d3550; }
.room-hotspot:focus-visible { outline:2px solid #233455; outline-offset:1px; border-radius:50%; }
.mc-scene[data-light="night"] .room-hotspot-dot { background:#d9b678; }
.mc-scene[data-light="night"] .room-hotspot>span:last-child { background:#233455; color:#fff; border-color:#8eaaa8; }
.mc-home .mc-room-topics { justify-content:flex-end; gap:8px; }
.mc-home .mc-room-topics a { display:inline-flex; flex-direction:column; gap:5px; padding:11px 17px; min-height:44px; font-size:11px; border-radius:10px; }
.mc-room-topics a>span { color:#233455; font-size:12px; font-weight:700; }
.mc-room-topics a[aria-haspopup="dialog"]:hover { border-color:#568c7d; }
.mc-home main .room-invitation { text-align:right; font-size:11px; line-height:1.8; color:#627c72; margin-top:12px; }
.room-modal-open { overflow:hidden; }
.room-explorer { --room-accent:#477d6a; --room-soft:#e4eee8; --room-ink:#233455; --room-back:#e8eeea; width:min(1060px,calc(100% - 40px)); max-width:none; max-height:calc(100dvh - 40px); margin:auto; padding:0; overflow:auto; overscroll-behavior:contain; border:1px solid #a6bcb0; border-radius:18px; background:var(--room-back); color:var(--room-ink); box-shadow:0 30px 100px #102e3a55; font-family:Pretendard,-apple-system,BlinkMacSystemFont,sans-serif; }
.room-explorer::backdrop { background:#132b3cbb; backdrop-filter:blur(6px); }
.room-explorer[data-area="work"] { --room-accent:#73644d; --room-soft:#ede7dd; --room-back:#eeebe4; border-color:#c8bcaa; }
.room-explorer[data-area="emotion"] { --room-accent:#68798b; --room-soft:#e5ebef; --room-back:#e8edef; border-color:#b6c6cd; }
.room-explorer[open] .room-explorer-shell { animation:room-zoom-in .45s cubic-bezier(.2,.75,.25,1) both; transform-origin:var(--room-origin,50% 60%); }
.room-explorer * { box-sizing:border-box; }
.room-explorer [hidden] { display:none!important; }
.room-explorer h2,.room-explorer h3,.room-explorer p { margin:0; word-break:keep-all; overflow-wrap:anywhere; }
.room-explorer button { font:inherit; cursor:pointer; color:inherit; }
.room-explorer button:focus-visible,.room-explorer a:focus-visible { outline:3px solid var(--room-accent); outline-offset:3px; }
.room-explorer button:disabled { opacity:.35; cursor:default; }
.room-explorer-toolbar { position:sticky; top:0; z-index:5; background:var(--room-back); }
.room-explorer-head { position:relative; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:23px 30px 17px; }
.room-explorer-head p { font-size:10px; letter-spacing:.15em; color:var(--room-accent); margin-bottom:7px; font-weight:650; }
.room-explorer-head h2 { font-size:23px; line-height:1.3; letter-spacing:-.035em; }
.room-close { display:flex; align-items:center; gap:13px; white-space:nowrap; border:1px solid #23345530; border-radius:7px; background:#ffffff50; min-height:44px; padding:8px 13px; font-size:12px!important; }
.room-close span { font-size:23px; line-height:1; font-weight:400; }
.room-areas { display:flex; gap:7px; padding:0 30px 19px; border-bottom:1px solid #23345515; }
.room-areas button { min-height:44px; padding:9px 17px; border:1px solid #aabbaf; border-radius:7px; background:#ffffff65; font-size:12px; }
.room-areas button[aria-pressed="true"] { background:var(--room-ink); color:#fff; border-color:var(--room-ink); }
.room-explorer-content { padding:22px 30px 25px; }
.room-intro { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; margin-bottom:18px; }
.room-intro p { font-size:13px; color:#596b65; line-height:1.7; }
.room-filters { display:flex; gap:4px; border:1px solid #bfcdc3; border-radius:6px; padding:3px; background:#ffffff55; }
.room-filters button { border:0; background:transparent; padding:7px 11px; font-size:11px; min-height:38px; border-radius:3px; }
.room-filters button[aria-pressed="true"] { background:#fff; color:#365d4e; box-shadow:0 1px 4px #2334550d; font-weight:700; }
.room-book { position:relative; background:#b1c8b9; padding:8px 9px 13px 15px; border-radius:4px 13px 13px 4px; box-shadow:0 9px 20px #304a4020; perspective:1600px; isolation:isolate; }
.room-book::before { content:''; position:absolute; top:8px; bottom:13px; left:6px; width:8px; background:#618879; border-radius:2px; }
.room-book::after { content:''; position:absolute; left:19px; right:9px; bottom:5px; height:10px; border-bottom:1px solid #a2b4a9; background:repeating-linear-gradient(to bottom,#edeede 0px,#edeede 2px,#cdd5c6 2px,#cdd5c6 3px); border-radius:0 0 8px 0; z-index:-1; }
.room-book-page { min-height:390px; background:#fffef6; border:1px solid #e2e5d8; border-radius:1px 8px 8px 1px; box-shadow:inset 12px 0 20px -18px #48694f85; padding:24px 28px 23px; transform-origin:left center; touch-action:pan-y; }
.room-book-page[data-turn="next"] { animation:room-page-next .32s ease-out; }
.room-book-page[data-turn="previous"] { animation:room-page-previous .32s ease-out; }
.room-page-meta { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:19px; padding-bottom:12px; border-bottom:1px solid #c9d6c633; font-size:10px; letter-spacing:.07em; color:#678374; }
.room-case-grid { display:grid; grid-template-columns:1.12fr 1fr; gap:27px; align-items:start; }
.room-case-visual { min-width:0; margin:0; }
.room-case-visual img { display:block; width:100%; height:auto; aspect-ratio:1.49; object-fit:contain; background:#f0f2e9; border:1px solid #dfe5d9; border-radius:5px; }
.room-book-page img { user-select:none; -webkit-user-drag:none; }
.room-case-visual figcaption { margin-top:9px; font-size:10px; color:#778078; line-height:1.6; }
.room-case-copy h3 { font-size:25px; line-height:1.35; letter-spacing:-.045em; margin-bottom:12px; }
.room-case-copy>p { font-size:13px; color:#56695b; line-height:1.8; margin-bottom:17px; }
.room-case-notes { display:grid; gap:13px; margin:0; }
.room-case-notes dt { font-size:10px; font-weight:700; color:#477d6a; margin-bottom:4px; }
.room-case-notes dd { margin:0; font-size:12px; line-height:1.75; color:#5a6760; }
.room-case-links { display:flex; flex-wrap:wrap; gap:6px 17px; margin-top:21px; padding-top:15px; border-top:1px solid #c9d6c666; }
.room-case-links a,.room-related a,.room-related button { display:inline-flex; align-items:center; min-height:44px; font-size:12px; font-weight:650; color:var(--room-accent); text-decoration:none; border:0; padding:4px 0; background:transparent; line-height:1.6; }
.room-case-links a:hover,.room-related a:hover,.room-related button:hover { text-decoration:underline; text-underline-offset:4px; }
.room-book-controls { display:flex; justify-content:space-between; align-items:center; gap:10px; position:sticky; bottom:-25px; z-index:3; padding:17px 0 12px; background:#e8eeeaee; backdrop-filter:blur(8px); }
.room-page-button { display:flex; align-items:center; gap:12px; background:#fffef6; border:1px solid #aebfb3; border-radius:6px; padding:9px 15px; min-height:44px; font-size:12px!important; }
.room-page-button span { font-size:18px; }
.room-page-count { font-variant-numeric:tabular-nums; font-size:13px; font-weight:650; color:#587967; white-space:nowrap; }
.room-book-index { display:flex; justify-content:center; gap:6px; flex-wrap:wrap; }
.room-book-index button { width:34px; min-height:34px; border:1px solid transparent; border-radius:50%; background:transparent; color:#6f7d73; font-size:11px; }
.room-book-index button[aria-current="page"] { background:#477d6a; color:#fff; }
.room-book-hint { text-align:center; font-size:10px; line-height:1.7; color:#718374; margin-top:9px!important; }
.room-story-intro { margin-bottom:23px; }
.room-story-intro h3 { font-size:27px; line-height:1.45; letter-spacing:-.04em; margin-bottom:10px; }
.room-story-intro p { font-size:13px; color:#64716f; line-height:1.8; }
.room-scenario-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px; }
.room-scenario-card { display:grid; grid-template-columns:53px 1fr 20px; align-items:center; gap:15px; text-align:left; min-height:150px; border:1px solid #c0c6bc; border-radius:11px; background:#fffef8; padding:22px; transition:transform .2s,border-color .2s; }
.room-scenario-card:hover { transform:translateY(-3px); border-color:var(--room-accent); }
.room-scenario-icon { display:grid; place-items:center; width:53px; height:63px; border-radius:6px 16px 6px 6px; background:var(--room-soft); color:var(--room-accent); font-size:28px; font-weight:300; }
.room-scenario-card small { display:block; font-size:10px; letter-spacing:.07em; color:var(--room-accent); margin-bottom:7px; }
.room-scenario-card strong { display:block; font-size:17px; line-height:1.5; letter-spacing:-.02em; margin-bottom:6px; }
.room-scenario-card p { font-size:12px; color:#6b746f; line-height:1.7; font-weight:400; }
.room-scenario-card>span:last-child { color:var(--room-accent); }
.room-story-footnote { margin-top:18px!important; color:#677670; font-size:11px; line-height:1.75; }
.room-story-topline { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:17px; }
.room-story-back { background:transparent; border:0; padding:4px 0; min-height:44px; font-size:12px!important; color:var(--room-accent)!important; }
.room-step-count { font-size:10px; letter-spacing:.07em; color:var(--room-accent); }
.room-story-paper { border:1px solid #ccd0c5; border-radius:10px; background:#fffef8; padding:29px; animation:room-story-enter .22s ease-out; }
.room-story-paper .room-story-label { font-size:10px; color:var(--room-accent); margin-bottom:10px; letter-spacing:.09em; }
.room-story-paper h3 { font-size:27px; line-height:1.5; letter-spacing:-.04em; margin-bottom:12px; }
.room-story-paper>p:not(.room-story-label) { color:#60706b; font-size:13px; line-height:1.85; }
.room-choices { display:grid; grid-template-columns:1fr 1fr; gap:13px; margin-top:27px; }
.room-choice { display:flex; flex-direction:column; gap:9px; padding:22px; min-height:155px; text-align:left; border:1px solid #c5cec4; border-radius:8px; background:var(--room-soft); transition:background .18s,transform .18s; }
.room-choice strong { font-size:17px; line-height:1.55; }
.room-choice span { font-size:12px; line-height:1.8; color:#5e6d68; }
.room-choice b { margin-top:auto; padding-top:6px; font-size:12px; color:var(--room-accent); }
.room-choice:hover { background:#fff; transform:translateY(-2px); }
.room-choice-trail { display:flex; gap:6px; flex-wrap:wrap; margin:18px 0 0; }
.room-choice-trail span { border:1px solid #c9cec3; background:var(--room-soft); padding:5px 9px; border-radius:5px; font-size:10px; color:#617168; }
.room-result-layout { display:grid; grid-template-columns:1fr 1.1fr; gap:27px; align-items:start; }
.room-result-art { margin:0; }
.room-result-art img { width:100%; height:auto; display:block; border-radius:6px; }
.room-result-art figcaption { font-size:10px; line-height:1.7; color:#6c7b73; margin-top:9px; }
.room-result-layout .room-result-copy h3 { font-size:25px; }
.room-result-copy p { font-size:13px; color:#60706b; line-height:1.85; }
.room-result-steps { margin:21px 0 0; padding:0; list-style:none; display:grid; gap:13px; counter-reset:room-step; }
.room-result-steps li { position:relative; padding-left:33px; font-size:13px; color:#4d625a; line-height:1.8; counter-increment:room-step; }
.room-result-steps li::before { content:counter(room-step,decimal-leading-zero); position:absolute; left:0; top:2px; color:var(--room-accent); font-size:10px; font-weight:700; }
.room-result-note { margin-top:20px!important; padding:14px 17px; border-left:2px solid var(--room-accent); background:var(--room-soft); font-size:12px!important; line-height:1.8; }
.room-related { display:flex; flex-wrap:wrap; gap:7px 20px; margin-top:19px; padding-top:14px; border-top:1px solid #c3cec366; }
.room-transcript { background:var(--room-soft); padding:21px; border-radius:8px; display:grid; gap:17px; }
.room-transcript small { font-size:10px; color:var(--room-accent); }
.room-transcript p { font-size:14px; line-height:1.8; color:#334d50; }
.room-transcript .room-translation { background:#fffefa; border-radius:7px; padding:13px; font-size:12px; }
.room-result-motif { min-height:210px; background:var(--room-soft); border-radius:8px; display:grid; place-content:center; text-align:center; gap:14px; padding:20px; }
.room-result-motif strong { font-size:47px; color:var(--room-accent); font-weight:350; }
.room-result-motif span { font-size:13px; color:#596e66; line-height:1.8; }
.room-sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
@keyframes room-zoom-in { from { opacity:0; transform:scale(.45) rotateY(-9deg) translateY(35px); } to { opacity:1; transform:scale(1) rotateY(0) translateY(0); } }
@keyframes room-page-next { from { opacity:.35; transform:rotateY(18deg) translateX(15px); } to { opacity:1; transform:rotateY(0) translateX(0); } }
@keyframes room-page-previous { from { opacity:.35; transform:rotateY(-12deg) translateX(-10px); } to { opacity:1; transform:rotateY(0) translateX(0); } }
@keyframes room-story-enter { from { opacity:.3; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:768px) {
 .mc-home .mc-room-topics { justify-content:flex-start; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; }
 .mc-home .mc-room-topics a { padding:10px 9px; font-size:9px; line-height:1.6; }
 .mc-room-topics a>span { font-size:11px; }
 .mc-home main .room-invitation { text-align:left; }
 .room-explorer { width:calc(100% - 16px); max-height:calc(100dvh - 16px); border-radius:12px; }
 .room-explorer-head { padding:18px 17px 14px; gap:10px; }
 .room-explorer-head h2 { font-size:21px; }
 .room-explorer-head p { font-size:8px; }
 .room-close { padding:7px 10px; gap:9px; font-size:10px!important; }
 .room-areas { gap:5px; padding:0 17px 14px; }
 .room-areas button { padding:8px 11px; font-size:11px; flex:1; white-space:nowrap; }
 .room-explorer-content { padding:17px 12px 19px; }
 .room-intro { margin-inline:4px; gap:9px; }
 .room-intro p { font-size:11px; }
 .room-filters { width:100%; }
 .room-filters button { flex:1; min-height:38px; font-size:10px; }
 .room-book { padding:6px 6px 10px 11px; }
 .room-book::before { left:4px; width:6px; top:6px; bottom:10px; }
 .room-book::after { bottom:3px; left:12px; right:6px; }
 .room-book-page { min-height:0; padding:17px 16px; }
 .room-page-meta { font-size:8px; margin-bottom:15px; gap:7px; }
 .room-case-grid { grid-template-columns:1fr; gap:19px; }
 .room-case-copy h3 { font-size:23px; }
 .room-case-copy>p { font-size:12px; margin-bottom:15px; }
 .room-case-notes { gap:11px; }
 .room-case-notes dd { font-size:11px; }
 .room-case-links { margin-top:14px; gap:0 14px; }
 .room-case-links a { font-size:11px; }
 .room-book-controls { bottom:-19px; padding:12px 3px; }
 .room-page-button { font-size:11px!important; padding:9px 11px; gap:8px; }
 .room-page-count { font-size:11px; }
 .room-book-index button { min-height:36px; width:36px; }
 .room-story-intro { margin-inline:5px; }
 .room-story-intro h3 { font-size:24px; }
 .room-scenario-grid { grid-template-columns:1fr; }
 .room-scenario-card { min-height:133px; padding:18px; grid-template-columns:44px 1fr 13px; gap:13px; }
 .room-scenario-icon { width:44px; height:56px; font-size:26px; }
 .room-scenario-card strong { font-size:16px; }
 .room-story-paper { padding:23px 18px; }
 .room-story-paper h3 { font-size:24px; }
 .room-choices { grid-template-columns:1fr; gap:10px; margin-top:21px; }
 .room-choice { min-height:130px; padding:18px; gap:6px; }
 .room-choice strong { font-size:16px; }
 .room-result-layout { grid-template-columns:1fr; gap:21px; }
 .room-result-motif { min-height:135px; }
 .room-result-copy p,.room-result-steps li { font-size:12px; }
 .room-transcript { padding:18px; }
 .room-story-footnote { font-size:10px; margin-inline:5px; }
}
@media(prefers-reduced-motion:reduce) {
 .room-explorer[open] .room-explorer-shell,.room-book-page[data-turn],.room-story-paper { animation:none; }
 .room-hotspot-dot,.room-scenario-card,.room-choice { transition:none; }
}
