/* Brave Island styles */
:root {
  --ink: #3b2a20;
  --card: #ffffff;
  --blue: #5b2fa0; --green: #4f8f5f; --orange: #cf7f12; --red: #c9455e; --purple: #8b5cd6;
  --yellow: #f2c14e; --teal: #2f8f8a; --pink: #b8508f; --sky: #7f6ad8; --gold: #e0a82e; --ivory: #fbf6e9; --lav: #efe6ff; --deep: #3d1d73;
  --shadow: 0 .3rem 0 rgba(45, 20, 70, .22);
}
* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; -webkit-user-select: none; user-select: none; }
html { font-size: clamp(15px, 2.7vmin, 30px); }
html, body { margin: 0; height: 100%; overflow: hidden; color: var(--ink); touch-action: manipulation;
  font-family: "Segoe UI", "Trebuchet MS", "Nunito", system-ui, -apple-system, Roboto, sans-serif; font-weight: 700; }
input, select { -webkit-user-select: text; user-select: text; font-family: inherit; }
button { font-family: inherit; cursor: pointer; }
button:disabled { cursor: default; }

#app { position: fixed; inset: 0; display: flex; flex-direction: column;
  background: linear-gradient(180deg, #e9defb 0%, #fbf6e9 55%, #f6ebc6 100%); }
#top { display: flex; align-items: center; gap: .6rem; padding: .5rem .8rem; flex: 0 0 auto; }
#title { flex: 1; text-align: center; font-size: 1.5rem; font-weight: 900; text-shadow: 0 2px 0 rgba(255,255,255,.7); }
.iconbtn { width: 3rem; height: 3rem; border-radius: 1rem; border: 0; background: #fff; font-size: 1.5rem; box-shadow: var(--shadow); }
.iconbtn:active { transform: translateY(.15rem); box-shadow: none; }
#btnParent { opacity: .55; font-size: 1.2rem; width: 2.6rem; height: 2.6rem; }
.starchip { background: #fff; border-radius: 1.2rem; padding: .35rem .9rem; font-size: 1.3rem; font-weight: 900; box-shadow: var(--shadow); white-space: nowrap; }
#screen { flex: 1 1 auto; overflow-y: auto; overflow-x: hidden; padding: .4rem 1rem 1.2rem; position: relative; }

/* buttons */
.btn { border: 0; border-radius: 1.3rem; padding: .7rem 1.4rem; font-size: 1.25rem; font-weight: 900; color: #fff;
  box-shadow: var(--shadow); transition: transform .08s; }
.btn:active:not(:disabled) { transform: translateY(.2rem); box-shadow: 0 .1rem 0 rgba(45,20,70,.22); }
.btn:disabled { opacity: .5; }
.btn.big { font-size: 1.6rem; padding: .85rem 2rem; }
.btn.small { font-size: 1rem; padding: .5rem 1rem; border-radius: 1rem; }
.c-blue { background: var(--blue); } .c-green { background: var(--green); } .c-orange { background: var(--orange); }
.c-red { background: var(--red); } .c-purple { background: var(--purple); } .c-teal { background: var(--teal); }
.c-pink { background: var(--pink); } .c-sky { background: var(--sky); }
.c-yellow { background: var(--yellow); color: var(--ink); } .c-island { background: linear-gradient(135deg, #8b5cd6, #3d1d73); }
.pulse { animation: pulse 1.4s ease-in-out infinite; }

/* buddy */
.buddy { display: flex; align-items: center; gap: .7rem; margin: .2rem auto .5rem; max-width: 46rem; width: 100%; }
.buddy-face { flex: 0 0 auto; width: 4.2rem; height: 4.2rem; border-radius: 50%; background: #fff; display: flex; align-items: center; justify-content: center;
  font-size: 2.6rem; box-shadow: var(--shadow); }
.buddy.small .buddy-face { width: 3.2rem; height: 3.2rem; font-size: 2rem; }
.bubble { position: relative; flex: 1 1 auto; background: #fff; border-radius: 1.2rem; padding: .6rem .9rem; display: flex; align-items: center; gap: .6rem; box-shadow: var(--shadow); min-height: 3.2rem; }
.bubble::before { content: ""; position: absolute; left: -.55rem; top: 50%; margin-top: -.5rem; border: .5rem solid transparent; border-right-color: #fff; border-left: 0; }
.bubble-text { flex: 1; font-size: 1.1rem; line-height: 1.3; }
.speak-btn { flex: 0 0 auto; border: 0; background: #efe8fa; border-radius: 50%; width: 2.4rem; height: 2.4rem; font-size: 1.1rem; }
.speak-btn:active { transform: scale(.92); }
.buddy-face.talk { animation: talk .5s; } .buddy-face.hop { animation: hop .6s; }

.center-col { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .9rem; text-align: center; min-height: 100%; padding: 1rem; }
.big-emoji { font-size: 5rem; line-height: 1.1; }
.lead { font-size: 1.5rem; font-weight: 900; }
.tiny { font-size: .85rem; opacity: .75; font-weight: 700; }
.bounce { animation: hop 1.2s infinite; }

/* splash + setup */
.splash { min-height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1rem; text-align: center; cursor: pointer; padding: 1rem; }
.splash-sun { font-size: 4rem; animation: spin 20s linear infinite; }
.splash-title { font-size: 3.6rem; font-weight: 900; color: var(--deep); text-shadow: 0 .2rem 0 var(--gold), 0 .45rem 0 rgba(45,20,70,.2); letter-spacing: .05rem; }
.splash-buddy { font-size: 6rem; animation: hop 1.4s infinite; }
.splash-sub { font-size: 1.4rem; font-weight: 800; }
.name-input { font-size: 1.8rem; padding: .6rem 1rem; border-radius: 1.2rem; border: .2rem solid #c4b2e8; text-align: center; width: min(22rem, 90vw); font-weight: 800; color: var(--ink); }
.name-input:focus { outline: none; border-color: var(--blue); }
.buddy-row { display: flex; gap: .7rem; justify-content: center; }
.pick { font-size: 2.6rem; width: 4.4rem; height: 4.4rem; border-radius: 1.2rem; border: .2rem solid transparent; background: #fff; box-shadow: var(--shadow); }
.buddy-row.small .pick { font-size: 1.7rem; width: 3rem; height: 3rem; border-radius: .9rem; }
.pick.age { font-size: 1.8rem; width: 3.6rem; height: 3.6rem; font-weight: 900; color: var(--ink); }
.age-row { flex-wrap: wrap; }
.pick.on { border-color: var(--orange); background: #fff4d6; transform: scale(1.08); }

/* home */
.home { max-width: 70rem; margin: 0 auto; }
.home-top { display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; }
.home-top .buddy { flex: 1 1 22rem; margin: 0; }
.levelcard { flex: 1 1 16rem; background: #fff; border-radius: 1.2rem; padding: .7rem 1rem; box-shadow: var(--shadow); }
.lv-top { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; margin-bottom: .4rem; }
.lv-badge { background: var(--purple); color: #fff; border-radius: .8rem; padding: .1rem .6rem; font-weight: 900; }
.lv-title { font-weight: 900; font-size: 1.1rem; flex: 1; }
.lv-streak { background: #fff1d6; border-radius: .8rem; padding: .1rem .6rem; font-size: .9rem; }
.progress { height: .8rem; background: #e9e0f7; border-radius: 1rem; overflow: hidden; }
.progress-fill { height: 100%; background: linear-gradient(90deg, var(--orange), var(--yellow)); border-radius: 1rem; transition: width .6s; }
.home-mid { display: flex; gap: 1rem; margin: .9rem 0; flex-wrap: wrap; }
.chestcard { flex: 1 1 18rem; display: flex; gap: .8rem; align-items: center; background: #fff; border-radius: 1.2rem; padding: .7rem 1rem; box-shadow: var(--shadow); }
.chestcard.open { background: #fff7d6; }
.chest-e { font-size: 3rem; }
.chest-title { font-weight: 900; font-size: 1.1rem; }
.chest-dots { display: flex; gap: .4rem; margin-top: .3rem; }
.cdot { width: 1.8rem; height: 1.8rem; border-radius: 50%; background: #e9e0f7; display: flex; align-items: center; justify-content: center; font-size: 1rem; }
.cdot.on { background: var(--yellow); }
.mission { flex: 1.4 1 22rem; background: linear-gradient(135deg, #fff, #f7eefb); border-radius: 1.2rem; padding: .7rem 1rem; box-shadow: var(--shadow); display: flex; flex-direction: column; gap: .5rem; align-items: flex-start; }
.mission-top { display: flex; align-items: center; gap: .6rem; width: 100%; justify-content: space-between; }
.mission-tag { font-weight: 900; color: var(--pink); }
.mission-text { font-size: 1.15rem; line-height: 1.3; }
.mission-done { font-weight: 900; color: var(--green); font-size: 1.1rem; }
.games { display: grid; grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr)); gap: 1rem; }
.gcard { position: relative; border: 0; border-radius: 1.5rem; padding: 1rem .8rem; color: #fff; text-align: center; box-shadow: 0 .4rem 0 rgba(45,20,70,.25);
  display: flex; flex-direction: column; align-items: center; gap: .3rem; min-height: 11rem; justify-content: center; transition: transform .1s; }
.gcard:active { transform: translateY(.25rem); box-shadow: 0 .15rem 0 rgba(45,20,70,.25); }
.gcard.c-yellow { color: var(--ink); }
.g-e { font-size: 3.4rem; line-height: 1.1; filter: drop-shadow(0 .15rem 0 rgba(0,0,0,.15)); }
.g-name { font-size: 1.15rem; font-weight: 900; line-height: 1.15; }
.g-blurb { font-size: .8rem; opacity: .92; font-weight: 700; line-height: 1.2; }
.g-badge { position: absolute; top: .4rem; right: .5rem; font-size: 1.3rem; }

/* quiz */
.quiz { max-width: 54rem; margin: 0 auto; display: flex; flex-direction: column; align-items: center; gap: .6rem; }
.dots { display: flex; gap: .4rem; justify-content: center; min-height: 1.6rem; }
.dot { width: 1.5rem; height: 1.5rem; border-radius: 50%; background: rgba(255,255,255,.8); font-size: .9rem; display: inline-flex; align-items: center; justify-content: center; }
.dot.now { background: var(--yellow); box-shadow: 0 0 0 .2rem #fff; }
.dot.done { background: #fff7d6; }
.scene { min-height: 6rem; display: flex; align-items: center; justify-content: center; max-width: 100%; }
.big-scene { font-size: 4.4rem; background: #fff; border-radius: 1.5rem; padding: .4rem 1.4rem; box-shadow: var(--shadow); }
.qtext { font-size: 1.5rem; font-weight: 900; text-align: center; line-height: 1.25; max-width: 40rem; min-height: 2rem; }
.opts-box { width: 100%; }
.opts { display: grid; gap: .9rem; width: 100%; }
.opts.n3 { grid-template-columns: repeat(3, 1fr); }
.opts.n2 { grid-template-columns: repeat(2, 1fr); }
.opts.n4 { grid-template-columns: repeat(4, 1fr); }
.opt { background: #fff; border: .25rem solid #d6c8f0; border-radius: 1.4rem; padding: .9rem .6rem; display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: .4rem; box-shadow: var(--shadow); min-height: 8rem; color: var(--ink); transition: transform .1s; }
.opt:active:not(:disabled) { transform: translateY(.2rem); }
.opt-e { font-size: 3.2rem; line-height: 1.1; }
.opt-t { font-size: 1.1rem; font-weight: 800; line-height: 1.2; }
.opt.emoji-only .opt-e { font-size: 3.8rem; }
.opt.right { background: #d8f8e4; border-color: var(--green); animation: pop .5s; }
.opt.wrong { background: #ffe1e8; border-color: var(--red); opacity: .6; animation: shake .4s; }
.opt:disabled:not(.right):not(.wrong) { opacity: .55; }
.foot { min-height: 4.2rem; display: flex; justify-content: center; align-items: center; }
.seq { display: flex; flex-wrap: wrap; gap: .45rem; justify-content: center; }
.seq-cell { min-width: 3.6rem; height: 3.6rem; padding: 0 .3rem; background: #fff; border-radius: 1rem; display: inline-flex; align-items: center; justify-content: center; font-size: 2.1rem; box-shadow: var(--shadow); }
.seq-cell.seq-q { background: #f1ebff; border: .2rem dashed var(--purple); color: var(--purple); font-weight: 900; }
.seq-cell.pop { animation: pop .5s; }
.timebar { width: min(30rem, 80%); height: .9rem; background: rgba(255,255,255,.85); border-radius: 1rem; overflow: hidden; }
.timefill { height: 100%; width: 100%; background: var(--orange); border-radius: 1rem; }

/* robot planner */
.robot-wrap { display: flex; flex-wrap: wrap; gap: 1.2rem; justify-content: center; align-items: flex-start; max-width: 72rem; margin: 0 auto; }
.rboard { --bw: min(46vw, calc(52vh * var(--w) / var(--h))); position: relative; width: var(--bw); height: calc(var(--bw) * var(--h) / var(--w));
  display: grid; grid-template-columns: repeat(var(--w), 1fr); grid-template-rows: repeat(var(--h), 1fr); border-radius: 1.2rem; overflow: hidden;
  box-shadow: var(--shadow); border: .3rem solid #fff; font-size: calc(var(--bw) / var(--w) * .58); min-width: 14rem; }
.rcell { display: flex; align-items: center; justify-content: center; line-height: 1; }
.rcell.a { background: #efe6ff; } .rcell.b { background: #e1d3f8; }
.rcell.goal { animation: pulse 1.2s infinite; }
.rbot { position: absolute; z-index: 2; display: flex; align-items: center; justify-content: center; line-height: 1;
  width: calc(100% / var(--w)); height: calc(100% / var(--h));
  left: calc(100% / var(--w) * var(--x, 0)); top: calc(100% / var(--h) * var(--y, 0)); transition: left .55s ease, top .55s ease; }
.rbot.shake { animation: shake .5s 2; } .rbot.cheer { animation: hop .7s 3; }
.rside { display: flex; flex-direction: column; align-items: center; gap: .6rem; width: min(26rem, 94vw); }
.rside .buddy { margin: 0; }
.chip { background: #fff; border-radius: 1rem; padding: .2rem .9rem; font-weight: 900; box-shadow: var(--shadow); }
.tray { display: flex; flex-wrap: wrap; gap: .3rem; justify-content: center; background: rgba(255,255,255,.7); border-radius: 1rem; padding: .5rem; min-height: 3.6rem; width: 100%; }
.slot { width: 2.5rem; height: 2.5rem; border-radius: .7rem; background: #fff; border: .15rem dashed #c4b2e8; display: flex; align-items: center; justify-content: center; font-size: 1.5rem; }
.slot.full { border-style: solid; border-color: var(--blue); }
.slot.active { background: var(--yellow); transform: scale(1.12); }
.slot.bad { background: #ffd1da; border-color: var(--red); }
.pad { display: grid; grid-template-columns: repeat(3, 3.8rem); grid-template-areas: ". u ." "l d r"; gap: .4rem; }
.arrow { width: 3.8rem; height: 3.8rem; border-radius: 1rem; border: 0; background: #fff; font-size: 1.9rem; box-shadow: var(--shadow); }
.arrow:active:not(:disabled) { transform: translateY(.15rem); }
.arrow:disabled { opacity: .5; }
.arrow.hint { background: var(--yellow); animation: pulse .8s infinite; }
.a-U { grid-area: u; } .a-L { grid-area: l; } .a-D { grid-area: d; } .a-R { grid-area: r; }
.go-row { display: flex; justify-content: center; }
.btn.go { font-size: 1.8rem; padding: .7rem 2.4rem; }
.rcontrols { display: flex; gap: .5rem; flex-wrap: wrap; justify-content: center; }

/* red light green light */
.rg { max-width: 54rem; margin: 0 auto; display: flex; flex-direction: column; align-items: center; gap: .8rem; }
.lamp { width: 9rem; height: 9rem; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 1.6rem; font-weight: 900; box-shadow: 0 .4rem 0 rgba(45,20,70,.3), inset 0 -.6rem 0 rgba(0,0,0,.18); transition: background .2s; text-align: center; }
.lamp.off { background: #a79bbd; } .lamp.green { background: var(--green); box-shadow: 0 0 2.5rem #4f8f5f, 0 .4rem 0 rgba(45,20,70,.3), inset 0 -.6rem 0 rgba(0,0,0,.18); }
.lamp.red { background: var(--red); box-shadow: 0 0 2.5rem #c9455e, 0 .4rem 0 rgba(45,20,70,.3), inset 0 -.6rem 0 rgba(0,0,0,.18); }
.track { display: grid; grid-template-columns: repeat(var(--n, 11), 1fr); gap: .25rem; width: 100%; }
.tcell { aspect-ratio: 1 / 1.1; background: #fff; border-radius: .7rem; display: flex; align-items: center; justify-content: center; font-size: min(1.9rem, calc(90vw / var(--n, 11) * .62)); box-shadow: var(--shadow); min-width: 0; }
.tcell.here { background: var(--yellow); }
.btn.go-big { font-size: 2.2rem; padding: 1rem 3rem; width: min(22rem, 90%); }
.btn.go-big.stopped { background: #a79bbd; }
.shake { animation: shake .45s; }

/* calm cloud */
.calm { max-width: 46rem; margin: 0 auto; display: flex; flex-direction: column; align-items: center; gap: .8rem; }
.calm-stage { display: flex; flex-direction: column; align-items: center; gap: 1rem; width: 100%; min-height: 18rem; justify-content: center; }
.feelings { display: flex; flex-wrap: wrap; gap: .8rem; justify-content: center; }
.feel { background: #fff; border: .2rem solid #d6c8f0; border-radius: 1.3rem; padding: .7rem 1rem; display: flex; flex-direction: column; align-items: center; gap: .2rem; box-shadow: var(--shadow); min-width: 6rem; color: var(--ink); }
.feel-e { font-size: 3rem; } .feel-t { font-weight: 800; }
.cloud { font-size: 6rem; transform: scale(1); filter: drop-shadow(0 .4rem 0 rgba(45,20,70,.15)); margin: 2rem 0; }
.breath-label { font-size: 2rem; font-weight: 900; }

/* reward */
.reward-title { font-size: 2.6rem; font-weight: 900; color: var(--orange); text-shadow: 0 .15rem 0 #fff; }
.reward-sub { font-size: 1.2rem; opacity: .8; }
.reward-stars { display: flex; flex-wrap: wrap; justify-content: center; gap: .2rem; max-width: 30rem; }
.rstar { font-size: 2.4rem; animation: starpop .5s backwards; }
.rplus { font-size: 1.6rem; font-weight: 900; align-self: center; }
.rcount { font-size: 1.5rem; font-weight: 900; }
.rline { background: #fff; border-radius: 1rem; padding: .4rem 1rem; box-shadow: var(--shadow); font-size: 1.05rem; }
.rline.gold { background: #fff3c4; }
.reward-btns { display: flex; flex-wrap: wrap; gap: .8rem; justify-content: center; margin-top: .6rem; }

/* island */
.island { max-width: 46rem; margin: 0 auto; display: flex; flex-direction: column; align-items: center; gap: .7rem; }
.island-bal { background: #fff; border-radius: 1rem; padding: .3rem 1rem; font-size: 1.2rem; font-weight: 900; box-shadow: var(--shadow); }
.island-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: .5rem; width: 100%; padding: .8rem; border-radius: 1.6rem;
  background: linear-gradient(180deg, #c9b8f2, #9a85e6 40%, #f3dfa0 40%, #ead7a2); box-shadow: var(--shadow); border: .3rem solid #fff; }
.icell { aspect-ratio: 1; border-radius: 1rem; border: .15rem solid transparent; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 0; line-height: 1; background: rgba(255,255,255,.35); color: var(--ink); min-width: 0; }
.icell-e { font-size: 2.2rem; }
.icell-cost { font-size: .7rem; font-weight: 900; margin-top: .15rem; }
.icell.owned { background: rgba(255,255,255,.85); }
.icell.owned .icell-e { animation: bob 2.4s ease-in-out infinite; }
.icell.can { background: #fff7d6; border-color: var(--orange); animation: pulse 1.2s infinite; }
.icell.locked { opacity: .75; }

/* my day */
.myday { max-width: 46rem; margin: 0 auto; display: flex; flex-direction: column; gap: .6rem; align-items: center; }
.daycount { background: #fff; padding: .25rem 1rem; border-radius: 1rem; font-weight: 900; box-shadow: var(--shadow); }
.chores { display: flex; flex-direction: column; gap: .6rem; width: 100%; }
.chore { display: flex; align-items: center; gap: .8rem; background: #fff; border: .2rem solid #d6c8f0; border-radius: 1.3rem; padding: .6rem 1rem; box-shadow: var(--shadow); font-size: 1.2rem; text-align: left; color: var(--ink); }
.chore-e { font-size: 2.2rem; } .chore-t { flex: 1; font-weight: 800; } .chore-check { font-size: 1.8rem; }
.chore.on { background: #d8f8e4; border-color: var(--green); }

/* parent corner */
.parent { max-width: 52rem; margin: 0 auto; display: flex; flex-direction: column; gap: 1rem; }
.psec { background: #fff; border-radius: 1.2rem; padding: .9rem 1.1rem; box-shadow: var(--shadow); font-weight: 600; }
.psec.center { text-align: center; background: transparent; box-shadow: none; }
.psec h3 { margin: 0 0 .6rem; font-size: 1.2rem; font-weight: 900; }
.pgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .6rem; }
.pstat { background: #f5f0fb; border-radius: 1rem; padding: .5rem; text-align: center; }
.pstat-e { font-size: 1.5rem; } .pstat-v { font-size: 1.5rem; font-weight: 900; } .pstat-t { font-size: .8rem; opacity: .8; }
.skills { display: flex; flex-direction: column; gap: .7rem; }
.skill-top { display: flex; justify-content: space-between; font-weight: 900; margin-bottom: .2rem; }
.plays { display: grid; grid-template-columns: repeat(2, 1fr); gap: .3rem .9rem; }
.play { display: flex; justify-content: space-between; font-size: .95rem; border-bottom: .1rem solid #f1ecfa; padding: .15rem 0; }
.moods { display: flex; flex-direction: column; gap: .2rem; }
.mood { display: flex; justify-content: space-between; }
.settings { display: flex; flex-direction: column; gap: .6rem; }
.setrow { display: flex; align-items: center; justify-content: space-between; gap: .6rem; }
.setrow.wrap { flex-wrap: wrap; }
.toggle { border: 0; border-radius: 1rem; padding: .35rem 1.1rem; font-weight: 900; font-size: 1rem; background: #d9d0e6; color: var(--ink); min-width: 4.5rem; }
.toggle.on { background: var(--green); color: #fff; }
.pinput, .pselect { border: .15rem solid #d6c8f0; border-radius: .9rem; padding: .4rem .7rem; font-size: 1rem; font-weight: 700; color: var(--ink); background: #fff; min-width: 9rem; flex: 1 1 9rem; }
.pselect { flex: 0 0 auto; }
.chore-edit { display: flex; flex-direction: column; gap: .3rem; margin-bottom: .6rem; }
.ce-row { display: flex; justify-content: space-between; align-items: center; background: #f5f0fb; border-radius: .8rem; padding: .3rem .7rem; }
.ce-del { border: 0; background: #ffe1e8; color: var(--red); border-radius: .6rem; width: 2rem; height: 2rem; font-weight: 900; }
.tips p { margin: 0 0 .6rem; }
.tip { margin-bottom: .5rem; font-size: .95rem; line-height: 1.35; }

/* overlays */
#overlay, #overlay2 { display: none; position: fixed; inset: 0; background: rgba(35, 15, 60, .72); align-items: center; justify-content: center; padding: 1rem; }
#overlay { z-index: 50; } #overlay2 { z-index: 60; }
#overlay.show, #overlay2.show { display: flex; }
#overlay.lock { background: linear-gradient(180deg, #2b1450, #4a2a80); z-index: 55; }
.pin-box { background: #fff; border-radius: 1.6rem; padding: 1.2rem 1.4rem; display: flex; flex-direction: column; align-items: center; gap: .8rem; max-width: 24rem; text-align: center; box-shadow: 0 .5rem 0 rgba(0,0,0,.25); }
.pin-msg { font-weight: 800; font-size: 1.05rem; }
.pin-dots { display: flex; gap: .7rem; }
.pin-dot { width: 1.2rem; height: 1.2rem; border-radius: 50%; border: .15rem solid var(--blue); }
.pin-dot.on { background: var(--blue); }
.pin-pad { display: grid; grid-template-columns: repeat(3, 4.2rem); gap: .5rem; }
.pin-key { height: 3.6rem; border-radius: 1rem; border: 0; background: #f1ecfa; font-size: 1.5rem; font-weight: 900; color: var(--ink); }
.pin-key:active { background: #d6c8f0; }
.lockbox { text-align: center; color: #fff; display: flex; flex-direction: column; gap: 1rem; align-items: center; }
.lockbox .big-emoji { font-size: 6rem; }

.confetti { position: fixed; inset: 0; pointer-events: none; z-index: 70; overflow: hidden; }
.confetti span { position: absolute; top: -3rem; animation: fall linear forwards; }
.toast { pointer-events: none; position: fixed; left: 50%; bottom: 2rem; transform: translateX(-50%); background: var(--ink); color: #fff; padding: .6rem 1.2rem; border-radius: 1rem; z-index: 80; font-weight: 800; max-width: 90vw; text-align: center; }

@keyframes pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.06); } }
@keyframes hop { 0%, 100% { transform: translateY(0); } 40% { transform: translateY(-.9rem); } 60% { transform: translateY(0); } 80% { transform: translateY(-.3rem); } }
@keyframes talk { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.12); } }
@keyframes pop { 0% { transform: scale(.7); } 60% { transform: scale(1.12); } 100% { transform: scale(1); } }
@keyframes shake { 0%, 100% { transform: translateX(0); } 20% { transform: translateX(-.5rem); } 40% { transform: translateX(.5rem); } 60% { transform: translateX(-.35rem); } 80% { transform: translateX(.35rem); } }
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-.25rem); } }
@keyframes fall { to { transform: translateY(110vh) rotate(360deg); } }
@keyframes starpop { 0% { transform: scale(0) rotate(-40deg); opacity: 0; } 70% { transform: scale(1.3) rotate(8deg); opacity: 1; } 100% { transform: scale(1) rotate(0); } }

/* portrait tablets and phones */
@media (orientation: portrait), (max-width: 760px) {
  .opts.n3 { grid-template-columns: 1fr; }
  .opt { flex-direction: row; justify-content: flex-start; min-height: 5.2rem; padding: .6rem 1rem; text-align: left; }
  .opt.emoji-only { flex-direction: column; justify-content: center; }
  .opts.n3:has(.emoji-only) { grid-template-columns: repeat(3, 1fr); }
  .opts.n4 { grid-template-columns: repeat(2, 1fr); }
  .opt-e { font-size: 2.6rem; }
  .rboard { --bw: min(92vw, calc(36vh * var(--w) / var(--h))); }
  .pgrid { grid-template-columns: repeat(2, 1fr); }
  .plays { grid-template-columns: 1fr; }
  .island-grid { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 520px) { .splash-title { font-size: 2.6rem; } .reward-title { font-size: 2rem; } }

/* Raincast branding */
.rc-mark { width: 4.4rem; height: 4.4rem; display: inline-block; background: url(data:image/png;base64,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) center / contain no-repeat; flex: 0 0 auto; }
.rc-mark.sm { width: 2.4rem; height: 2.4rem; }
.rc-brand { display: flex; align-items: center; gap: .7rem; justify-content: center; }
.rc-word { text-align: left; line-height: 1.05; }
.rc-word b { display: block; font-size: 1.5rem; font-weight: 800; color: #2a1a3f; letter-spacing: .02rem; }
.rc-word small { display: block; font-size: .7rem; font-weight: 800; letter-spacing: .28rem; color: #8a8494; }
.rc-sm .rc-word b { font-size: 1.05rem; } .rc-sm .rc-word small { font-size: .55rem; letter-spacing: .2rem; }
.splash-brand { margin-top: 1.2rem; opacity: .95; }
.splash-sun { filter: drop-shadow(0 0 .8rem rgba(224,168,46,.6)); }
#top { background: linear-gradient(180deg, rgba(91,47,160,.10), transparent); }

/* levels */
.lvchip { align-self: center; background: #fff; border-radius: 1rem; padding: .2rem .9rem; font-weight: 900; box-shadow: var(--shadow); color: var(--deep); font-size: 1rem; }
.rside .lvchip { align-self: auto; }
.g-lv { margin-top: .35rem; background: rgba(255,255,255,.92); color: var(--deep); border-radius: .8rem; padding: .05rem .6rem; font-size: .8rem; font-weight: 900; }
.gcard.c-yellow .g-lv { background: rgba(255,255,255,.7); }
