/* A single 16:9 room; no edge pan or document scroll. */
.room-canvas{width:min(100vw,177.7778dvh);aspect-ratio:16/9;container-type:inline-size}
.room-world,.room-canvas[data-view=bed] .room-world{inset:0;width:100%;transform:none;transition:none}.room-art{object-fit:fill}.room-canvas:after{background:linear-gradient(180deg,#18231d08,transparent 65%,#18231d25);box-shadow:none}
.room-hud{left:3%;top:4%;padding:12px 17px;background:#f1eadbc9;color:#33463e;border-left:2px solid #737e63;backdrop-filter:blur(8px)}.room-hud h1{font-size:clamp(15px,1.2cqw,23px);margin:6px 0 9px}.room-hud .eyebrow{color:#677363;font-size:10px}.room-badge{display:none}.room-date,.room-date span{color:#566650;font-size:12px}.room-actions{position:absolute;right:3%;top:4%;display:flex;gap:8px;z-index:5}.room-actions button{padding:9px 14px;border:1px solid #c7c7b299;background:#f1eadbcc;color:#465342;font-size:13px;backdrop-filter:blur(8px)}
.hotspot.computer{left:11.5%;top:35%;width:15%;height:20%}.hotspot.computer .hotspot-caption{bottom:10%;font-size:14px}.hotspot.bed{left:71%;top:53%;width:27%;height:35%}.hotspot.bed .hotspot-caption{left:55%;bottom:15%;opacity:1;font-size:15px;padding:10px 17px;background:#293d31d9}
.room-computer-screen{left:15.1%;top:37.9%;width:10.2%;height:13.6%;padding:3px;transform:skewY(-1deg);background:linear-gradient(140deg,#426b65,#254b45)}.mini-os{font-size:.48cqw}.mini-apps{padding:5% 0}.mini-apps button{gap:3px}.mini-apps button>span{font-size:1.2cqw}.mini-apps small{font-size:.48cqw}.mini-taskbar{font-size:.42cqw;margin:0 -3px -3px}.desk-letter{left:29.2%;top:55.5%;width:6.7%;height:9%;padding:.7%;transform:rotate(-5deg)}.desk-letter small{font-size:.43cqw}.desk-letter b{font-size:.69cqw;line-height:1.3}.desk-letter>span{font-size:.7cqw}
.village-window{left:32%;top:13%;width:47%;height:36%}.delivery-van{left:50%;top:44%;width:3%;height:3.55%}.delivery-van.van-1{left:56%;top:47%;transform:scale(.92)}.delivery-van.van-2{left:61%;top:49%;transform:scale(.9)}.village-life[data-event=ordinary] .van-0{visibility:visible;filter:sepia(.6) brightness(.8)}.parcel-stack{left:56%;top:44%;width:1.1%;height:1.6%}.workshop-light{left:68.4%;top:42.2%;width:2.2%;height:2.6%;box-shadow:0 0 20px #f8cf6266;background:#efd6a066}.window-caption{font-size:16px}
/* The glass itself remains 4:3, surrounded by the physical monitor casing. */
.scene-computer{padding:20px;background:linear-gradient(#213c2b12,#1d2b2220),url('room-modern.webp') center/cover no-repeat;animation:screen-approach .5s ease-out;transform-origin:25% 50%}
.scene-computer .monitor{width:min(76vw,calc((100dvh - 130px)*4/3 + 52px));max-width:none;height:auto;padding:24px 26px 48px;border:2px solid #d6d3bb;border-radius:22px;background:linear-gradient(135deg,#e5e2cf,#b7b8a7 80%);box-shadow:inset 3px 3px 1px #ffffe9,inset -4px -5px 2px #8e9687,0 28px 70px #17231e99;flex:none}
.scene-computer .desktop{width:100%;height:auto;aspect-ratio:4/3;flex:none;min-height:0;border:4px solid #536153;border-radius:7px;box-shadow:0 0 0 2px #a4ad98,inset 0 0 16px #132c2926;container-type:inline-size}
.scene-computer .monitor:after{display:block;content:'S A N G O L';bottom:16px;color:#697866;font-size:10px;letter-spacing:2px}.scene-computer .monitor-power{display:block;right:35px;bottom:17px;background:#9bbb7c;width:7px;height:7px}
.scene-computer .workspace{margin:10px;min-height:0;padding:0}.scene-computer .app-window{border-width:1px;min-height:0}.scene-computer #content{min-height:0;max-height:none;font-size:16px;scrollbar-gutter:stable}
.computer-menu{min-height:43px;font-size:13px;padding:7px 13px}.computer-menu small{font-size:10px}.computer-menu button{font-size:13px;min-height:30px}.app-titlebar{font-size:15px;min-height:36px;padding:5px 10px}.app-window-actions button{width:27px;height:25px;font-size:20px}.taskbar{min-height:43px}.taskbar button{height:32px;font-size:13px!important}.taskbar-right{font-size:12px;height:32px}.taskbar #running-app button{max-width:240px}
.desktop-icons{grid-template-columns:156px;gap:16px}.desktop-icon{width:156px;min-height:120px;gap:12px}.desktop-icon .icon-picture{width:60px;height:60px}.desktop-icon .icon-picture:after{width:37px;height:37px}.desktop-icon .icon-caption{font-size:15px}.desktop-icon .icon-count{right:34px;font-size:12px}.desktop-watermark .pc-name{font-size:90px}.desktop-home{padding:26px}
.panel,.neighbors{padding:25px 28px}.character-banner{padding:24px 28px}.character-banner h2{font-size:34px;margin:0 0 8px}.character-banner p{font-size:16px;margin:0}.character-banner .eyebrow{font-size:12px}.section-line h3{font-size:18px}.section-line>span{font-size:14px}.people-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:20px}.person-card{grid-template-columns:110px minmax(0,1fr);gap:12px 18px;padding:18px}.person-card .portrait{width:110px;height:110px}.portrait{background-image:url('portraits-v7.webp')}.person-info b{font-size:25px}.person-info>span{font-size:15px}.person-info small{font-size:13px;display:block}.speech-badge,.visited{font-size:12px}.person-card.has-news{border-left:3px solid #b28d4c}.speech-badge{background:#e8d7a6;color:#61491b}
.conversation{padding:20px 26px 28px}.conversation-toolbar{grid-template-columns:auto 1fr auto;gap:14px}.conversation-toolbar>span,.conversation-toolbar .text-button,.conversation-toolbar .back{font-size:14px}.conversation-stage{grid-template-columns:170px minmax(0,1fr);gap:24px;padding:22px 0}.speaker h2{font-size:28px}.speaker p{font-size:15px}.speaker-label{font-size:12px}.speech-panel{width:100%;min-width:0;padding:22px 24px}.story-title{font-size:14px;line-height:1.65}.speech-text.article-body{display:block;width:100%;max-width:none;min-width:0;font-size:23px;line-height:1.8;letter-spacing:-.3px;white-space:normal;word-break:normal;overflow-wrap:break-word;text-wrap:wrap;margin:22px 0;min-height:145px}.dialogue-controls{grid-template-columns:95px 1fr 145px;gap:10px}.dialogue-controls button{font-size:15px;min-height:43px}.dialogue-controls>span{font-size:13px}.dialogue-tools{gap:16px;flex-wrap:wrap}.dialogue-tools button{font-size:13px}.followups{display:flex;flex-wrap:wrap;gap:8px;border-top:1px solid #d5dbc7;padding-top:14px;margin:18px 0}.followups button{font-size:14px;padding:8px 12px;background:#edf0e2}.followup-answer{width:100%;font-size:17px;line-height:1.8;background:#e8edde;border-left:2px solid #8c9b77;padding:14px;margin:4px 0}
.history-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;font-size:14px}.history-heading strong{color:#886421;font-size:13px}.previous-conversations button{display:flex;justify-content:space-between;gap:15px;align-items:center;font-size:15px;padding:12px 14px;border-bottom:1px solid #e1e4d6}.previous-conversations button.unread{border-left:3px solid #bc9755;background:#f5edda;color:#574c30}.previous-conversations button b{flex:none;font-size:12px;color:#967027}.previous-conversations button.current{background:#e7eedf;border-left-color:#82966c}
.stock-tab{font-size:16px}.stock-tab small{font-size:13px}.stock-tab strong{font-size:21px}.trade-grid{grid-template-columns:minmax(0,1fr) 285px;gap:18px}.order-box{display:block;padding:20px}.order-box h3{font-size:20px}.order-tabs button,.order-box label,.order-submit{font-size:16px}.order-available{font-size:15px}.order-available b{font-size:26px}.order-available small{font-size:13px}.order-box input{font-size:20px;min-height:43px}.order-percentages button{font-size:14px;min-height:36px}.order-total{font-size:15px}.order-validation{font-size:13px}.order-box .subtext{font-size:12px}.chart-top small,.chart-legend{font-size:13px}.chart-top b{font-size:34px}.chart-svg{height:220px}.financials span{font-size:13px}.financials b{font-size:21px}table{font-size:15px}th{font-size:13px}.small,.subtext{font-size:14px}
.notebook>.section-line button,.note-tabs button{font-size:15px}.note-tabs button{padding:10px 15px}.notebook-order{font-size:13px;margin:22px 0 12px}.pinned-diagram{padding:18px;background:#eef2e6;border:1px solid #d6dfca;margin:18px 0 24px}.pinned-diagram .section-line{margin-bottom:14px}.diagram-toolbar input,.diagram-toolbar button{font-size:14px;min-height:39px}.node-body,.edge-text{font-size:14px}.note-card textarea{font-size:16px}.note-card label,.note-source{font-size:13px!important}.note-actions .text-button{font-size:14px}.note-card blockquote{font-size:18px}.diagram-scroll .diagram{height:290px;min-width:500px}.diagram-bottom{font-size:13px}.scene-computer .empty{font-size:15px}
#archive-banner{padding:8px 14px;font-size:13px;color:#e8e7cf;background:#58685c;text-align:center;flex:none}.archive-order p{font-size:16px;line-height:1.8}
/* Title and epilogue remain outside the in-world OS. */
#narrative{position:fixed;inset:0;z-index:30;overflow:auto;background:#1e3029 url('room-modern.webp') center/cover no-repeat;color:#f1e8d5;transition:opacity .45s ease;opacity:1;isolation:isolate}#narrative.fading{opacity:0;pointer-events:none}.title-shade{position:absolute;inset:0;background:linear-gradient(90deg,#172b25ef 0%,#1f3028cf 28%,#23352a45 65%,#293b2b10)}.title-content{position:relative;margin:clamp(60px,13vh,160px) 0 60px clamp(28px,9vw,180px);max-width:550px}.title-kicker{font-size:13px;letter-spacing:4px;color:#cfbf9b;display:block}.title-content h1{font-family:'Noto Serif KR',serif!important;font-size:clamp(44px,4.6vw,88px);font-weight:600;line-height:1.35;letter-spacing:-4px;margin:30px 0}.title-content h1 em{font-family:inherit!important;font-style:normal;color:#e2c998}.title-content p{font-size:18px;letter-spacing:.4px;color:#d8d9c9;margin:20px 0 45px}.title-actions{display:flex;flex-direction:column;align-items:stretch;gap:13px;width:285px}.title-actions button,#narrative .ending-actions button,#ending-next{font-size:17px;padding:15px 21px;text-align:left;color:#ebe6d6;background:#e6dcc90b;border:1px solid #c8bc9760;border-radius:0;line-height:1.5}.title-actions .title-primary{background:#e6dfc8;color:#33483b;border-color:#e6dfc8;display:flex;justify-content:space-between;font-weight:600}.title-actions button:hover,#narrative button:hover{filter:none;background:#c9b987;color:#253e30}.title-save{display:block;font-size:12px;letter-spacing:1px;margin-top:24px;color:#b6bca4}.ending-backdrop{position:absolute;inset:0;z-index:-1;background:linear-gradient(#172b26a8,#101f1aeb),url('room-modern.webp') center/cover}.ending-backdrop.stay{background:linear-gradient(#332d29a6,#181f18ed),url('room-modern.webp') center/cover}.ending-copy{max-width:900px;width:calc(100% - 60px);margin:min(21vh,220px) auto 70px;text-align:center;animation:ending-arrive 1.2s ease-out}.ending-copy h2{font-family:'Noto Serif KR',serif!important;font-size:clamp(27px,2.5vw,46px);font-weight:600;line-height:1.65;margin:32px 0}.ending-copy p{font-size:clamp(16px,1.3vw,22px);line-height:2;color:#dbdcc9;margin:20px 0 45px}.ending-copy #ending-next{display:block;margin:0 auto;min-width:160px;text-align:center}.ending-page{display:block;font-size:12px;color:#9eaa93;margin-top:20px;letter-spacing:3px}.ending-copy.final-card{margin-top:8vh;max-width:660px}.ending-ledger{display:grid;grid-template-columns:1fr auto;text-align:left;padding:22px 0;border-block:1px solid #bdba9650;gap:14px 25px;font-size:16px;color:#d6d4bd}.ending-ledger b{font-weight:500;font-variant-numeric:tabular-nums}.ending-copy .ending-fine{font-size:14px;line-height:1.9;margin:25px 0;color:#b1bda9}.ending-actions{display:flex;justify-content:center;gap:12px}.workshop-letter p{font-size:16px;line-height:1.9}.workshop-letter h3{font-family:'Noto Serif KR',serif!important;font-size:25px;margin:20px 0}.letter-date{font-size:12px;letter-spacing:2px;color:#829070}.letter-signature{text-align:right}.goal-amount{display:flex;justify-content:space-between;gap:15px;border-bottom:1px solid #d5dbc5;padding:14px 0}.modal-body .small{font-size:13px}.modal-footer button{font-size:15px}.modal-head h2{font-size:21px}
@keyframes screen-approach{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes ending-arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1000px){.scene-computer{padding:8px}.scene-computer .monitor{width:min(96vw,calc((100dvh - 85px)*4/3 + 32px));padding:16px 16px 35px;border-radius:15px}.scene-computer .monitor:after{bottom:11px}.scene-computer .monitor-power{bottom:12px}.people-grid{gap:10px}.person-card{grid-template-columns:80px minmax(0,1fr);padding:12px;gap:10px}.person-card .portrait{width:80px;height:80px}.person-info b{font-size:21px}.person-info small{display:none}.conversation-stage{grid-template-columns:120px minmax(0,1fr);gap:16px}.speech-panel{padding:17px}.speech-text.article-body{font-size:20px;min-height:100px}.trade-grid{grid-template-columns:minmax(0,1fr) 235px}.order-box{padding:15px}.taskbar-right #save-status{display:none}}
@media(max-width:650px){.scene-computer .monitor{width:98vw;padding:8px 8px 27px}.scene-computer .desktop{aspect-ratio:4/3}.computer-menu{font-size:10px;min-height:30px;padding:4px}.computer-menu small{display:none}.computer-menu button{font-size:10px;min-height:25px}.scene-computer .workspace{margin:4px}.taskbar{min-height:30px;padding:2px}.taskbar button{height:24px;font-size:10px!important}.taskbar-right{height:24px;font-size:9px}.desktop-home{overflow:auto;padding:12px}.desktop-icons{grid-template-columns:repeat(2,100px);gap:9px}.desktop-icon{width:100px;min-height:83px}.desktop-icon .icon-picture{width:40px;height:40px}.desktop-icon .icon-picture:after{width:27px;height:27px}.desktop-icon .icon-caption{font-size:10px}.desktop-watermark{display:none}.room-hud{padding:8px;top:3%}.room-hud h1{font-size:13px;margin:3px 0}.room-hud .eyebrow{font-size:7px}.room-date,.room-date span{font-size:8px}.room-actions button{font-size:10px;padding:5px 8px}.hotspot.bed .hotspot-caption{font-size:10px;padding:7px}.person-card{display:flex}.people-grid{grid-template-columns:1fr 1fr}.person-card .portrait{width:90px;height:90px}.person-info>span{font-size:12px}.speech-badge,.visited{font-size:10px}.panel,.neighbors,.conversation{padding:16px}.character-banner{padding:18px}.character-banner h2{font-size:24px}.conversation-stage{display:flex;flex-direction:column}.speaker{display:grid;grid-template-columns:76px 1fr;text-align:left}.speaker .portrait.large{width:76px}.speech-panel{padding:15px}.speech-text.article-body{font-size:18px}.conversation-toolbar{grid-template-columns:1fr 1fr}.conversation-toolbar>span{font-size:12px}.dialogue-controls{grid-template-columns:65px 1fr 120px}.dialogue-controls button{font-size:12px}.trade-grid{grid-template-columns:1fr}.history-heading{font-size:12px}.previous-conversations button{font-size:13px}.previous-conversations button b{font-size:10px}.title-content{margin-top:10vh}.title-content p{font-size:15px}.ending-actions{flex-wrap:wrap}.ending-copy{margin-top:12vh}.room-computer-screen{padding:1px}.mini-taskbar{margin:0 -1px -1px}.mini-apps{gap:0}.desk-letter{gap:0}.pinned-diagram{padding:12px}.note-tabs button{font-size:12px;padding:8px}.notebook>.section-line button{font-size:13px}}
@media(prefers-reduced-motion:reduce){#narrative{transition:none}.ending-copy,.scene-computer{animation:none}}
.scene-computer{background-image:linear-gradient(#213c2b12,#1d2b2220),url('pc-background.webp')}
/* A flat envelope rests on the desk surface, clear of the chair back. */
.desk-letter{left:32%;top:55.2%;width:7.2%;height:4.8%;padding:.65%;display:flex;align-items:flex-start;justify-content:center;gap:0;transform:perspective(500px) rotateX(57deg) rotateZ(-4deg);transform-origin:center;background:linear-gradient(155deg,#f1e5c8,#d9cbb0);border:1px solid #c9b797;box-shadow:1px 3px 3px #42392950;border-radius:1px}
.desk-letter:before{content:'';position:absolute;inset:0;background:linear-gradient(155deg,transparent 49%,#bba98c55 50%,transparent 51%);pointer-events:none}
.desk-letter small{font-size:clamp(6px,.58cqw,11px);color:#696450;position:relative}.desk-letter b,.desk-letter>span{display:none}.desk-letter:hover,.desk-letter:focus-visible{transform:perspective(500px) rotateX(57deg) rotateZ(-4deg) translateY(-2px);background:#f3e7cb;box-shadow:2px 5px 5px #42392955;filter:none}
