/* Zimmer 17 · 0.12 / Premium visual design system.
   Purely presentational: gameplay hit areas, saved IDs and game logic stay intact. */
:root{--p12-gold:#f5cc7e;--p12-cream:#fff3da;--p12-teal:#244a49;--p12-midnight:#0c1823;--p12-green:#4bc56a}
html.z17-fit body{background:#0a1320}
html.z17-fit .topbar{background:linear-gradient(180deg,#152a32,#141e2c)!important;box-shadow:inset 0 -1px #f3d08a55,0 3px 16px #0008;z-index:8}
.brand-symbol{background:radial-gradient(circle at 37% 24%,#a38349,#3e2726 78%);box-shadow:inset 0 2px #ffecbe64,0 0 16px #f4be6570;border:2px solid #d8aa65;border-radius:14px;transform:rotate(-8deg)}
.brand strong{font-family:Georgia,serif;color:#fff0c7;text-shadow:0 2px 2px #000}
.brand strong b{color:#f36154}
.build{color:#f4cc88!important;font-weight:650;letter-spacing:.13em!important}
.icon-button{border:2px solid #a37a45!important;border-radius:12px!important;background:linear-gradient(#394653,#17202b)!important;box-shadow:inset 0 2px #fff4c229,0 3px 5px #03070a;color:#ffdf92}
.icon-button:hover{border-color:#ffdc92!important;background:#4b554c!important}
html.z17-fit .menu-view{background:radial-gradient(circle at 50% 36%,#284957,#0a111b 76%)!important}
html.z17-fit .menu-visual{inset:0!important;opacity:1!important;animation:none!important;transform:none!important}
html.z17-fit .menu-visual img{height:100%!important;width:100%!important;object-fit:cover!important;object-position:center 46%!important;filter:saturate(1.27) brightness(1.14) contrast(1.06)!important}
html.z17-fit .menu-visual::after{background:linear-gradient(90deg,#101c2afc 0%,#101c2aee 23%,#1829399d 35%,#10213138 56%,#0e1b24b5 82%,#0d151ff5 100%),linear-gradient(0deg,#111824f5 0%,transparent 36%,transparent 85%,#25344e71 100%)!important}
html.z17-fit .menu-content{background:linear-gradient(90deg,#101b2ce8 0%,#101b2ce1 83%,#101b2a3b 100%)!important;border-right:1px solid #d9a65a36!important;padding:18px 20px 4px 25px!important;width:407px!important;min-width:407px!important;max-width:407px!important}
html.z17-fit .menu-title-wrap .game-mark{font:700 10px Georgia,serif!important;color:#ffd787;letter-spacing:.11em;margin-bottom:7px!important}
html.z17-fit .menu-title-wrap h1{font:700 65px/.96 Georgia,serif!important;letter-spacing:-.046em!important;color:#fff1cb;text-shadow:0 3px 1px #683719,0 5px 0 #281724,0 8px 22px #000!important;margin:0!important;white-space:nowrap}
html.z17-fit .game-subtitle{font:700 15px Georgia,serif!important;letter-spacing:.19em!important;text-shadow:0 2px 6px #000;color:#ffe4a5!important;margin:5px 0 6px!important}
html.z17-fit .game-mark{text-shadow:0 2px 2px #000}
html.z17-fit .menu-content .menu-buttons{gap:6px!important;margin:15px 0 0!important}
html.z17-fit .menu-content .menu-buttons button{min-height:38px!important;height:38px!important;font:700 14px Georgia,serif!important;letter-spacing:.055em!important;padding:4px 14px!important;border-radius:10px!important;background:linear-gradient(180deg,#4e4339,#24202b 65%,#1a2430)!important;color:#ffe8bd!important;border:2px solid #9f7d47!important;box-shadow:inset 0 2px #ffe3ad33,0 4px 0 #0b1118,0 5px 12px #0009!important;transition:transform .18s,filter .18s,box-shadow .18s}
html.z17-fit .menu-content .menu-buttons button:hover{filter:brightness(1.22);transform:translateY(-2px)}
html.z17-fit .menu-content #startButton{height:52px!important;min-height:52px!important;border-color:#e1f6a7!important;background:linear-gradient(180deg,#75ef71,#269748 58%,#145c37)!important;color:white!important;font:700 20px Georgia,serif!important;box-shadow:inset 0 3px #fff8,0 5px 0 #0c512e,0 0 24px #78ec5e95!important;letter-spacing:.14em!important}
.menu-content .menu-buttons .nav-icon{display:inline-flex;width:27px;justify-content:center;color:#ffdc9d;font-size:16px;margin-right:7px}
html.z17-fit .menu-content .menu-facts{margin-top:15px!important;gap:5px!important;max-width:370px}
html.z17-fit .menu-facts span{color:#d8e8e9!important;background:#152936b0!important;border-color:#ac8c61!important;border-radius:9px!important;padding:6px 8px!important;font-size:9px!important;letter-spacing:.04em}
html.z17-fit .menu-content .save-status{color:#c5e2ce!important;margin-top:11px!important}
html.z17-fit .menu-content .prototype-warning{font-size:10px!important;color:#e8c995!important;opacity:.8}
.hero-hotel-caption{position:absolute;z-index:2;pointer-events:none;left:44%;top:32%;display:flex;flex-direction:column;gap:9px;max-width:410px;text-shadow:0 3px 7px #000,0 0 20px #0e171c}
.hero-hotel-caption span{color:#ffdf9a;font:700 12px Georgia;letter-spacing:.17em}
.hero-hotel-caption strong{color:#fff4d9;font:bold 32px/1.1 Georgia,serif}
.hero-hotel-caption small{color:#e5e5d4;font:15px Georgia,serif}
.menu-magic{position:absolute;inset:0;z-index:1;pointer-events:none}
.magic-spark{position:absolute;display:block;color:#ffe9a8;text-shadow:0 0 12px #ffe7b0,0 0 25px #f9bd61;font-size:18px;animation:p12Twinkle 4s ease-in-out infinite}
.magic-spark.a{left:53%;top:21%}.magic-spark.b{left:68%;top:47%;animation-delay:1.5s}.magic-spark.c{left:39%;top:42%;animation-delay:2.5s}
@keyframes p12Twinkle{0%,100%{opacity:.22;transform:scale(.5) rotate(-16deg)}48%{opacity:1;transform:scale(1.22) rotate(20deg)}}
html.z17-fit .case-teaser{align-self:flex-start!important;margin:21px 22px 0 auto!important;width:302px!important;max-height:530px!important;z-index:4!important;background:linear-gradient(150deg,#f9e8b9,#cfa575 70%,#f5d6a2)!important;border:4px solid #4d321d!important;outline:2px solid #f5cf8c;border-radius:14px!important;box-shadow:0 12px 30px #000c,0 0 29px #f5c46735,inset 0 2px #ffedd1!important;transform:none}
.case-teaser h2{font:700 26px Georgia,serif!important;color:#532a20!important}
.case-teaser p{color:#5b3623!important;font-size:13px!important;line-height:1.35!important}
.case-teaser .case-stamp{background:#5a3523;color:#ffe6b1!important;padding:8px;border-radius:7px;letter-spacing:.13em;font-size:10px;text-align:center}
.case-teaser .case-seal{border-top:1px solid #a47b53;margin-top:9px!important;padding-top:6px;color:#674125}
.case-portrait-line{background:#fff3cf8a;border:1px solid #ae8b63;padding:6px}
.case-progress-text{font-family:Georgia,serif;color:#452b25!important}
.case-progress-bar{background:#785439!important;box-shadow:inset 0 2px 4px #0004}
.case-open-button{display:block;width:100%;margin-top:7px;padding:9px 8px;background:linear-gradient(#784b2d,#47251e);border:2px solid #c29a60;border-radius:8px;color:#ffe6b3;font:700 12px Georgia;cursor:pointer;box-shadow:inset 0 2px #fff2c42e,0 3px 5px #0005}
.case-open-button:hover{filter:brightness(1.25)}
html.z17-fit .menu-showcase{height:219px!important;bottom:8px!important;left:13px!important;right:13px!important;border:3px solid #c99d59!important;border-radius:16px!important;padding:8px 10px!important;background:linear-gradient(160deg,#233044f5,#111b2bfb)!important;box-shadow:0 10px 30px #000c,inset 0 2px #ffe4a34a,0 0 20px #dfb56d2b!important}
html.z17-fit .hub-overline{height:30px;display:flex;gap:8px;justify-content:space-between;align-items:center;line-height:1;margin:0 0 6px!important;color:#ffe5ac!important}
.hub-switcher{display:flex;align-items:center;gap:6px}
.hub-tab{border:1px solid #93774e;background:linear-gradient(#2d3041,#1e2331);color:#d1be9b;padding:5px 10px;border-radius:7px;white-space:nowrap;font:700 10px Georgia;cursor:pointer}
.hub-tab.active{color:#fff0ca;border-color:#f1d08d;background:linear-gradient(#765039,#4a2d29);box-shadow:inset 0 2px #fff6cb36,0 0 10px #ffd57e25}
.hub-tab:hover{filter:brightness(1.2)}
html.z17-fit .hub-bottom-row{grid-template-columns:minmax(0,1fr) 241px!important;height:162px!important;gap:10px!important}
html.z17-fit .hub-tile{height:161px!important;border:2px solid #aa8855;border-radius:12px;background:#171e25;box-shadow:0 5px 10px #000b,inset 0 1px #ffedbe40}
.hub-tile::after{background:linear-gradient(transparent 30%,#0c1a27db 76%,#0b1116f4 100%)!important}
.hub-tile img{filter:saturate(1.32) brightness(1.05)!important}
.hub-tile.available{border-color:#e4bf73!important}
.hub-tile.completed{border-color:#72c582!important}
.hub-tile-number{background:linear-gradient(#b44e3d,#592a2f)!important;color:#fff3d1!important;border-color:#f4c780!important}
.hub-tile-label{font:bold 14px Georgia!important;color:#fff5dd!important;bottom:24px!important}
.hub-tile-stat{font:bold 11px Georgia!important;color:#b2f7ad!important}
html.z17-fit .hub-next{border:2px solid #f0cc8c!important;background:linear-gradient(#f5e1b5,#cfaa7b)!important;border-radius:12px!important;color:#45281b;box-shadow:inset 0 0 17px #a7774380,0 6px 11px #0009}
html.z17-fit .hub-next strong{font:bold 18px Georgia!important;color:#552e1f!important}
html.z17-fit .hub-next button{min-height:39px;background:linear-gradient(#64e76a,#207e40)!important;box-shadow:inset 0 2px #fff7,0 3px #12482a;font:bold 14px Georgia!important;border:2px solid #dbf5a6!important;border-radius:10px}
/* Unified visual quality across all game views. */
html.z17-fit .game-view:not(.hidden){background:radial-gradient(ellipse at 55% 0,#35435b,#101623 75%)!important}
html.z17-fit .game-top{background:linear-gradient(90deg,#2b3041,#151d2d);border:2px solid #97784d;border-radius:13px;padding:7px 17px;box-shadow:inset 0 2px #fff3ca25,0 5px 14px #0005}
html.z17-fit .game-top h2{font:bold 27px Georgia!important;color:#ffe2ab!important}
html.z17-fit .game-layout{grid-template-columns:minmax(0,1fr) 298px!important}
html.z17-fit .scene-card{border:3px solid #bd9658!important;border-radius:14px!important;background:#131c28!important;box-shadow:inset 0 3px #ffefbd4c,0 8px 0 #060b13,0 16px 24px #0008!important}
html.z17-fit .scene-header{background:linear-gradient(#58422f,#272c37)!important;color:#fce1aa!important;border-bottom:1px solid #d0a268}
html.z17-fit .scene-header span:first-child{color:#ffe8b7!important;font:700 11px Georgia!important}
html.z17-fit .scene-toolbar{background:#242f39!important;color:#d9d7d4!important}
html.z17-fit .scene-footer{background:linear-gradient(#4c413b,#1b2634)!important;color:#e9c892!important}
html.z17-fit .mission-panel{border:3px solid #c69b59!important;background:linear-gradient(145deg,#5b4639,#252a39 50%,#141d2b)!important;box-shadow:inset 0 2px #fff4c73c,0 7px 14px #000a!important}
html.z17-fit .panel-heading h3{font:bold 22px Georgia!important;color:#ffe2a8!important}
html.z17-fit .object-list li{background:linear-gradient(155deg,#4d443d,#252c38)!important;border:2px solid #927a5b!important;box-shadow:inset 0 1px #fff4bb20!important}
html.z17-fit .object-list li.done{background:linear-gradient(#27513f,#1d352e)!important;border-color:#66b078!important}
html.z17-fit .object-list .bullet{border:2px solid #e3ba72!important;border-radius:9px!important;box-shadow:inset 0 1px #fff4c753}
html.z17-fit .progress-track{background:#1d1a21!important;border:1px solid #a38959;border-radius:9px}
html.z17-fit .progress-track>div{background:linear-gradient(90deg,#4fcb62,#b4f48a)!important}
html.z17-fit .hint-button{border:2px solid #edd08c!important;border-radius:11px!important;background:linear-gradient(#b94e3e,#73313c)!important;color:#fff0d0!important;box-shadow:inset 0 2px #fff1cb36}
.found-pulse{position:absolute;z-index:35;pointer-events:none;top:40%;left:50%;transform:translateX(-50%);font:800 24px Georgia;color:#e3ffb6;text-shadow:0 2px 4px #000,0 0 15px #50dc75;white-space:nowrap;animation:foundFloat 1.05s ease-out both}
@keyframes foundFloat{0%{opacity:0;transform:translate(-50%,25px) scale(.76)}15%{opacity:1;transform:translate(-50%,0) scale(1.07)}80%{opacity:1}100%{opacity:0;transform:translate(-50%,-45px) scale(.9)}}
html.z17-fit .levels-grid-tile{background:linear-gradient(150deg,#554337,#242f42)!important;border:2px solid #c49d5e!important;border-radius:13px!important;transition:transform .16s,filter .16s;box-shadow:inset 0 2px #fff4cc2e,0 5px 9px #0007}
html.z17-fit .levels-grid-tile:not(:disabled):hover{transform:translateY(-3px);filter:brightness(1.12)}
html.z17-fit .map-chapter{border:2px solid #b9955e!important;background:#222a35!important;box-shadow:0 4px 10px #0008!important}
html.z17-fit .map-chapter-info{background:linear-gradient(#3e362c,#1d2734)!important}
html.z17-fit .map-chapter-button{background:linear-gradient(#9e633e,#502d2e)!important;color:#fff0bf!important}
@media(prefers-reduced-motion:reduce){.magic-spark,.found-pulse{animation:none!important}}
/* Desktop fit mode is the target. On narrow portrait screens, hide ornamental layers only. */
@media(max-width:759px){.menu-magic,.hero-hotel-caption{display:none}.hub-switcher{gap:3px}.hub-tab{font-size:9px;padding:5px}.case-open-button{width:100%}}
