/* Direct manipulation instrument room. */
dialog.instrument-modal{width:1180px;max-width:calc(100% - 32px);background:#f7f4ed}.instrument-modal #modal-content{padding:27px 30px 20px}.room-title{display:flex;justify-content:space-between;align-items:center;gap:20px}.room-title h2{font-size:28px!important;margin-bottom:2px!important;letter-spacing:-.7px}.room-title p{font-size:11px!important}.recordings-badge{display:flex;align-items:center;gap:7px;color:#597456;background:#e7ecdf;border:1px solid #d4ddc6;border-radius:25px;padding:7px 13px;font-size:10px;white-space:nowrap}.recordings-badge svg{width:15px;height:15px}.instrument-tabs{display:flex;gap:11px;margin:22px 0;overflow:auto;padding-bottom:3px}.instrument-tabs>button{display:flex;align-items:center;gap:9px;border:1px solid #ded5c4;background:#f2ecdf;border-radius:7px;min-width:142px;padding:7px 10px;text-align:right;transition:.2s;flex-shrink:0}.instrument-tabs>button.selected{border-color:#ac643f;background:#eee0cb;box-shadow:0 0 0 1px #b4805733}.instrument-tabs img{width:47px;height:40px;object-fit:cover;mix-blend-mode:multiply;border-radius:4px}.instrument-tabs span{font-size:12px;font-weight:650}.instrument-tabs small{display:block;font-size:8px;font-weight:400;color:#8f8c75}.room-layout{display:grid;grid-template-columns:minmax(0,1fr) 278px;gap:22px}.room-left{min-width:0}.instrument-stage{border-radius:10px;border:1px solid #4d5b46;background:radial-gradient(ellipse at 48% 52%,#455143 0,#27392f 42%,#1d2c25 90%);color:#efe5ca;position:relative;overflow:hidden;box-shadow:inset 0 0 50px #091b1429;user-select:none;-webkit-user-select:none}.instrument-stage:before{content:'';position:absolute;inset:0;background-image:radial-gradient(#ffffff07 .6px,transparent .6px);background-size:5px 5px;pointer-events:none}.stage-top{position:relative;z-index:2;display:flex;justify-content:space-between;align-items:center;padding:17px 19px;font-size:15px}.stage-top small{display:block;font-size:8px;opacity:.45}.stage-indicator{font-size:8px;color:#c5d5b5;padding:4px 9px;background:#9abc6c16;border:1px solid #99b27240;border-radius:20px}.stage-indicator:before{content:'';display:inline-block;width:5px;height:5px;border-radius:100%;background:#a8b995;margin-left:5px}.stage-indicator.pending{color:#d1b081;border-color:#bd955940;background:#bb803b13}.stage-indicator.pending:before{background:#b58a55}.instrument-art{height:345px;position:relative;display:grid;place-items:center}.instrument-art>svg{height:100%;width:100%;fill:initial;stroke:none;stroke-width:initial;stroke-linecap:initial;stroke-linejoin:initial;touch-action:none;cursor:crosshair;overflow:visible}.instrument-art.zoomed{height:345px}.stage-bottom{position:relative;display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 18px;background:#15251b4a;border-top:1px solid #b2bc9722;min-height:49px}.stage-bottom>span{font-size:9px;color:#bdc6a8;line-height:1.8}.stage-bottom>span.missing{color:#d8ab7a}.stage-bottom button{font-size:9px;color:#d5c6a4;display:flex;gap:5px;align-items:center;white-space:nowrap;padding:3px}.stage-bottom button svg{width:13px}.instrument-string{transform-origin:center;transition:stroke .12s}.instrument-string.vibrating{stroke:#fff9d3;filter:drop-shadow(0 0 3px #fff8d0);animation:stringVibration .22s linear}.sounding{box-shadow:inset 0 0 75px #99ae4420}@keyframes stringVibration{0%,100%{transform:translateY(0)}15%{transform:translateY(2.5px)}30%{transform:translateY(-2px)}45%{transform:translateY(1.7px)}60%{transform:translateY(-1.4px)}75%{transform:translateY(.8px)}90%{transform:translateY(-.5px)}}.zone-guide{fill:none;stroke:#3c382311;stroke-width:1;stroke-dasharray:4 9;pointer-events:none}.art-label{font:13px Vazir;fill:#6b583463;pointer-events:none}.rippling{animation:hitRipple .5s ease-out}@keyframes hitRipple{from{r:7;opacity:.9;stroke-width:3}to{r:70;opacity:0;stroke-width:.7}}.interaction-guide{display:flex;gap:8px;align-items:center;padding:13px 4px;color:#b18359}.interaction-guide p{font-size:10px!important;line-height:1.9!important;color:#84836f!important}.interaction-guide svg{width:20px;height:20px;flex-shrink:0}.string-controls{display:flex;gap:8px}.string-controls button{padding:9px 8px;flex:1;border:1px solid #e0d4bd;border-radius:6px;background:#f1eadc;text-align:center;font-size:11px}.string-controls button b{font-size:10px;font-weight:500;display:block}.string-controls button span{display:block;font-size:8px;color:#95927a;margin-top:2px}.string-controls button.selected{border-color:#b08a5d;background:#eadfc9}.string-controls button:active{background:#d8c199}.recording-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:17px}.recording-toolbar .btn{font-size:9px;gap:6px;padding:9px 13px;min-height:38px}.recording-toolbar .btn svg{width:14px;height:14px}.recording-toolbar .recording{background:#ad5839;color:#fff4df;animation:pulse 1s infinite}.recording-toolbar>span{width:100%;font-size:9px;color:#97937e;margin-top:2px}.room-sidebar{background:#efebdf;border:1px solid #e1d7c5;border-radius:9px;padding:17px;align-self:start}.room-product{display:flex;gap:10px;align-items:center;padding-bottom:16px;margin-bottom:12px;border-bottom:1px solid #dcd2bd}.room-product>img{width:56px;height:66px;object-fit:cover;mix-blend-mode:multiply;border-radius:5px}.room-product small{font-size:8px;color:#929078}.room-product strong{display:block;font-size:12px;font-weight:650;margin:3px 0}.room-product span{display:block;font-size:8px;color:#918b75}.room-label{display:block;font-size:10px;margin:9px 0 5px;color:#797b66}.room-sidebar select{width:100%;background:#fcf9ee;border:1px solid #d9ccb3;border-radius:5px;padding:7px 8px;font-size:9px;color:#6a715d;outline-color:#b68653}.provenance-card{padding:11px 12px;background:#e9dcc2;border:1px solid #d7c29b;border-radius:6px;margin:12px 0}.provenance-card strong{font-size:10px;color:#92693c}.provenance-card p{font-size:9px!important;line-height:1.95!important;color:#93805f!important;margin-top:4px!important}.provenance-card.own{background:#e3e8d5;border-color:#cbd4b5}.provenance-card.own strong{color:#63784f}.room-stats{display:flex;gap:5px;justify-content:space-between;text-align:center;margin:16px 0}.room-stats span{font-size:8px;color:#97937b}.room-stats b{display:block;font-size:17px;color:#676e54;font-weight:500}.room-volume{display:flex;align-items:center;gap:6px;font-size:9px;color:#8d8b73;margin:17px 0}.room-volume svg{width:14px;height:14px}.room-volume input{min-width:0;width:100%;flex:1;height:4px}.available-heading{display:flex;flex-direction:column;margin-top:17px}.available-heading strong{font-size:10px;font-weight:550}.available-heading small{font-size:8px;color:#99937b;margin-top:1px}.available-recordings{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px;max-height:155px;overflow:auto}.available-recordings button{padding:5px 7px;border:1px solid #d8cbb3;border-radius:4px;font-size:8px;background:#f6efde;color:#8e7856}.available-recordings button.selected{border-color:#a87949;background:#e6d5b6;color:#84532c}.available-recordings .no-recording{font-size:9px!important;color:#9d8464!important;border:1px dashed #d1c1a6;padding:10px;width:100%;border-radius:5px}.room-sidebar>.link-btn{font-size:8px;gap:5px;margin-top:8px}.room-sidebar>.link-btn svg{width:12px;height:12px}.room-purchase{border-top:1px solid #ddd2bc;padding-top:13px;margin-top:7px}.room-purchase>.price{display:block;text-align:center;margin-bottom:10px;font-size:18px}.room-purchase>.price small{font-size:9px}.room-purchase>.btn{font-size:10px;min-height:40px}.room-purchase>.link-btn{font-size:9px;display:flex;justify-content:center}.accuracy-footer{border-top:1px solid #e4dac6;margin-top:21px;padding-top:13px;font-size:9px;color:#97947f;display:flex;gap:7px;align-items:flex-start;line-height:2}.accuracy-footer svg{width:13px;height:13px;flex-shrink:0;margin-top:2px}.source-record{border:1px solid #e0d5c0;border-radius:5px;margin:8px 0;padding:10px 13px}.source-record summary{cursor:pointer;font-size:11px}.source-record summary span{font-size:9px;color:#999078;margin-right:12px;direction:ltr;display:inline-block}.source-record p{font-size:10px!important;overflow-wrap:anywhere}.source-record audio{width:100%;height:34px;margin-top:5px}.source-record a{color:#ac633c;text-decoration:underline}.mini-open{width:100%;padding:13px;background:#e7dcc5;border:1px solid #d0bea0;color:#98734a;border-radius:5px;display:flex;align-items:center;justify-content:center;gap:7px;font-size:11px}.mini-open svg{width:15px}.mini-open:hover{background:#e1ceb0}
@media(max-width:950px){.room-layout{grid-template-columns:minmax(0,1fr) 240px;gap:15px}.instrument-modal #modal-content{padding:22px}.room-sidebar{padding:13px}.instrument-art{height:320px}.room-title h2{font-size:25px!important}.room-title p{font-size:10px!important}.recordings-badge{font-size:9px;padding:6px 9px}.instrument-tabs>button{min-width:133px}.stage-top{padding:14px;font-size:14px}.stage-indicator{font-size:7px;padding:3px 6px}.stage-bottom{padding:10px 13px;gap:8px}.stage-bottom>span{font-size:8px}.recording-toolbar .btn{padding:7px 10px;font-size:8px}}
@media(max-width:750px){.room-layout{grid-template-columns:1fr}.room-sidebar{display:grid;grid-template-columns:1fr 1fr;gap:0 20px;padding:18px}.room-product,.provenance-card,.room-stats,.available-heading,.available-recordings,.room-sidebar>.link-btn,.room-purchase{grid-column:1/-1}.room-product{margin-bottom:5px}.room-sidebar>select{align-self:center}.room-label{align-self:center}.room-volume{grid-column:1/-1}.room-purchase .full{max-width:300px;margin:auto}.room-stats{justify-content:space-evenly}.recording-toolbar>span{width:auto;margin-right:auto}.instrument-art{height:330px}}
@media(max-width:620px){dialog.instrument-modal{max-width:calc(100% - 16px);border-radius:11px}.instrument-modal #modal-content{padding:17px 14px}.room-title{display:block}.room-title h2{font-size:23px!important}.room-title p{font-size:9px!important;line-height:2!important}.recordings-badge{font-size:8px;display:inline-flex;margin-top:10px;padding:4px 8px}.recordings-badge svg{width:12px;height:12px}.instrument-tabs{gap:7px;margin:16px 0}.instrument-tabs>button{min-width:115px;padding:6px 8px;gap:5px}.instrument-tabs img{width:36px;height:35px}.instrument-tabs span{font-size:11px}.instrument-tabs small{font-size:7px}.instrument-art{height:440px}.instrument-art.zoomed{height:250px}.stage-top{padding:12px 13px}.stage-indicator{font-size:7px}.stage-top small{font-size:7px}.stage-bottom{min-height:52px;align-items:flex-start;padding:10px 12px}.stage-bottom>span{font-size:8px}.stage-bottom button{font-size:8px}.interaction-guide p{font-size:9px!important}.string-controls{gap:5px}.string-controls button{padding:8px 3px}.string-controls button b{font-size:9px}.string-controls button span{font-size:7px}.recording-toolbar{gap:6px}.recording-toolbar .btn{font-size:9px;padding:8px 9px}.recording-toolbar>span{width:100%;font-size:8px}.room-sidebar{padding:16px;gap:0 12px;margin-top:5px}.provenance-card{margin-bottom:3px}.room-sidebar>.link-btn{font-size:10px}.accuracy-footer{font-size:8px}.room-purchase>.link-btn{font-size:10px}.available-recordings button{padding:6px 8px;font-size:9px}.source-record summary{font-size:10px}}
@media(prefers-reduced-motion:reduce){.instrument-string.vibrating,.rippling{animation:none}}
.instrument-art>svg{position:absolute;inset:0;display:block;min-width:0;min-height:0;width:100%;height:100%}
