/* Opt-in only. Existing room pages have no has-room-story class. */
.has-room-story{--rs-gold:#b1874d;--rs-ink:#243e34;--rs-paper:#fffaf0;background:radial-gradient(ellipse at 65% 58%,#f4e8d5,#f6f3eb 70%)}
.has-room-story .site-header{left:40px;right:40px;top:20px}
.has-room-story .brand{font-size:20px}
.has-room-story .room-intro{display:none}
.has-room-story .scene-viewport{inset:72px 0 110px 280px;transition:filter .6s,opacity .6s}
.has-room-story .room-footer{left:340px;right:45px;bottom:20px}
.has-room-story .room-footer .provenance{font-size:12px;margin-top:9px}
.has-room-story .object-tray{background:#fffaf0b8;box-shadow:none;border-color:#405d351a;backdrop-filter:blur(12px)}
.has-room-story .object-tray button{font-size:14px;min-height:45px;min-width:84px;flex-direction:row}
.has-room-story .object-symbol{font-size:17px}
.has-room-story .scene-world{transition-duration:.75s;transition-timing-function:cubic-bezier(.2,.7,.2,1)}
.has-room-story .hotspot-dot{width:23px;height:23px;font-size:17px;opacity:.8}
.rs-panel{position:absolute;z-index:7;left:42px;top:50%;transform:translateY(-45%);width:286px;max-height:calc(100% - 130px);overflow-y:auto;padding:4px 4px 16px}
.rs-eyebrow{font-size:10px;letter-spacing:.18em;color:#9e7950;margin:0 0 24px}
.rs-title{font-family:Georgia,'Noto Serif KR',serif;font-size:37px;font-weight:400;letter-spacing:-.055em;line-height:1.32;word-break:keep-all;margin:0 0 36px;white-space:pre-line}
.rs-state{font-size:17px;line-height:1.5;letter-spacing:-.035em;margin:0 0 12px;color:var(--rs-ink);font-weight:700;word-break:keep-all}
.rs-meaning{font-size:16px;line-height:1.8;letter-spacing:-.025em;color:#647066;margin:0 0 26px;word-break:keep-all}
.rs-primary,.rs-secondary{display:block;border:0;border-radius:4px;padding:16px 20px;min-height:52px;text-align:center;font-size:15px;font-weight:700;letter-spacing:-.025em}
.rs-primary{background:#294c3d;color:#fffaf0;width:100%;box-shadow:0 8px 24px #294c3d15}
.rs-primary:hover{background:#163b2c}.rs-primary:disabled{opacity:.4;cursor:not-allowed}
.rs-secondary{background:transparent;color:#48624f;width:100%;margin-top:7px;border:1px solid #48624f35}
.rs-compare{display:flex;gap:0;border-top:1px solid #47613b25;margin-top:25px;padding-top:15px}
.rs-compare button{background:none;border:0;flex:1;text-align:left;font-size:11px;line-height:1.6;color:#859083;padding:8px 0}
.rs-compare button[aria-pressed=true]{color:#294c3d;font-weight:700}
.rs-compare button[aria-pressed=true]:before{content:'● ';font-size:8px;color:#b1874d}
.rs-compare button:disabled{opacity:.4;cursor:default}
.rs-disclosure{font-size:11px;line-height:1.6;color:#7c8279;margin:15px 0 0}
.rs-reset{position:absolute;z-index:7;right:40px;top:79px;background:none;border:0;border-bottom:1px solid #6b78553b;padding:4px 0;color:#6d7969;font-size:12px}
.rs-objects{position:absolute;inset:0;pointer-events:none}
.rs-objects button{pointer-events:auto}
.rs-book{position:absolute;width:11.3%;height:16.8%;border:0;background:none;padding:0;transform:translate(-50%,-50%) rotate(-12deg);filter:drop-shadow(3px 10px 7px #233b3b40);isolation:isolate}
.rs-book-cover{display:flex;position:absolute;inset:0 0 7%;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(100deg,#1b4739 0 6%,#2e5a44 7% 12%,#385f45 13% 90%,#274c37);border:1px solid #163528;border-radius:2px 5px 4px 1px;box-shadow:inset -1px 1px 0 #d9c99847,inset 7px 0 3px #0c322340;color:#f3dfad;z-index:2}
.rs-book-with-image{width:9.3%;height:22.3%}
.rs-book-artwork{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#f6eedb;border-radius:inherit}
.rs-cover-illustrated>.rs-book-small,.rs-cover-illustrated>.rs-book-name,.rs-cover-illustrated>.rs-book-rule{visibility:hidden}
.rs-book-pages{position:absolute;inset:7% 2% 0 3%;border-radius:1px 4px 3px 1px;background:repeating-linear-gradient(#c7bca0 0 1px,#ede4cb 1px 3px);transform:translate(3px,3px);box-shadow:2px 3px 0 #153827}
.rs-book-small{font-size:clamp(4px,.45vw,8px);letter-spacing:.12em;margin-bottom:12%;opacity:.8}
.rs-book-name{white-space:pre-line;line-height:1.45;font-size:clamp(9px,1.15vw,18px);font-weight:400;letter-spacing:-.03em}
.rs-book-rule{width:24%;height:1px;background:#d3c18d;margin-top:13%}
.rs-book-ribbon{position:absolute;z-index:3;width:10%;height:31%;bottom:-14%;left:64%;background:#bf875b;clip-path:polygon(0 0,100% 0,100% 100%,50% 82%,0 100%);box-shadow:1px 2px 3px #2222}
.rs-ribbon-two{left:42%;background:#7196a1;height:38%;bottom:-18%}
.rs-book-label{position:absolute;top:135%;left:50%;transform:translateX(-50%) rotate(12deg);white-space:nowrap;font-size:12px;color:#344f40;opacity:0;transition:opacity .2s;background:#fffaf0;padding:6px 9px;border-radius:3px}
.rs-book:hover .rs-book-label,.rs-book:focus-visible .rs-book-label{opacity:1}
.rs-artifact{position:absolute;width:11%;height:13%;padding:0;border:0;background:none;transform:translate(-50%,-50%);isolation:isolate}
.rs-artifact-visual{position:absolute;inset:0;display:block;background:#fdf1d3;border:1px solid #a8946566;transform:rotate(var(--turn));box-shadow:4px 8px 10px #41372030,-3px -2px 0 #f6e4ba;transition:transform .3s;clip-path:polygon(0 0,100% 0,100% 90%,94% 100%,0 100%)}
.rs-artifact:hover .rs-artifact-visual{transform:rotate(var(--turn)) translateY(-5px)}
.rs-artifact-lines{position:absolute;inset:25% 18% 20%;background:repeating-linear-gradient(transparent 0 13%,#7d80614d 13% 15%,transparent 15% 28%)}
.rs-artifact-seal{position:absolute;top:-10%;right:8%;display:grid;place-items:center;width:23%;aspect-ratio:1;border-radius:50%;background:#b17e4d;color:#fff4dd;font-size:clamp(9px,1.5vw,18px);box-shadow:0 2px 5px #60502a33}
.rs-artifact-label{position:absolute;top:120%;left:50%;transform:translateX(-50%);font-size:clamp(9px,1vw,13px);white-space:nowrap;background:#fffcf0de;border:1px solid #94785030;color:#344b3b;padding:7px 10px;border-radius:3px}
.rs-artifact[data-kind=envelope] .rs-artifact-visual{background:linear-gradient(30deg,#d6e0d6 49%,#eff3e8 50%);border-color:#87988780;box-shadow:4px 8px 10px #41372030;clip-path:none}
.rs-artifact[data-kind=envelope] .rs-artifact-lines{border:1px solid #71928b55;transform:rotate(-22deg);inset:17% 18% 10%;background:none}
.rs-artifact[data-kind=envelope] .rs-artifact-seal{background:#62897f}
.rs-threads{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.rs-threads path{fill:none;stroke:#a8834d;stroke-width:1.5;stroke-dasharray:3 5;opacity:.55;vector-effect:non-scaling-stroke}
.rs-connecting .rs-threads path{animation:rs-thread 1.1s ease both;stroke-dasharray:1;stroke-width:2.2;opacity:1}
@keyframes rs-thread{from{stroke-dashoffset:1;opacity:0}to{stroke-dashoffset:0;opacity:1}}
.rs-cinema{position:absolute;inset:0;z-index:8;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,#17372a18,#17372a94);opacity:0;pointer-events:none;color:#fff9e8;text-shadow:0 2px 20px #12281c;backdrop-filter:blur(1px)}
.rs-cinema-by{font-size:13px;letter-spacing:.15em;margin-top:-6%;color:#ecd8ac}
.rs-cinema-line{font-size:clamp(24px,3vw,46px);line-height:1.5;letter-spacing:-.04em;font-weight:400;max-width:700px;text-align:center;word-break:keep-all;margin:20px 40px}
.rs-connecting .rs-panel,.rs-connecting .room-footer,.rs-connecting .rs-reset{opacity:0;transition:opacity .35s}
.rs-input{position:fixed;inset:0 0 0 auto;margin:0;width:min(490px,95vw);max-width:none;max-height:100%;height:100%;border:0;border-left:1px solid #d5d9cb;padding:30px 34px;background:#fffdf6;color:#2d4535;box-shadow:-20px 0 70px #18362320;overflow-y:auto}
.rs-input::backdrop{background:#193b2d55;backdrop-filter:blur(3px)}
.rs-input-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}
.rs-hodu-name{font-size:17px;font-weight:700;display:flex;align-items:center;gap:10px}
.rs-hodu-image{width:48px;height:48px;object-fit:contain}
.rs-close{border:0;background:transparent;color:#677565;font-size:13px;padding:10px}
.rs-input h2{font-size:27px;line-height:1.4;letter-spacing:-.04em;word-break:keep-all;margin:0 0 12px;font-weight:400}
.rs-fixture-note{font-size:12px;line-height:1.7;color:#7c8375;margin:0 0 24px}
.rs-choices{display:flex;gap:8px;flex-wrap:wrap}
.rs-choices button{flex:1;background:#f2f0e7;border:1px solid #d9decf;border-radius:4px;padding:11px 9px;min-width:100px;font-size:14px;color:#62705b}
.rs-choices button[aria-pressed=true]{border-color:#3c6550;color:#234d35;background:#e8eee2}
.rs-other{margin:15px 0 25px;color:#7a826f;font-size:12px}
.rs-other summary{cursor:pointer;padding:8px 0}
.rs-other-choices{margin-top:8px}.rs-other-choices button{font-size:11px;min-width:90px}
.rs-speaker{font-size:12px;letter-spacing:.03em;color:#9b7650;margin:20px 0 8px}
.rs-input-context{font-size:14px;line-height:1.7;word-break:keep-all;color:#687361;margin:16px 0}
.rs-input-prompt{font-size:16px;line-height:1.65;word-break:keep-all;color:#294c3d;border-left:2px solid #b1874d;padding:2px 0 2px 14px;margin:18px 0}
.rs-input-quote{white-space:pre-line;font-size:18px;line-height:1.75;letter-spacing:-.035em;word-break:keep-all;margin:0;padding:8px 10px 20px 0;border-bottom:1px solid #d9ddcd;max-height:35vh;overflow-y:auto;scrollbar-width:thin}
.rs-proposal{font-size:14px;line-height:1.8;color:#697561;word-break:keep-all;margin:18px 0}
.rs-input-warning{font-size:13px;line-height:1.6;color:#926741;margin:0 0 16px}
.rs-input .rs-primary{margin-top:8px;position:sticky;bottom:0}
@media(max-height:780px){.rs-panel{top:104px;transform:none;max-height:calc(100% - 130px)}.rs-title{font-size:30px;margin-bottom:22px}.rs-eyebrow{margin-bottom:17px}.rs-meaning{font-size:14px;margin-bottom:18px}.rs-compare{margin-top:14px}.rs-primary,.rs-secondary{padding:12px 16px;min-height:46px}.rs-disclosure{margin-top:10px}}
/* Narrow screens stack the room, story and object tray in one scrollable view. */
@media(max-width:960px){
  .has-room-story{display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior-y:contain}
  .has-room-story .site-header{position:relative;inset:auto;flex:0 0 auto;order:0;margin:12px 24px 0;min-height:52px}
  .has-room-story .scene-viewport{position:relative;inset:auto;flex:0 0 auto;order:1;width:100%;height:clamp(270px,44svh,420px);margin-top:10px}
  .has-room-story .rs-panel{position:relative;inset:auto;transform:none;order:2;flex:0 0 auto;width:auto;max-height:none;overflow:visible;margin:0 26px;padding:18px 0 8px}
  .has-room-story .rs-title{font-size:clamp(28px,4.4vw,34px);margin-bottom:20px}
  .has-room-story .rs-eyebrow{margin-bottom:14px}
  .has-room-story .rs-meaning{font-size:16px;margin-bottom:20px}
  .has-room-story .rs-compare{margin-top:18px}
  .has-room-story .rs-compare button{font-size:12px;min-height:44px}
  .has-room-story .room-footer{position:relative;inset:auto;order:3;flex:0 0 auto;margin:18px 22px calc(20px + var(--safe-bottom))}
  .has-room-story .object-tray{width:100%;max-width:100%}
  .has-room-story .room-footer .provenance{font-size:12px;line-height:1.6;word-break:keep-all}
  .has-room-story .rs-reset{top:76px;right:24px;min-height:44px;padding:10px 0}
  .has-room-story .scene-loading{top:230px}
  .has-room-story .rs-cinema{position:fixed}
}
@media(max-width:600px){
  .has-room-story .site-header{margin-inline:20px}
  .has-room-story .brand{font-size:18px}
  .has-room-story .brand img{width:26px;height:26px}
  .has-room-story .rs-panel{margin-inline:22px}
  .has-room-story .room-footer{margin-inline:18px}
  .rs-input{width:100%;max-height:100dvh;height:100dvh;padding:20px 22px calc(20px + env(safe-area-inset-bottom,0px))}
  .rs-input-head{margin-bottom:20px}
  .rs-input h2{font-size:25px}
  .rs-input-quote{font-size:17px;max-height:none;overflow:visible}
  .rs-cinema-line{font-size:26px;margin-inline:24px}
}
@media(prefers-reduced-motion:reduce){.rs-connecting .rs-threads path{animation:none}.rs-cinema{display:none}}
