:root{font-family:system-ui,"Noto Sans JP",sans-serif;color:#353e35;background:#f4efe4;--wall:#ebe3d2;--card:#fffdf6;--ink:#353e35;--muted:#667163;--line:#cfc8b6;--accent:#326b55;--frame:#9b7048;color-scheme:light}*{box-sizing:border-box}body{margin:0}body[data-theme=sage]{--wall:#dfe6da;--card:#f7faf4;--line:#bccbb7;--accent:#356547}body[data-theme=night]{--wall:#243832;--card:#f4ecd9;--ink:#f6efde;--line:#7b9283;--muted:#bfd0bf;background:#172a25;color:var(--ink);color-scheme:dark}body[data-frame=gold]{--frame:#bd9849}body[data-frame=simple]{--frame:#515b50}a{color:inherit}button,.file-button{font:inherit;cursor:pointer;border:1px solid var(--line);background:var(--card);color:#353e35;border-radius:9px;padding:11px 16px;min-height:44px;font-weight:650;line-height:1.5}button:hover,.file-button:hover{filter:brightness(.96)}button:disabled{opacity:.55;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #c48b37;outline-offset:3px}button.primary{color:white;background:var(--accent);border-color:var(--accent)}[hidden]{display:none!important}.topbar{display:flex;align-items:center;gap:24px;padding:18px max(20px,calc((100vw - 1180px)/2));border-bottom:1px solid var(--line);font-size:14px}.topbar span{flex:1;color:var(--muted)}.brand{font-weight:800;text-decoration:none;font-size:19px;white-space:nowrap}main{max-width:1240px;margin:auto;padding:34px 30px}.intro{text-align:center}.eyebrow{font-size:11px;letter-spacing:.28em;color:var(--muted);font-weight:800}h1{font-family:Georgia,"Yu Mincho",serif;font-size:clamp(26px,4vw,40px);margin:15px 0 10px;overflow-wrap:anywhere}#room-bio{color:var(--muted);white-space:pre-wrap;max-width:700px;margin:0 auto 15px;overflow-wrap:anywhere;line-height:1.7}.badge{display:inline-block;margin:0;border:1px solid var(--line);border-radius:30px;padding:4px 12px;font-size:12px;color:var(--muted)}.toolbar{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin:26px 0 8px}#status{min-height:24px;text-align:center;font-size:14px;white-space:pre-wrap;color:var(--muted)}.wall{background:var(--wall);border:1px solid var(--line);border-radius:20px;padding:38px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:38px 30px;box-shadow:inset 0 4px 30px #00000006}.exhibit{min-width:0;align-self:start;text-align:center;position:relative}.exhibit.featured{grid-column:1/-1;max-width:440px;width:100%;justify-self:center}.frame{background:var(--card);border:9px solid var(--frame);padding:13px;box-shadow:0 8px 12px #0002,inset 0 0 0 1px #0001;aspect-ratio:1/1;width:100%;display:flex;align-items:center;justify-content:center;border-radius:2px;overflow:hidden}.featured .frame{border-width:12px}.frame canvas{width:100%;height:100%;object-fit:contain}.empty .frame{border:2px dashed #a69d87;box-shadow:none;background:transparent;flex-direction:column;gap:12px;color:var(--muted)}.plus{font-size:38px;font-weight:300}.frame .title-emblem{font-size:55px;color:#b28732}.plaque{background:var(--card);color:#353e35;border:1px solid #d7ccad;border-radius:3px;margin:14px auto 0;padding:10px 13px;max-width:96%;box-shadow:0 3px 4px #00000008;overflow-wrap:anywhere}.plaque strong{font-size:15px;display:block}.plaque .meta{font-size:12px;color:#6d746a;margin-top:5px;display:block;line-height:1.7}.plaque p{font-size:13px;margin:7px 0 0;white-space:pre-wrap}.slot-controls{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;margin-top:10px}.slot-controls button{min-height:36px;padding:5px 9px;font-size:12px}.spotlight{position:absolute;top:-20px;left:0;right:0;font-size:10px;letter-spacing:.16em;color:var(--muted);pointer-events:none}.room-note{text-align:center;font-size:13px;color:var(--muted);line-height:1.7;margin:25px 0 35px}.notes{max-width:800px;margin:24px auto;border-top:1px solid var(--line);padding-top:20px;color:var(--muted);font-size:13px;line-height:1.9}.notes h2{font-size:16px;color:var(--ink)}.notes button,.notes .file-button{font-size:12px;margin:4px 4px 4px 0;display:inline-block}.notes #unpublish{color:#914c34}footer{max-width:1180px;margin:10px auto 0;padding:24px 20px;border-top:1px solid var(--line);font-size:12px;color:var(--muted);display:flex;justify-content:space-between}dialog{width:min(660px,calc(100% - 24px));max-height:calc(100dvh - 32px);border:1px solid #c6bea6;border-radius:16px;padding:24px;background:#fffdf7;color:#353e35;box-shadow:0 20px 70px #0003;overflow:auto}dialog::backdrop{background:#14251eb3;backdrop-filter:blur(3px)}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.dialog-head h2{font-size:20px;margin:0}.dialog-head button{font-size:13px;white-space:nowrap}.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}label{display:block;font-size:14px;font-weight:650;margin:14px 0}input:not([type=checkbox]),textarea,select{display:block;width:100%;font:inherit;margin-top:7px;padding:12px;border-radius:8px;border:1px solid #c7cbbf;background:#fff;color:#353e35}textarea{resize:vertical}.check{display:flex;align-items:center;gap:8px}.check input{width:20px;height:20px}.hint{font-size:12px;color:#687263;line-height:1.8}.tabs{display:flex;gap:6px;flex-wrap:wrap}.tabs button{font-size:13px;padding:9px 11px}.tabs button[aria-pressed=true]{background:#326b55;color:#fff}.pick-list{display:grid;gap:10px;margin:15px 0}.pick-item{text-align:left;display:flex;align-items:center;gap:12px;font-weight:400}.pick-item canvas{width:65px;height:65px;flex-shrink:0;background:#fff}.pick-item strong{display:block}.pick-item small{display:block;font-size:12px;color:#6d746a;margin-top:5px}.detail-preview{width:min(100%,410px);aspect-ratio:1;display:block;margin:0 auto 20px;background:#fff}.detail-actions{display:flex;gap:8px;flex-wrap:wrap}#transfer .file-button{display:block;text-align:center}#transfer-status{font-size:13px}.play-dialog{width:min(1200px,calc(100% - 20px));height:calc(100dvh - 24px);padding:12px;overflow:hidden}.play-dialog .dialog-head{margin:0}.play-dialog h2{font-size:15px}#play-frame{border:0;width:100%;height:calc(100% - 100px);background:#fff}.play-dialog #play-status{font-size:12px;margin:8px 0}.preview-table{width:100%;font-size:14px;border-collapse:collapse;margin:15px 0}.preview-table td{border-bottom:1px solid #dedbcf;padding:10px}.bytes{font-size:12px}body:has(.play-dialog[open]){overflow:hidden}@media(max-width:650px){.topbar{padding:15px;gap:12px}.topbar span{display:none}.topbar #my-room{margin-left:auto;font-size:12px}main{padding:24px 14px}.wall{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 16px;padding:32px 16px 23px;border-radius:13px}.exhibit.featured{max-width:330px}.frame{border-width:6px;padding:7px}.featured .frame{border-width:9px}.plaque{padding:9px 7px;max-width:100%}.plaque strong{font-size:13px}.plaque .meta{font-size:11px}.toolbar{gap:7px}.toolbar button{font-size:12px;padding:10px}.slot-controls button{font-size:11px;min-height:34px;padding:5px 7px}.two{grid-template-columns:1fr}dialog{padding:17px}.dialog-head h2{font-size:18px}h1{font-size:28px}.room-note{margin:20px 0}.notes{margin-top:10px}}@media(prefers-reduced-motion:no-preference){.exhibit{animation:arrive .35s ease both}@keyframes arrive{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}}
