/* PALUSA 3.0 shared-guide reader. Content stays calm; the city gets full-volume Himmel. */
:root, :root[data-theme="light"] {
  color-scheme: light;
  --ice:#f7f5f2; --snow:#fff; --fjord:#272330; --ink:#272330; --soft:#6d6576;
  --line:#d8d4de; --shadow:none; --surface-soft:#eeecf0; --link:#8a2464;
  --strong-line:#877f91; --sky-soft:#dff1fa;
  --display:'Outfit','Avenir Next','Helvetica Neue',sans-serif;
  --body:'Instrument Sans','Helvetica Neue',Arial,sans-serif;
  --label:'JetBrains Mono','SF Mono',monospace;
}
@media (prefers-color-scheme:dark) {
  :root:not([data-theme="light"]) {
    color-scheme:dark; --ice:#121019; --snow:#1c1924; --fjord:#f7f5f2; --ink:#f7f5f2;
    --soft:#c4becb; --line:#423b4d; --surface-soft:#2e2a38; --link:#ebb2d5;
    --strong-line:#8e849b; --sky-soft:#2e2a38;
  }
}
:root[data-theme="dark"] {
  color-scheme:dark; --ice:#121019; --snow:#1c1924; --fjord:#f7f5f2; --ink:#f7f5f2;
  --soft:#c4becb; --line:#423b4d; --surface-soft:#2e2a38; --link:#ebb2d5;
  --strong-line:#8e849b; --sky-soft:#2e2a38;
}
* { box-sizing:border-box; }
body { background:var(--ice); color:var(--ink); font:17px/1.6 var(--body); }
::selection { background:#ebb2d5; color:#4b193a; }
.aurora { display:none; }
main { width:min(100% - 64px,1200px); padding:0 0 40px; }
h1,h2,h3,h4,.brand { font-family:var(--display); }
h1,h2 { font-weight:800; letter-spacing:-.04em; text-wrap:balance; }
h1,h2,h3,h4,p,a,button { overflow-wrap:anywhere; }
a { color:var(--link); text-underline-offset:.22em; }
button,select { font-family:var(--body); }
a:focus-visible,button:focus-visible,select:focus-visible { outline:3px solid #c0338b; outline-offset:4px; }
.brand { position:relative; display:flex; width:100%; min-height:80px; gap:12px; color:var(--ink); font-size:21px; font-weight:700; letter-spacing:-.035em; }
.brand::after { content:''; position:absolute; inset:auto 0 0; height:2px; background:linear-gradient(90deg,#c0338b,#564797 45%,#2eaae1); }
.brand-mark { width:40px; height:40px; border-radius:0; background:#2eaae1; box-shadow:none; }
.brand-mark img { width:24px; height:24px; }
.hero { display:flex; flex-direction:column; align-items:stretch; gap:24px; padding:40px; margin:24px 0 0; background:#2eaae1; }
.hero-context { flex:none; flex-direction:column; gap:8px; }
.eyebrow { padding:0; border:0; border-radius:0; background:none; color:var(--soft); font:600 11px/1.6 var(--label); letter-spacing:.1em; }
.eyebrow i { border-radius:0; background:currentColor; box-shadow:none; }
.hero .eyebrow,.hero .city,.hero .guide-count { color:#101c36; }
.hero-title-row { align-items:end; flex-wrap:wrap; gap:24px; }
.hero h1 { max-width:800px; color:#123c52; font-size:clamp(40px,6vw,72px); line-height:1; letter-spacing:-.04em; }
.hero .guide-count { white-space:normal; font-weight:600; }
.guide-count span { flex:none; border-radius:0; background:#b1dff3; color:#123c52; }
.intro { max-width:65ch; color:var(--soft); }
.shared-by { padding:24px 0; margin:0 0 24px; border:0; border-bottom:1px solid var(--line); border-radius:0; background:none; box-shadow:none; }
.shared-by-mark { border-radius:0; background:var(--sky-soft); color:var(--ink); }
.shared-by h2 { font:600 15px/1.4 var(--body); letter-spacing:0; }
.shared-by p { max-width:80ch; margin-top:4px; color:var(--soft); }
.preview,.map-preview,.desktop-explorer,.full-panel,.desktop-map-panel,.map-links,.desktop-create {
  border:1px solid var(--line); border-radius:0; background:var(--snow); box-shadow:none; backdrop-filter:none;
}
.preview-head p,.desktop-explorer>div>p,.desktop-full-heading p:first-child { font:600 11px/1.6 var(--label); letter-spacing:.1em; }
.preview-head h2,.map-preview h2,.desktop-map-head h3 { font-size:26px; letter-spacing:-.03em; }
.desktop-full-heading h2 { font-size:clamp(32px,4vw,44px); line-height:1.05; }
.desktop-full-layout { gap:24px; grid-template-columns:minmax(300px,1fr) minmax(0,2fr); }
.full-panel { padding:24px; }
.full-guide-head { flex-wrap:wrap; }
.full-guide-head h3 { font-size:26px; font-weight:700; letter-spacing:-.025em; }
.place-total { border-radius:0; background:var(--surface-soft); color:var(--ink); font-weight:600; }
.place-card,.full-place { border-radius:0; background:var(--ice); border-color:var(--line); }
.full-place { padding:20px; gap:12px; cursor:default; transition:border-color 120ms; }
.full-place:hover,.full-place:focus-within { border-color:var(--strong-line); box-shadow:none; transform:none; }
.full-place-title { color:var(--ink); font-size:20px; font-weight:700; line-height:1.2; }
.full-place-address { color:var(--soft); line-height:1.5; }
.full-place-note { color:var(--ink); font-size:15px; line-height:1.65; border-color:#2eaae1; }
.full-place-rating { color:var(--link); font-weight:600; }
.place-mark,.locked-mark,.link-platform,.desktop-create-mark,.qr-mark { border-radius:0; box-shadow:none; }
.cat-dot { border-radius:0; }
.guide-chip,.desktop-guide-chip,.desktop-category-chip,.full-place-locate {
  min-height:44px; border:1px solid var(--strong-line); border-radius:0; background:var(--snow); color:var(--ink);
  box-shadow:none; font-weight:600; transition:background-color 120ms,color 120ms;
}
.guide-chip:hover,.guide-chip.active,.desktop-guide-chip:hover,.desktop-guide-chip.active,
.desktop-category-chip:hover:not(:disabled),.desktop-category-chip.active,.full-place-locate:hover {
  background:#c0338b; border-color:#c0338b; color:#fff; box-shadow:none;
}
.desktop-category-chip:disabled { opacity:.45; }
.map-canvas,.desktop-map { background:var(--sky-soft); }
.desktop-map-panel { height:min(calc(100svh - 40px),760px); }
.full-links a,.secondary { color:var(--link); }
.full-links a { min-height:44px; }
.link-platform.instagram { background:#c0338b; }
.locked { border-radius:0; border-color:var(--strong-line); background:var(--surface-soft); }
.locked-mark { background:var(--ink); color:var(--snow); }
.desktop-create { grid-template-columns:48px minmax(0,1fr); padding:24px; }
.desktop-create-mark,.qr-mark { background:#b1dff3; color:#123c52; }
.desktop-create a,.primary,.home,.qr-app-store {
  min-height:48px; border:0; border-radius:0; background:#c0338b; box-shadow:none; color:#fff;
  font-weight:600; text-decoration:none; transition:background-color 120ms;
}
.desktop-create a:hover,.primary:hover,.home:hover,.qr-app-store:hover { background:#8a2464; box-shadow:none; transform:none; }
.primary svg { transition:transform 200ms steps(2,end); }
.primary:hover svg,.primary:focus-visible svg { transform:translateX(8px); }
.secondary,.qr-launch { min-height:44px; }
.qr-dialog,.qr-card { border-radius:0; box-shadow:none; }
.qr-dialog::backdrop { background:#121019b8; backdrop-filter:none; }
.qr-card { --fjord:#272330; --ink:#272330; --soft:#6d6576; background:#fff; border:1px solid #d8d4de; padding:32px 24px; }
.qr-card h2 { font-size:30px; line-height:1.1; }
.qr-code-wrap { border-radius:0; background:#fff; }
.qr-close { width:44px; height:44px; border-radius:0; background:#eeecf0; color:#272330; }
.report-card select, .guide-report select { width:100%; min-height:48px; border:1px solid #877f91; border-radius:0; background:#fff; color:#272330; font-size:16px; }
.report-card .secondary { color:#8a2464; }
.footer { display:flex; align-items:center; flex-wrap:wrap; gap:24px; margin-top:32px; padding:24px; background:#121019; color:#c4becb; }
.footer-brand { color:#c4becb; margin-right:auto; }
.footer a { color:#f7f5f2; min-height:44px; display:inline-flex; align-items:center; }
.footer-studio img { width:112px; height:auto; }
.privacy-note { color:var(--soft); }
/* Standalone unavailable-link and report states use the same reader assets. */
.guide-error { display:grid; min-height:100svh; place-items:center; padding:24px; }
main.card { width:min(100%,560px); margin:0; padding:40px 32px; border:1px solid var(--line); background:var(--snow); text-align:center; }
.card .mark { display:grid; place-items:center; width:56px; height:56px; margin:0 auto 24px; background:#2eaae1; }
.card h1 { font-size:clamp(32px,5vw,48px); line-height:1.05; color:var(--ink); }
.card p:not(.eyebrow) { color:var(--soft); }
.card .home { display:inline-flex; align-items:center; justify-content:center; padding:12px 24px; margin-top:24px; }
.guide-report main { max-width:600px; padding:32px 24px; margin:40px auto; background:var(--snow); border:1px solid var(--line); }
.guide-report form { display:grid; gap:16px; }
.guide-report button { margin-top:8px; cursor:pointer; }
@media (max-width:800px) {
  main { width:calc(100% - 40px); }
  .hero { padding:32px 24px; }
  .hero-title-row { align-items:start; flex-direction:column; gap:16px; }
  .desktop-full-layout { grid-template-columns:1fr; }
  .desktop-map-panel { height:auto; min-height:400px; }
  .desktop-map { height:320px; }
  .full-panel { padding:20px; }
}
@media (max-width:420px) {
  main { width:calc(100% - 32px); }
  .brand { min-height:72px; font-size:19px; }
  .hero { margin-top:16px; padding:28px 20px; }
  .hero h1 { font-size:40px; }
  .full-panel { padding:16px; }
  .full-place { padding:16px; }
  .full-place-top { grid-template-columns:30px minmax(0,1fr); }
  .full-place-rating { grid-column:2; }
  .footer { align-items:flex-start; flex-direction:column; gap:8px; }
  .shared-by { grid-template-columns:32px minmax(0,1fr); gap:8px; }
  .shared-by-mark { width:32px; height:32px; }
}
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
  .primary:hover svg,.primary:focus-visible svg { transform:none; }
}
.qr-app-store { display:inline-flex; align-items:center; justify-content:center; padding:12px 20px; line-height:1.4; }
.qr-code-wrap { box-shadow:none; border:1px solid #d8d4de; }
