/* Shared visual polish. Reward-card artwork and .memory-card styles are excluded. */
.world {
  --glass-fill:linear-gradient(135deg,rgba(235,248,255,.25),rgba(225,244,255,.25) 62%,rgba(246,232,255,.25));
  --glass-line:#ffffffc9;
  --glass-shadow:inset 0 1px 0 #ffffffe6,inset 0 -1px 0 #ffffff45,0 16px 42px #426c8b14;
  --glass-blur:16px;
  --glass-control:#f7fcffe3;
}

/* The old opacity entrance creates a backdrop root, blocking sea refraction
   from reaching the surfaces within main. Keep the other individual effects. */
body .world main{animation:none}

body .world :is(.glass,.hero-copy,.birthday-seal,.day,.oc-slide,.info-note,.privacy-note,.detail-dialog,.map-status){
  background:var(--glass-fill);
  border:1px solid var(--glass-line);
  box-shadow:var(--glass-shadow);
  -webkit-backdrop-filter:blur(var(--glass-blur)) saturate(135%);
  backdrop-filter:blur(var(--glass-blur)) saturate(135%);
}

/* Light tints distinguish the surfaces without making their contents fade. */
body .world .ticket{background:linear-gradient(140deg,#ffffff70,#dcefff38 65%,#eed8f13d)}
body .world .pass-preview{background:linear-gradient(140deg,#ffffff70,#d6f3ff38 58%,#eddef53d)}
body .world .birthday-seal{background:linear-gradient(125deg,#fff3f975,#f4dbee47)}
body .world .oc-slide{background:linear-gradient(140deg,#ffffff70,var(--oc-glass-tint,#e2cbe83d),#f5fbff29)}
body .world .oc-blue{--oc-glass-tint:#b9d9f040}
body .world .oc-green{--oc-glass-tint:#c5e1d640}
body .world .oc-purple{--oc-glass-tint:#c7c3e840}
body .world .oc-slide .oc-caption{
  background:linear-gradient(130deg,#f5fbffad,#edf8ff66);
  -webkit-backdrop-filter:blur(9px);
  backdrop-filter:blur(9px);
}
body .world .day.done{background:linear-gradient(135deg,#e8fff682,#bfe3ed70);border-color:#81b2c4}
body .world .day:last-child:not(.done){background:linear-gradient(135deg,#faf4ff70,#dfd0f43d)}
body .world .day.current{box-shadow:0 0 0 2px #80b2ce70,var(--glass-shadow)}
body .world .detail-dialog{background:linear-gradient(135deg,#f5fbffb8,#e5f4ff8f);box-shadow:var(--glass-shadow),0 30px 90px #28577733}
body .world .detail-dialog::backdrop{background:#244d6a52;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}

/* Controls retain a readable backing and their existing focus/disabled states. */
body .world :is(.form-field input,.form-field select,.copy-row input,.filter-controls input,.filter-controls select){background:var(--glass-control)}
body .world .btn:not(.primary):not(.reward){background:#f5fbffbd}
body .world .filter-tabs{background:#f4fbff70;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
body .world .filter-tabs button[aria-pressed="true"]{background:#f8fcffdb;box-shadow:inset 0 1px white,0 3px 10px #6284a61a}
body .world .copy-row button{background:#f5fbffd9}

@media(max-width:620px){
  .world{--glass-blur:10px}
  body .world .hero-copy{background:linear-gradient(135deg,#ffffff8c,#edfaff52 65%,#f9edf54d)}
  body .world .oc-slide .oc-caption{background:linear-gradient(130deg,#f5fbffb8,#edf8ff80)}
}

/* Preserve legibility when blur is unavailable; no translucent text or images. */
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  body .world :is(.glass,.hero-copy,.birthday-seal,.day,.oc-slide,.info-note,.privacy-note,.detail-dialog,.map-status){background:#edf9ffed}
  body .world .oc-slide .oc-caption{background:#f5fbfff2}
}

/* Softer translucent surfaces throughout the site; keep text and artwork opaque. */
body .world :is(.ticket,.pass-preview,.section-heading,.news-strip,.destination,.island-story,.sidebar-card,.task-card,.collection-summary,.filter-bar,.mailbox-side,.letter,.draw-info,.checkin-summary,.site-footer,.floating-note,.birthday-seal){background:var(--glass-fill);border-color:var(--glass-line);box-shadow:var(--glass-shadow)}

/* Ocean depth: distinguish the photo layer, translucent panes, and floating UI.
   Do not change the opacity of images, card illustrations or text. */
body .world{
  --glass-fill:linear-gradient(130deg,rgba(241,251,255,.19),rgba(214,239,252,.14) 58%,rgba(241,224,255,.18));
  --glass-line:rgba(255,255,255,.67);
  --glass-shadow:inset 0 1px 0 rgba(255,255,255,.75),inset 0 -1px 0 rgba(255,255,255,.16),0 10px 30px rgba(49,103,148,.12),0 25px 65px rgba(51,94,147,.07);
  --glass-blur:21px;
}
body .world :is(.glass,.hero-copy,.birthday-seal,.day,.oc-slide,.info-note,.privacy-note,.map-status,.ticket,.pass-preview,.news-strip,.destination,.island-story,.sidebar-card,.task-card,.collection-summary,.filter-bar,.mailbox-side,.letter,.draw-info,.checkin-summary,.floating-note){
  background:var(--glass-fill);
  border:1px solid var(--glass-line);
  box-shadow:var(--glass-shadow);
  -webkit-backdrop-filter:blur(var(--glass-blur)) saturate(145%) brightness(1.035);
  backdrop-filter:blur(var(--glass-blur)) saturate(145%) brightness(1.035);
}
body .world :is(.hero-copy,.ticket,.mailbox-side,.draw-info,.checkin-summary){
  box-shadow:inset 0 1px 0 rgba(255,255,255,.85),0 14px 36px rgba(45,104,147,.13),0 32px 76px rgba(38,90,138,.08);
}
body .world :is(.card-inner,.card-picture,.memory-card,.card-back){backdrop-filter:none}
@media(max-width:620px){body .world{--glass-blur:12px}}

/* liquid3: more of the sea passes through; refraction stays in the surface,
   never in text opacity or character artwork. Inputs and dialogs keep backing. */
body .world{
  --glass-fill:linear-gradient(130deg,rgba(245,253,255,.14),rgba(214,242,253,.08) 58%,rgba(239,229,255,.12));
  --glass-line:rgba(255,255,255,.74);
  --glass-blur:14px;
}
body .world :is(.hero-copy,.glass,.floating-note,.birthday-seal,.news-strip,.letter,.sidebar-card,.task-card){
  background:var(--glass-fill);
  box-shadow:inset 0 1px 1px #ffffffd9,inset 0 -1px 0 #ffffff40,0 16px 42px #366d8b1a;
  -webkit-backdrop-filter:blur(var(--glass-blur)) saturate(125%);
  backdrop-filter:blur(var(--glass-blur)) saturate(125%);
}
.ambient-surface{position:relative}
.glass-breath-light{display:block;position:absolute;inset:1px;border-radius:inherit;pointer-events:none!important;opacity:.18;background:radial-gradient(ellipse at 15% 5%,#fff8,transparent 56%),radial-gradient(ellipse at 90% 95%,#d0faff66,transparent 60%);background-size:180% 160%;background-position:0% 35%;z-index:-1}
.island-sticker use{transform-box:fill-box;transform-origin:center}
/* Existing home pseudo-elements are paused alongside the new managed effects. */
.world[data-ambient-active="false"] .home-hero::before,.world[data-ambient-active="false"] .home-hero::after,
.world .home-hero[data-ambient-running="false"]::before,.world .home-hero[data-ambient-running="false"]::after{animation-play-state:paused!important}
@media(max-width:620px){body .world{--glass-blur:10px}}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  body .world :is(.hero-copy,.glass,.floating-note,.birthday-seal,.news-strip,.letter,.sidebar-card,.task-card){background:#eaf6fff2}
  .glass-breath-light{display:none}
}

/* liquid-site1: full-page treatment for every public route, not home only.
   Existing room layouts, paper souvenirs, card art and readable inputs stay intact. */
body .world[data-liquid-site]{
  --liquid-accent:rgba(182,181,231,.24);
  --liquid-room-fill:linear-gradient(128deg,rgba(240,254,255,.15),rgba(192,232,248,.07) 58%,rgba(230,223,251,.11));
}
body:not([data-page="home"]) .world[data-liquid-site]{
  background:radial-gradient(ellipse at 87% 12%,var(--liquid-accent),transparent 52%),linear-gradient(145deg,#c8edf2,#b5dfed 48%,#dce6f7);
}
body[data-page="office"] .world{--liquid-accent:rgba(163,214,198,.24)}
body[data-page="checkin"] .world{--liquid-accent:rgba(245,223,169,.18)}
body[data-page="draw"] .world{--liquid-accent:rgba(164,177,225,.28)}
body[data-page="mailbox"] .world{--liquid-accent:rgba(226,190,213,.22)}
.site-liquid{position:fixed;inset:0;z-index:-2;overflow:hidden;pointer-events:none!important;background:radial-gradient(ellipse at 8% 5%,#f0ffff59,transparent 56%),linear-gradient(140deg,#89d5e333,#b2d3ef22 60%,#d2bcea2b);contain:strict}
.liquid-flow{display:block;position:absolute;inset:-15%;pointer-events:none;filter:blur(3px);background:radial-gradient(ellipse 38% 6% at 25% 25%,#ffffff8c,transparent 85%),radial-gradient(ellipse 35% 5% at 72% 70%,#e0ffffb3,transparent 92%),repeating-conic-gradient(from 30deg at 55% 45%,#ffffff12 0 3deg,transparent 8deg 46deg);transform-origin:center;opacity:.44}
.liquid-flow-far{background:radial-gradient(ellipse 42% 8% at 70% 18%,#ffffffb3,transparent 85%),radial-gradient(ellipse 36% 9% at 15% 80%,#bce8ff80,transparent 95%);filter:blur(14px);opacity:.3}
body[data-page="home"] .site-liquid{opacity:.25}
body .world[data-liquid-site] [data-liquid-surface]{
  background:var(--liquid-room-fill);
  border-color:#ffffffb8;
  box-shadow:inset 0 1px 1px #ffffffe0,inset 0 -1px 0 #ffffff38,0 14px 38px #356e8d1c;
  -webkit-backdrop-filter:blur(14px) saturate(130%);
  backdrop-filter:blur(14px) saturate(130%);
}
body .world[data-liquid-site] [data-liquid-room]{border-radius:26px}
/* Fixed meteors must stay relative to the viewport. Blur a sibling decorative
   plane instead of making their postal-room ancestor a containing block. */
body .world[data-liquid-site] .postal-experience[data-liquid-room]{isolation:isolate;-webkit-backdrop-filter:none;backdrop-filter:none}
.liquid-room-glass{position:absolute;inset:0;border-radius:inherit;pointer-events:none!important;z-index:-1;-webkit-backdrop-filter:blur(14px) saturate(130%);backdrop-filter:blur(14px) saturate(130%)}
/* A room already refracts the sea. Its inner cards need only a light second
   pass; avoid repeatedly blurring a large animated backdrop on phones. */
body .world[data-liquid-site] [data-liquid-room] [data-liquid-surface]{-webkit-backdrop-filter:blur(4px) saturate(125%);backdrop-filter:blur(4px) saturate(125%)}
body .world[data-ambient-active="false"] :is(.ocean,.ambient,.bubble),body .world[data-ambient-active="false"] .ocean::after{animation-play-state:paused!important}
body .world[data-liquid-site] :is(.filter-bar,.checkin-summary,.privacy-note,.info-note)[data-liquid-surface]{border-radius:18px}
body .world[data-liquid-site] :is(.site-header,.site-footer,.mobile-nav)[data-liquid-surface]{border-color:#ffffffa6}
body:not([data-page="home"]) .world[data-liquid-site] .site-header{border-radius:22px}
.liquid-room-photo{position:absolute;inset:0;border-radius:inherit;pointer-events:none!important;background-image:var(--liquid-room-photo,none);background-position:var(--liquid-room-position,center);background-size:var(--liquid-room-size,cover);opacity:.12;filter:blur(7px) saturate(.7);z-index:-1}
/* Preserve state distinctions; lighter glass must not erase a completed day. */
body .world[data-liquid-site] .day.done{background:linear-gradient(135deg,#c4f3dd55,#bee1e338);border-color:#76a799}
body .world[data-liquid-site] .day.current{border-color:#578da9}
@media(max-width:620px){
  body .world[data-liquid-site] [data-liquid-surface]{-webkit-backdrop-filter:blur(9px) saturate(120%);backdrop-filter:blur(9px) saturate(120%)}
  body:not([data-page="home"]) .world[data-liquid-site] .site-header{border-radius:18px}
  body .world[data-liquid-site] .mobile-nav{border-radius:18px 18px 0 0;background:linear-gradient(120deg,#e5faffb8,#e5eefeaa)}
  .liquid-flow{filter:blur(5px)}.liquid-flow-far{filter:blur(12px)}
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  body .world[data-liquid-site] [data-liquid-surface]{background:#eaf6fff2}
  .liquid-room-photo{display:none}
}
