/* Geometry and interaction are shared; colours and fonts belong to each project. */
[data-titan-lp]{--tl-accent:#b8f4d9;--tl-text:#f1f5eb;--tl-ink:#10231f;--tl-surface:#102624;--tl-font:Arial,Helvetica,sans-serif}
[data-titan-lp="world"]{--tl-accent:var(--world-brass);--tl-text:var(--world-vellum);--tl-ink:var(--world-ink);--tl-surface:#111c25;--tl-font:var(--world-sans,Arial,sans-serif)}
[data-titan-lp="motl"]{--tl-accent:#f6f1e7;--tl-text:#f6f1e7;--tl-ink:#532a31;--tl-surface:#352b26}
[data-titan-lp] .tl-hero-actions{margin-top:25px;max-width:480px}
[data-titan-lp] .tl-purchase-actions{display:grid;grid-template-columns:1fr 1fr;gap:16px}
[data-titan-lp] .tl-buy{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:54px;padding:14px 23px;border:1px solid var(--tl-accent);border-radius:3px;background:var(--tl-accent);color:var(--tl-ink);font:600 14px/1.4 var(--tl-font);letter-spacing:0;text-decoration:none;transition:filter .2s;cursor:pointer}
[data-titan-lp] .tl-buy:hover{filter:brightness(1.08)}
[data-titan-lp] .tl-buy--outline{background:transparent;color:var(--tl-text);border-color:color-mix(in srgb,var(--tl-text) 55%,transparent)}
[data-titan-lp] .tl-explore{display:inline-flex;align-items:center;gap:12px;margin-top:20px;padding:4px 0;color:var(--tl-text);font:500 15px/1.5 var(--tl-font);text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px;background:none;border:0;border-radius:0;box-shadow:none;transform:none}
[data-titan-lp] .tl-explore:hover{text-decoration-thickness:2px}
[data-titan-lp] :is(.tl-buy,.tl-explore):focus-visible{outline:3px solid var(--tl-accent);outline-offset:4px}
[data-titan-lp] .tl-dock{position:fixed;z-index:1000;left:50%;bottom:max(16px,env(safe-area-inset-bottom));transform:translateX(-50%);width:max-content;max-width:calc(100% - 24px);display:flex;align-items:center;gap:12px;padding:9px;background:var(--tl-surface);color:var(--tl-text);border:1px solid color-mix(in srgb,var(--tl-accent) 45%,transparent);border-radius:5px;box-shadow:0 8px 30px #0004}
[data-titan-lp] .tl-dock strong{font:500 14px/1.3 var(--tl-font);padding-inline:9px;max-width:175px}
[data-titan-lp] .tl-dock .tl-buy{min-height:44px;font-size:13px;padding:10px 17px;white-space:nowrap}
[data-titan-lp] [hidden]{display:none!important}
titan-lp-ui{display:none}
[data-titan-lp] .world-lp__reveal{opacity:1;transform:none}
[data-titan-lp] .tl-reveal{animation:none;transition:opacity .7s ease,transform .7s ease}
[data-titan-lp] .tl-reveal-pending{opacity:0;transform:translateY(22px)}
[data-titan-lp] .tl-revealed{opacity:1;transform:none}
titan-map-explorer{display:block;color:var(--tl-text);font:14px/1.5 var(--tl-font)}
titan-map-explorer [data-map-viewer],titan-map-explorer [data-map-viewer] *{user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;box-sizing:border-box}
titan-map-explorer img{-webkit-user-drag:none;pointer-events:none}
titan-map-explorer [data-viewer-canvas]{isolation:isolate;touch-action:pan-y;cursor:grab}
titan-map-explorer [data-viewer-canvas].is-dragging{cursor:grabbing!important}
titan-map-explorer [data-tile-stage]{transition:none!important;transform-origin:center}
titan-map-explorer [data-tile-layer] img{max-height:none!important;max-width:none!important;min-height:0;min-width:0;object-fit:fill;aspect-ratio:auto}
titan-map-explorer button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation}
titan-map-explorer :is(button,[tabindex]):focus-visible{outline:3px solid var(--tl-accent);outline-offset:-3px}
.tl-viewer-top{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--tl-surface);padding:12px 16px}
.tl-viewer-top>span:first-child{font-size:11px;letter-spacing:.1em;text-transform:uppercase}
.tl-viewer-top [data-viewer-quality]{margin-left:auto;font-size:11px}
.tl-viewer-top button{border:1px solid color-mix(in srgb,var(--tl-text) 40%,transparent);background:transparent;padding:8px 12px;min-height:40px;font-size:12px}
.tl-viewer-gate{position:absolute;inset:0;z-index:101;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;pointer-events:none;background:linear-gradient(transparent,#0003)}
.tl-viewer-gate [data-activate]{pointer-events:auto;box-shadow:0 8px 40px #0007}
.tl-viewer-gate>span{font-size:12px;padding:5px 12px;background:var(--tl-surface);color:var(--tl-text)}
.is-active>.tl-viewer-gate{display:none}
titan-map-explorer [data-overview]{position:absolute;top:14px;right:14px;bottom:auto;left:auto;width:130px;z-index:110;overflow:hidden;border:1px solid var(--tl-accent);background:var(--tl-surface);touch-action:none;box-shadow:0 3px 18px #0005}
titan-map-explorer [data-overview] img{display:block;width:100%;height:auto;max-height:none}
titan-map-explorer [data-overview-frame]{position:absolute;border:2px solid var(--tl-accent);background:color-mix(in srgb,var(--tl-accent) 15%,transparent);pointer-events:none;min-width:3px;min-height:3px}
titan-map-explorer [data-overview-jump]{position:absolute;inset:0;width:100%;height:100%;border:0;background:none;cursor:crosshair;padding:0}
.tl-expanded-ancestor{transform:none!important;filter:none!important;perspective:none!important;contain:none!important;will-change:auto!important;isolation:auto!important;clip-path:none!important}
titan-map-explorer [data-map-viewer].is-expanded{position:fixed!important;inset:12px!important;width:auto!important;height:auto!important;max-width:none!important;max-height:none!important;z-index:2147482000!important;display:grid!important;grid-template-rows:auto minmax(0,1fr) auto;transform:none!important;background:var(--tl-surface);box-shadow:0 0 0 50px #101010ed}
titan-map-explorer [data-map-viewer].is-expanded [data-viewer-canvas]{height:100%!important;min-height:0!important;aspect-ratio:auto!important;touch-action:none}
titan-map-explorer [data-map-viewer].is-expanded>:last-child{max-height:25svh;overflow:auto}
[data-titan-lp="world"] [data-viewer-canvas] .world-lp__hud{z-index:102;top:auto;bottom:14px;max-width:calc(100% - 190px);pointer-events:none}
[data-titan-lp="world"] .world-lp__zoom-controls{display:flex;flex-direction:row;z-index:102;bottom:14px}
[data-titan-lp="world"] .world-lp__zoom-controls button{min-width:44px;min-height:44px}
@media(max-width:700px){
 [data-titan-lp] .tl-purchase-actions{gap:10px}
 [data-titan-lp] .tl-buy{padding:14px 12px;min-height:50px;font-size:13px;gap:10px}
 [data-titan-lp] .tl-explore{font-size:14px;margin-top:16px}
 [data-titan-lp] .tl-dock{width:calc(100% - 16px);max-width:none;bottom:max(8px,env(safe-area-inset-bottom));gap:8px;padding:8px}
 [data-titan-lp] .tl-dock strong{display:none}
 [data-titan-lp] .tl-dock .tl-buy{flex:1;font-size:12px;padding:10px 12px}
 titan-map-explorer [data-overview]{width:90px;top:10px;right:10px}
 titan-map-explorer [data-map-viewer].is-expanded{inset:5px!important}
 .tl-viewer-top{padding:8px;gap:8px}.tl-viewer-top>span:first-child{font-size:9px;max-width:80px}.tl-viewer-top button{font-size:11px;padding:7px}
 [data-titan-lp="world"] [data-viewer-canvas]{min-height:280px;aspect-ratio:1.13}
 [data-titan-lp="world"] .world-lp__hud>span:first-child,[data-titan-lp="world"] .world-lp__hud>i{display:none}
 [data-titan-lp="world"] [data-viewer-canvas] .world-lp__hud{left:10px;bottom:10px;max-width:calc(100% - 155px);font-size:9px;gap:7px}
 [data-titan-lp="world"] .world-lp__zoom-controls{right:10px;bottom:10px;gap:4px}
 [data-titan-lp="world"] .world-lp__zoom-controls button{padding:0;width:40px;min-width:40px;height:44px}
}
@media(prefers-reduced-motion:reduce){[data-titan-lp] .tl-reveal{opacity:1;transform:none;transition:none}[data-titan-lp] .tl-buy{transition:none}}

.tl-expanded-ancestor:not(body):not(html){overflow:visible!important;z-index:auto!important}

@media (max-width:760px) and (prefers-reduced-motion:no-preference){
 [data-titan-lp="world"] .world-lp__hero-map img,[data-titan-lp="world"] .world-lp__hero-map svg{animation-name:tl-world-mobile-pan;animation-duration:24s;animation-timing-function:linear}
 [data-titan-lp="woe"] .woe-hero--fullscreen .woe-hero-still{animation-name:tl-woe-mobile-pan;animation-duration:24s;animation-timing-function:linear}
 [data-titan-lp="motl"] .mla-hero-map img{animation-name:tl-motl-mobile-pan;animation-duration:24s;animation-timing-function:linear}
}
@keyframes tl-world-mobile-pan{from{transform:scale(1.24) translate3d(-7%,-3%,0)}to{transform:scale(1.34) translate3d(7%,3%,0)}}
@keyframes tl-woe-mobile-pan{from{transform:translate(-62%,-47%) scale(1.04)}to{transform:translate(-38%,-53%) scale(1.1)}}
@keyframes tl-motl-mobile-pan{from{transform:scale(1.65) translate3d(-10%,-3%,0)}to{transform:scale(1.82) translate3d(10%,3%,0)}}

html.lock [data-titan-lp] .tl-dock{display:none!important;pointer-events:none}
html:has(dialog[open],[role="dialog"][open]) [data-titan-lp] .tl-dock{display:none!important;pointer-events:none}
