*,:before,:after{box-sizing:border-box}*{margin:0}html,body{height:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}img,picture,video,canvas,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit;color:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}ul,ol{padding:0;list-style:none}html,body{color:#2a201b;background:#f1e6d2;min-height:100%;margin:0;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.5}#root{flex-direction:column;width:100%;min-height:100svh;display:flex}h1,h2,h3{color:#2b1b13;letter-spacing:.04em;font-family:Arial,Helvetica,sans-serif;font-weight:400;line-height:1.2}h1{font-size:36px}h2{font-size:28px}h3{font-size:22px;font-weight:700}p{color:#2a201b}a{color:#c99c60;text-decoration:none}a:hover{color:#d7ae77;text-decoration:underline}a:focus-visible{outline-offset:2px;outline:2px solid #d7ae77}button{cursor:pointer;border:0;border-radius:18px;justify-content:center;align-items:center;gap:8px;padding:12px 20px;font-family:Arial,Helvetica,sans-serif;font-size:18px;line-height:1;transition:background-color .2s,border-color .2s;display:inline-flex}button:focus-visible,:focus-visible{outline-offset:2px;outline:2px solid #d7ae77}.app-page{background:#f1e6d2;min-height:100svh;padding:24px 20px}.admin-page{width:100%;max-width:1200px;margin-inline:auto}.card{background:#fffefa;border:1px solid #dfc49d;border-radius:24px;padding:24px;box-shadow:0 10px 24px #2b1b1314}.eyebrow{color:#69594b;letter-spacing:.12em;text-transform:uppercase;margin-bottom:12px;font-size:14px}.card h1{margin-bottom:16px}.card p{margin-bottom:20px}.action-list{gap:12px;margin-top:24px;display:grid}.primary-link,.secondary-link{border-radius:18px;justify-content:center;align-items:center;min-height:52px;padding:12px 20px;font-size:18px;text-decoration:none;display:inline-flex}.primary-link{color:#2a201b;background:#d7ae77}.primary-link:hover{color:#2a201b;background:#c99c60;text-decoration:none}.secondary-link{color:#2a201b;background:#fffefa;border:1px solid #dfc49d}.secondary-link:hover{color:#2a201b;border-color:#d7ae77;text-decoration:none}.admin-form{gap:16px;margin-top:24px;margin-bottom:24px;display:grid}.form-field{gap:8px;display:grid}.form-field label{color:#2b1b13;font-weight:700}.form-field input,.form-field textarea{color:#2a201b;background:#fffefa;border:1px solid #dfc49d;border-radius:18px;width:100%;padding:12px}.form-field input{min-height:52px}.form-field textarea{resize:vertical;min-height:110px}.form-hint{color:#69594b;font-size:14px}.required-star{color:#991b1b;font-weight:700}.primary-button{color:#2a201b;background:#d7ae77;width:100%;min-height:52px;font-weight:700}.primary-button:hover{background:#c99c60}.primary-button:disabled{opacity:.45;cursor:not-allowed}.success-message,.error-message,.empty-message{border-radius:18px;padding:12px;font-weight:700}.success-message{color:#166534;background:#dcfce7}.error-message{color:#991b1b;background:#fee2e2}.empty-message{color:#69594b;background:#fffefa;border:1px solid #dfc49d;margin-top:24px}.object-list{gap:20px;margin-top:24px;display:grid}.object-card{background:#fffefa;border:1px solid #dfc49d;border-radius:24px;gap:20px;padding:20px;display:grid;box-shadow:0 10px 24px #2b1b1314}.print-area{justify-items:center;gap:16px;display:grid}.print-title{text-align:center;margin:0}.object-card-meta{gap:8px;display:grid}.object-id{color:#69594b;margin:0;font-size:16px}.checkbox-row{color:#2b1b13;align-items:center;gap:8px;font-weight:700;display:flex}.checkbox-row input{width:20px;height:20px}.correct-answer-group{background:#fffaf4;border:1px solid #dfc49d;border-radius:24px;gap:8px;padding:12px;display:grid}.correct-answer-group>span{color:#2b1b13;font-weight:700}.correct-answer-option{cursor:pointer;background:#fffefa;border:1px solid #dfc49d;border-radius:999px;align-items:center;gap:8px;padding:8px 12px;display:flex}.correct-answer-option input{accent-color:#d7ae77}.object-actions{gap:12px;display:grid}.qr-box{background:0 0;border:0;justify-content:center;padding:12px 0;display:flex}.object-image{border:1px solid #dfc49d;border-radius:24px;width:100%;margin-bottom:20px}.info-block{margin-bottom:20px}.info-block h2{margin-bottom:12px}@media (width>=900px){.admin-form{grid-template-columns:1fr 1fr}.form-field--full,.admin-form .primary-button{grid-column:1/-1}.object-list{grid-template-columns:repeat(2,minmax(0,1fr))}.action-list{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=1200px){.object-list{grid-template-columns:repeat(3,minmax(0,1fr))}}@media print{@page{size:A4 portrait;margin:12mm}body{background:#fff;margin:0}.no-print{display:none!important}.admin-page{background:#fff!important;padding:0!important}.object-list{grid-template-columns:repeat(2,1fr);align-items:start;gap:14mm;display:grid!important}.object-card{break-inside:avoid;page-break-inside:avoid;border:1px solid #000;border-radius:0;padding:10mm;box-shadow:none!important;background:#fff!important}.print-area{flex-direction:column;justify-content:center;align-items:center;display:flex}.print-title{color:#000;text-align:center;margin:0 0 8mm;font-size:16pt;font-weight:700;line-height:1.2}.qr-box{justify-content:center;align-items:center;display:flex}.qr-box svg{width:45mm!important;height:45mm!important}.object-actions,.object-card-meta,.action-list,.primary-button,.secondary-link,.danger-button{display:none!important}}.danger-button{color:#991b1b;cursor:pointer;background:#fecaca;border:0;border-radius:18px;width:100%;min-height:52px;font-weight:700}.image-preview .danger-button,.hotspot-preview+.danger-button{width:100%;max-width:360px;display:block}.object-image-preview{border:1px solid #dfc49d;border-radius:18px;width:100%;max-width:360px}.image-preview{flex-direction:column;gap:.5rem;max-width:360px;margin-top:.75rem;display:flex}.image-preview img{border:1px solid #dfc49d;border-radius:18px;width:100%;height:auto;display:block}.language-switch{justify-content:flex-end;margin-bottom:1rem;display:flex}.form-section-title{border-top:1px solid #e5e7eb;margin-top:.5rem;padding-top:1rem}.form-section-title h2{margin-bottom:.25rem;font-size:1.1rem}.audio-block audio{width:100%;min-height:44px}.transcript-block{margin-top:.5rem}.transcript-block summary{cursor:pointer;color:#6b7280;padding:.25rem 0;font-size:.9rem}.transcript-block summary:focus-visible{outline-offset:2px;outline:2px solid #2563eb}.transcript-block p{color:#374151;background:#f9fafb;border-radius:4px;margin-top:.5rem;padding:.75rem;font-size:.9rem}.hotspot-editor{margin-bottom:1rem}.hotspot-preview{touch-action:manipulation;-webkit-user-select:none;user-select:none;width:min(100%,360px);max-width:360px;display:block;position:relative}.hotspot-preview img,.object-image-preview{border:1px solid #dfc49d;border-radius:18px;width:100%;max-width:none;height:auto;display:block}.hotspot-marker{z-index:2;color:#fff;cursor:pointer;background:#ef4444;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;min-height:32px;padding:0;font-size:1.1rem;font-weight:700;transition:transform .1s,background .1s;display:flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 2px 6px #00000059}.hotspot-marker:hover,.hotspot-marker:focus-visible{background:#b91c1c;transform:translate(-50%,-50%)scale(1.15)}.hotspot-marker:focus-visible{outline-offset:3px;outline:2px solid #2563eb}.hotspot-info{background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;margin-top:1rem;padding:1rem}.hotspot-info h2{margin-bottom:.5rem;font-size:1.1rem}.hotspot-info p{margin-bottom:.75rem}.hotspot-form-item,.quiz-form-item{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:1rem;padding:1rem}.hotspot-form-item .admin-form,.quiz-form-item .admin-form{grid-template-columns:1fr;margin-top:.5rem}.hotspot-form-item .form-field,.hotspot-form-item .form-field input,.hotspot-form-item .form-field textarea,.hotspot-form-item .form-field select,.quiz-form-item .form-field,.quiz-form-item .form-field input,.quiz-form-item .form-field textarea,.quiz-form-item .form-field select{width:100%}.hotspot-form-item .danger-button,.quiz-form-item .danger-button{width:100%;max-width:none}.quiz-editor{flex-direction:column;gap:.5rem;display:flex}.quiz-answers{flex-direction:column;gap:.75rem;margin:1rem 0;display:flex}.quiz-answer-btn{text-align:left;width:100%;min-height:52px;padding:.75rem 1rem}.quiz-answer-btn:disabled{opacity:.85;cursor:default}.quiz-correct{color:#065f46!important;background:#d1fae5!important;border-color:#059669!important}.quiz-wrong{color:#7f1d1d!important;background:#fee2e2!important;border-color:#dc2626!important}.quiz-feedback{margin-top:1rem}.quiz-feedback p{margin-bottom:.5rem}.quiz-explanation{background:#f9fafb;border-left:3px solid #6b7280;margin-bottom:.75rem;padding:.5rem .75rem;font-size:.9rem}.quiz-result{margin-bottom:1.5rem;font-size:1.2rem;font-weight:700}.discovered-status{margin-bottom:1rem}.location-hint{background:#fefce8;border:1px solid #fde047;border-radius:8px;padding:.75rem 1rem}.location-hint h2{margin-bottom:.5rem;font-size:1rem}.form-field select{color:#111827;background:#fff;border:1px solid #e5e7eb;border-radius:4px;width:100%;min-height:52px;padding:.75rem}.field-error{background-color:#fff7f7;border-color:#c62828!important;outline-color:#c62828!important}.field-error:focus{box-shadow:0 0 0 3px #c628282e;border-color:#c62828!important}.field-error-message{color:#c62828;margin-top:6px;font-size:14px;line-height:1.3;display:block}.json-import-panel{background:linear-gradient(135deg,#fffaf1 0%,#fff 100%);border:1px solid #b88b4b59;border-radius:24px;grid-template-columns:1fr auto;align-items:center;gap:24px;margin:18px 0 28px;padding:24px 28px;display:grid;box-shadow:0 14px 35px #4a2d1014}.json-import-panel h2{margin:0 0 6px;font-size:28px}.json-import-actions{flex-direction:column;align-items:flex-end;gap:10px;min-width:260px;display:flex}.json-upload-input{display:none}.json-upload-button{color:#1f1308;cursor:pointer;background:#d7b476;border:1px solid #d7b476;border-radius:999px;justify-content:center;align-items:center;min-width:230px;min-height:52px;padding:0 24px;font-size:16px;font-weight:700;transition:transform .15s,box-shadow .15s,background-color .15s;display:inline-flex}.json-upload-button:hover{background:#cda763;transform:translateY(-1px);box-shadow:0 10px 22px #4a2d1024}.json-import-success,.json-import-error{text-align:center;border-radius:14px;width:100%;margin:0;padding:10px 14px;font-size:14px;font-weight:700}.json-import-success{color:#14532d;background:#dcfce7}.json-import-error{color:#991b1b;background:#fee2e2}@media (width<=760px){.json-import-panel{grid-template-columns:1fr}.json-import-actions{align-items:stretch;min-width:0}.json-upload-button{width:100%}}.admin-actions-grid{grid-template-columns:repeat(2,minmax(260px,1fr));align-items:stretch;gap:18px;margin-top:28px;display:grid}.admin-actions-grid .admin-action-item,.admin-actions-grid .admin-action-export>button,.admin-actions-grid .admin-action-export>.secondary-link{text-align:center;border-radius:22px;justify-content:center;align-items:center;width:100%;min-height:64px;font-size:20px;display:inline-flex}@media (width<=760px){.admin-actions-grid{grid-template-columns:1fr}}.three-d-viewer{background:#f5efe5;border-radius:24px;width:100%;height:75vh;min-height:480px;overflow:hidden;box-shadow:0 18px 40px #0000002e}.three-d-viewer model-viewer{width:100%;height:100%;display:block}@media (width<=760px){.three-d-viewer{border-radius:18px;height:70vh;min-height:420px}}.map-page-card{background:#f1e6d2;flex-direction:column;gap:16px;padding:24px 20px 32px;display:flex}.object-map{z-index:0;border:1px solid #dfc49d;border-radius:24px;width:100%;height:60vh;overflow:hidden}.map-location-name{color:#2b1b13;text-align:center;margin:0;font-size:18px;font-weight:700}.map-actions{gap:12px;display:grid}.distance-box{color:#2a201b;text-align:center;background:#fffefa;border:1px solid #dfc49d;border-radius:18px;padding:12px 16px;font-size:18px}.station-list{border-top:1px solid #dfc49d;padding-top:16px}.station-list h2{color:#2b1b13;margin:0 0 12px;font-size:22px}.station-list ol{counter-reset:station;gap:8px;margin:0;padding:0;list-style:none;display:grid}.station-item{background:#fffefa;border:1px solid #dfc49d;border-radius:18px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:12px;display:flex}.station-item-info{align-items:baseline;gap:12px;display:flex}.station-item-info a{color:#c99c60;text-underline-offset:3px;text-decoration:underline}.station-item-distance{color:#69594b;font-size:14px}.station-item-route{color:#c99c60;text-underline-offset:3px;font-size:14px;text-decoration:underline}.station-item--current{background:#f4e1c4;border-color:#d7ae77;font-weight:700}.nearest-box{background:#f4e1c4;border:1px solid #d7ae77;border-radius:18px;gap:8px;padding:16px;display:grid}.nearest-box-eyebrow{color:#69594b;letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:700}.nearest-box-name{color:#2b1b13;font-size:18px}.nearest-box-distance{color:#69594b}.nearest-box-actions{flex-wrap:wrap;gap:12px;display:flex}.nearest-box-actions .secondary-link{flex:1;min-width:130px}.map-pin{background:0 0;border:0}@media (width<=760px){.object-map{border-radius:18px;height:50vh}}.location-picker{gap:12px;display:grid}.location-picker-search{align-items:stretch;gap:8px;display:flex}.location-picker-search input{color:#2a201b;background:#fffefa;border:1px solid #dfc49d;border-radius:18px;flex:1;min-height:52px;padding:12px}.location-picker-search .secondary-link{cursor:pointer;flex:none;min-height:52px}.location-picker-map{z-index:0;border:1px solid #dfc49d;border-radius:18px;width:100%;height:360px;overflow:hidden}.location-picker-coords{color:#69594b;flex-wrap:wrap;align-items:center;gap:12px;font-size:14px;display:flex}.location-picker-coords .danger-button{width:auto;min-height:44px;padding:0 16px}.language-tabs{flex-wrap:wrap;gap:.5rem;margin:0 0 1rem;display:flex}.language-tab{color:#2a201b;cursor:pointer;background:#fffefa;border:1px solid #dfc49d;border-radius:999px;padding:.45rem .75rem;font-weight:600}.language-tab[aria-pressed=true]{color:#2b1b13;background:#d7ae77;border-color:#c99c60}.language-panel{display:block}.language-panel--hidden{display:none}
