@font-face{font-family:Aktiv;src:url('./assets/AktivGrotesk-Regular.otf') format('opentype');font-display:swap}
:root{--paper:#f4f0e7;--ink:#25251f;--gold:#c3a772;--line:#c6bca9;--dark:#191b17;font-family:Aktiv,'Helvetica Neue',sans-serif;color:var(--paper);background:var(--dark);font-synthesis:none}
*{box-sizing:border-box}html,body,#viewer{margin:0;width:100%;height:100%;overflow:hidden}body{min-height:240px}button,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.32;cursor:default}button:focus-visible,select:focus-visible,canvas:focus-visible,.map-scroll:focus-visible{outline:2px solid var(--gold);outline-offset:4px}[hidden]{display:none!important}button,select{-webkit-tap-highlight-color:transparent}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
#viewer{position:relative;isolation:isolate;background:var(--dark)}#panorama{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;cursor:grab}#panorama.dragging{cursor:grabbing}#viewer::after{content:'';position:absolute;inset:0;background:linear-gradient(#0009 0,transparent 24%,transparent 64%,#000b 100%);pointer-events:none;z-index:1}.tour-header{position:absolute;inset:0 0 auto;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:28px 34px;pointer-events:none;z-index:5}.wordmark{font-size:22px;letter-spacing:.18em;line-height:1.1;text-shadow:0 1px 5px #0004}.wordmark>span:last-child{display:block;font-size:9px;letter-spacing:.23em;color:#e4dccb;margin-top:10px}.header-actions{display:flex;gap:8px;pointer-events:auto}.control{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;color:var(--paper);background:#1a1c17c9;border:1px solid #f3ecd332;border-radius:3px;backdrop-filter:blur(12px);transition:background .18s,border-color .18s}.control:hover:not(:disabled){background:#3e3b2ee8;border-color:#c3a772c0}.control svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}.icon-button{width:44px;padding:0;font-size:23px}.map-button{padding:0 16px;font-size:12px}.tour-bottom{position:absolute;inset:auto 34px 27px;display:flex;align-items:flex-end;justify-content:space-between;gap:24px;pointer-events:none;z-index:4}.point-card{width:340px;max-width:38vw}.eyebrow{display:block;font-size:9px;font-weight:400;letter-spacing:.2em;color:var(--gold)}.point-card h1{font-family:Georgia,serif;font-size:30px;font-weight:400;line-height:1.2;margin:9px 0}.point-card p{font-size:11px;line-height:1.5;margin:0;color:#ddd7c9}.scene-navigation{display:flex;align-items:center;gap:18px;pointer-events:auto;padding-bottom:2px}.scene-count{display:flex;align-items:baseline;gap:6px;min-width:74px;justify-content:center;font-size:11px;color:#c8c4b7;font-variant-numeric:tabular-nums}.scene-count strong{color:var(--paper);font-size:29px;font-weight:400}.zoom-controls{display:flex;gap:6px;pointer-events:auto;justify-content:flex-end;width:340px;max-width:38vw}.load-state{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;background:#1e211c;z-index:3;padding:100px 30px 155px;text-align:center}.load-state h2{font:400 clamp(23px,3vw,36px)/1.25 Georgia,serif;margin:15px 0 8px}.load-state p{max-width:390px;font-size:12px;line-height:1.7;color:#c8c6b9;margin:5px 0 0}.spinner{width:32px;height:32px;border:1px solid #c3a77255;border-top-color:var(--gold);border-radius:50%;margin-bottom:24px;animation:spin 1.1s linear infinite}.retry-button{margin-top:22px;background:var(--paper);color:var(--ink);border:0;border-radius:3px;padding:13px 18px;font-size:12px;min-height:44px}.toast{position:absolute;bottom:150px;left:50%;transform:translateX(-50%);background:var(--paper);color:var(--ink);border:1px solid var(--line);font-size:12px;padding:13px 18px;max-width:85%;text-align:center;z-index:8;border-radius:3px;box-shadow:0 8px 25px #0003}@keyframes spin{to{transform:rotate(360deg)}}
/* Geçiş işaretleri (2026-10-02): hedefin zemindeki yerinde duran, gerçek perspektifli ince halka (.floor — şeklini viewer.js floorArt çizer; Matterport tarzı, sade) + ekrana sığmayan hedefler için kenar düğmesi (.navigation-edge) */
.hotspot-layer{position:absolute;inset:0;pointer-events:none;z-index:2}
.hotspot{position:absolute;transform:translate(-50%,-50%);padding:0;border:0;background:none;color:#fff;pointer-events:auto;font-size:12px;font-variant-numeric:tabular-nums;animation:hotspot-in .6s ease both}@keyframes hotspot-in{from{opacity:0}}
.hotspot-tag{display:flex;align-items:center;justify-content:center;gap:2px}.hotspot .navigation-arrow{flex:none;width:13px;height:13px;fill:none;stroke:#dfca9e;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
/* zemin halkası: bant + içte çok hafif dolgu + dışta nefes alan ince çizgi; uzaktaki daha soluk (--depth) */
.hotspot.floor{border-radius:50%;outline-offset:2px}.hotspot.floor:active .floor-art{transform:scale(.96)}.floor-art{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;opacity:var(--depth,.8);transition:opacity .25s}.hotspot:not(.floor) .floor-art{display:none}
.floor-pad{fill:#fffdf6;fill-opacity:.08;transition:fill .25s,fill-opacity .25s}.floor-ring{fill:#fffdf6;fill-rule:evenodd;transition:fill .25s}.floor-shade{fill:#0b0c09;fill-opacity:.5;fill-rule:evenodd;transform:translateY(1.6px)}
.floor-line{fill:#fffdf6;fill-rule:evenodd;transform-box:fill-box;transform-origin:center;animation:floor-breathe 4.2s ease-in-out infinite;animation-delay:calc(var(--order,0)*-.9s)}@keyframes floor-breathe{0%,100%{opacity:.16;transform:scale(.94)}50%{opacity:.5;transform:scale(1.06)}}
.hotspot.floor .hotspot-tag{position:absolute;transform:translate(-50%,-50%) translateY(5px);min-width:28px;height:21px;padding:0 8px;border:1px solid #f3ecd34d;border-radius:11px;background:#191b17e0;box-shadow:0 4px 16px #0007;color:#f6f1e4;font-size:11px;letter-spacing:.06em;line-height:1;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}.hotspot.floor .navigation-arrow{display:none}
.hotspot.floor:hover .floor-art,.hotspot.floor:focus-visible .floor-art{opacity:1}.hotspot.floor:hover .floor-ring,.hotspot.floor:focus-visible .floor-ring,.hotspot.floor:hover .floor-line,.hotspot.floor:focus-visible .floor-line{fill:#e6cc93}.hotspot.floor:hover .floor-pad,.hotspot.floor:focus-visible .floor-pad{fill:#e6cc93;fill-opacity:.26}
.hotspot.floor:hover .hotspot-tag,.hotspot.floor:focus-visible .hotspot-tag{opacity:1;transform:translate(-50%,-50%)}
/* kenar düğmesi */
.hotspot.navigation-edge{width:47px;height:47px;display:flex;align-items:center;justify-content:center;border:1px solid #c3a772b3;background:#353225e8;box-shadow:0 3px 20px #0004;border-radius:50%;backdrop-filter:blur(4px);transition:background .15s,border-color .15s}.hotspot.navigation-edge:hover{background:#a4864dee;border-color:#f9efd6}
.hotspot.navigation-left .navigation-arrow{transform:rotate(90deg)}.hotspot.navigation-right .navigation-arrow{transform:rotate(-90deg)}.hotspot.navigation-up .navigation-arrow{transform:rotate(180deg)}.hotspot.navigation-right .hotspot-tag{flex-direction:row-reverse}
.hotspot.navigation-edge::after{content:attr(data-direction);position:absolute;top:49px;left:50%;transform:translateX(-50%);font-size:9px;white-space:nowrap;text-shadow:0 1px 4px #000;background:#151711bc;padding:3px 5px;border-radius:2px}.hotspot.navigation-edge[data-direction=""]::after{display:none}
#mapDialog{width:min(1080px,calc(100vw - 44px));max-width:none;max-height:calc(100dvh - 48px);padding:0;background:var(--paper);color:var(--ink);border:1px solid #d7cfbd;border-radius:5px;box-shadow:0 24px 100px #0005;overflow:auto}#mapDialog::backdrop{background:#13170fd4;backdrop-filter:blur(6px)}.map-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:26px 30px 20px}.map-heading .eyebrow{color:#947847}.map-heading h2{font:400 32px/1.2 Georgia,serif;margin:9px 0 0}.map-close{width:44px;height:44px;border:1px solid #d5cdbd;background:transparent;color:var(--ink);border-radius:3px;font-size:26px}.map-close:hover{background:#e4ddcf}.map-scroll{margin:0 20px;overflow:auto;overscroll-behavior:contain;border-block:1px solid #dcd4c6;padding:24px 8px;background:#faf8f2}#mapSheet{min-width:710px}#mapSheet svg{display:block;width:100%;height:auto;overflow:visible}.map-area{fill:#ebe5d9;stroke:#c7bcaa;stroke-width:1}.map-area-room{fill:#eee7d9;stroke:#b89a67}.map-area-label{fill:#a19580;font-size:7px;letter-spacing:.08em;text-anchor:middle}.map-node{cursor:pointer;outline:none}.map-node-disc{fill:#faf8f2;stroke:#b5ac9a;stroke-width:.8}.map-node-number{fill:#77705f;font-size:7.5px;text-anchor:middle;dominant-baseline:central;pointer-events:none}.map-node:hover .map-node-disc,.map-node:focus-visible .map-node-disc{fill:#e4d6b9;stroke:#977841;stroke-width:1.8}.map-node.current .map-node-disc{fill:#9a7b43;stroke:#9a7b43}.map-node.current .map-node-number{fill:#fff}.map-node.current .map-node-ring{fill:none;stroke:#aa8a52;stroke-width:1;opacity:.5}.map-node.linked:not(.current) .map-node-disc{stroke:#9c8255;stroke-width:1.7}.map-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 30px 25px;font-size:11px;color:#7c7364}.map-dot{display:inline-block;background:#9a7b43;width:7px;height:7px;border-radius:50%;margin-right:7px}.map-footer small{display:block;margin-top:7px;color:#978c7a;font-size:10px}.map-footer label{display:flex;gap:10px;align-items:center;white-space:nowrap}.map-footer select{height:40px;max-width:220px;min-width:150px;background:#faf8f2;color:var(--ink);border:1px solid #d5cdbd;border-radius:3px;padding:0 12px}
@media(max-width:700px){.tour-header{padding:19px 18px;gap:14px}.wordmark{font-size:16px}.wordmark>span:last-child{font-size:10px;letter-spacing:.14em;margin-top:8px}.header-actions{gap:6px}.map-button{padding:0 11px}.map-button span{display:none}.tour-bottom{inset:auto 18px 20px;gap:14px;flex-wrap:wrap}.point-card{width:100%;max-width:100%;padding-bottom:2px}.point-card h1{font-size:24px;margin:6px 0}.point-card p{font-size:10px;max-width:280px}.point-card .eyebrow{display:none}.scene-navigation{gap:12px}.scene-count strong{font-size:25px}.zoom-controls{width:auto;max-width:none}.hotspot.navigation-edge{width:44px;height:44px}.hotspot.navigation-edge::after{top:46px}.load-state{padding-bottom:180px}.load-state h2{max-width:280px}.toast{bottom:190px}#mapDialog{width:calc(100vw - 22px);max-height:calc(100dvh - 26px)}.map-heading{padding:20px 18px}.map-heading h2{font-size:28px}.map-heading .eyebrow{font-size:10px}.map-scroll{margin:0 10px;padding-block:20px}.map-footer{padding:18px;align-items:flex-start;flex-direction:column;gap:16px}.map-footer label{width:100%}.map-footer select{flex:1;max-width:none}}
@media(max-height:460px){.wordmark>span:last-child{font-size:10px;letter-spacing:.16em}.tour-header{padding:14px 20px}.tour-bottom{bottom:14px;left:20px;right:20px;flex-wrap:nowrap}.point-card{width:240px;max-width:38%;padding:0}.point-card h1{font-size:21px}.point-card p,.point-card .eyebrow{display:none}.zoom-controls{width:auto}.load-state{padding:75px 24px}.spinner{width:24px;height:24px;margin-bottom:12px}.load-state h2{font-size:24px;margin:8px 0}.toast{bottom:90px}.map-heading{padding:15px 20px}.map-heading h2{font-size:24px}.map-scroll{padding-block:16px}.map-footer{padding:14px 20px;flex-direction:row}.map-footer small{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:3s!important;transition:none!important}.hotspot,.floor-line{animation:none!important}.floor-line{opacity:.3}}

/* resmi logo: 22px yazının yerine ~20px yüksekliğinde vektör; gölge metindeki text-shadow ile aynı */
.wordmark .brand-logo{display:block;width:188px;height:auto;filter:drop-shadow(0 1px 5px #0004)}
/* logonun altında "NATURAL STONE" (sitedeki bütün logolarla aynı: %4 punto, %3,3 aralık, harfler logo genişliğine yayılır) */
.wordmark .brand-tagline{display:flex;justify-content:space-between;width:188px;margin-top:6px;padding-left:.1em;font:400 7.5px/1 Aktiv,'Helvetica Neue',sans-serif;letter-spacing:0;color:#fff;opacity:.88}
@media(max-width:700px){.wordmark .brand-logo,.wordmark .brand-tagline{width:140px}.wordmark .brand-tagline{font-size:7px;margin-top:5px}}
