/* For Sale (game 2670) — stage + game element styles */
html, body { margin:0; padding:0; height:100%; overflow:hidden; background:#4a4a52; }

#fs_wrap { position:fixed; top:0; left:0; right:0; bottom:0; overflow:hidden; }

/* full-window backdrops: continue each screen's scenery into the letterbox bands
   (colors sampled from the bg art edges; the 720x500 stage itself is unchanged) */
#fs_wrap.fsbg-menu, #fs_wrap.fsbg-select { background:linear-gradient(180deg, #ffffff 0%, #ffffff 42%, #00cc99 50%, #00cc99 100%); }
#fs_wrap.fsbg-play, #fs_wrap.fsbg-gameover, #fs_wrap.fsbg-congrat { background:#009999; }
#fs_stage {
	position:absolute; width:720px; height:500px; transform-origin:0 0;
	font-family: Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif;
	-webkit-user-select:none; user-select:none;
	-webkit-tap-highlight-color: transparent;
	touch-action: manipulation;
}
#fs_stage img { pointer-events:none; -webkit-user-drag:none; }

.abs { position:absolute; }
.scr { position:absolute; top:0; left:0; width:720px; height:500px; display:none; }
.scr.on { display:block; }

.btn { position:absolute; cursor:pointer; }
.btn img { display:block; position:absolute; }
.btn.disabled { pointer-events:none; filter:grayscale(1); opacity:.55; }
.btn:focus-visible, .txtbtn:focus-visible, .seltile:focus-visible, .slot:focus-visible, .clickable:focus-visible {
	outline:4px solid #1674d1; outline-offset:3px;
}

.menu-code-btn {
	position:absolute;
	box-sizing:border-box;
	width:122px;
	height:68px;
	margin:0;
	padding:0 5px;
	-webkit-appearance:none;
	appearance:none;
	background:#fff;
	border:5px solid #f00;
	border-radius:8px;
	color:#050505;
	font-family:Impact, Haettenschweiler, "Arial Narrow Bold", "Arial Black", sans-serif;
	font-weight:900;
	line-height:1;
	text-align:center;
	white-space:nowrap;
	cursor:pointer;
	transition:transform .08s ease, box-shadow .08s ease, background-color .08s ease, color .08s ease;
}
.menu-code-btn.play { font-size:31px; }
.menu-code-btn.instructions { font-size:31px; }
.menu-code-btn:hover {
	transform:translate(3px,-3px);
	box-shadow:-3px 4px 0 rgba(0,0,0,.24);
}
.menu-code-btn:active {
	transform:none;
	box-shadow:none;
	color:#f00;
}
.menu-code-btn:focus-visible {
	outline:4px solid #1674d1;
	outline-offset:3px;
}

.clickable { cursor:pointer; }
.slot { cursor:pointer; }
.hit { cursor:pointer; }
.slotinner { position:absolute; left:0; top:0; }
.glow { display:none; }

/* price tags: --fs-tag is set by fitStage() so signs stay a readable size however small the
   stage is scaled. The origin is the sign board's bottom-RIGHT corner (its right edge sits at
   +23.1px, its base at -0.7px), so a bigger sign grows LEFT and UP into empty ground instead of
   expanding over the house it belongs to. */
.tag {
	pointer-events:none;
	transform:scale(var(--fs-tag, 1));
}
/* The white board inside sign.svg is only ~9.9px tall, so 11px Impact (cap height ~7.9px) is the
   largest that sits inside it. The signpost's black outline is stroked ON TOP of the board and
   runs down its centre, straight through the digits, so the number carries a white outline to
   keep its shape readable where the two meet. */
.tagval {
	text-align:center; font-size:14px; line-height:10px; color:#000;
	letter-spacing:0; white-space:nowrap;
	text-shadow:-1px 0 #fff, 1px 0 #fff, 0 -1px #fff, 0 1px #fff,
	            -1px -1px #fff, 1px -1px #fff, -1px 1px #fff, 1px 1px #fff;
}
.tagval.long { font-size:11px; line-height:10px; }
.tagval.nfs { font-size:7px; line-height:10px; white-space:nowrap; }
.tagnet { left:-23px; top:1px; width:46px; box-sizing:border-box; padding:1px 2px; border-radius:3px; background:#f5fff0; color:#194f25; font:bold 9px/11px Verdana,sans-serif; text-align:center; white-space:nowrap; box-shadow:0 1px 1px #17332966; }
.tagnet.net-loss { background:#fff2e9; color:#a72116; }
.arrow { width:0; height:0; }
.arrow.none { display:none; }
.arrow.up   { border-left:4px solid transparent; border-right:4px solid transparent; border-bottom:6px solid #1e9e2f; }
.arrow.down { border-left:4px solid transparent; border-right:4px solid transparent; border-top:6px solid #d42313; }

/* HUD values (panels are part of the background art) */
.hudval {
	text-align:center; font-size:17px; line-height:20px; color:#000;
	pointer-events:none;
}

/* floating profit/loss label */
.floatlbl {
	position:absolute; z-index:40; pointer-events:none;
	font-size:15px; text-align:center; width:60px; margin-left:-30px;
	text-shadow: 0 1px 0 #fff, 0 -1px 0 #fff, 1px 0 0 #fff, -1px 0 0 #fff;
	animation: fs_float 1.6s linear forwards;
}
.floatlbl.gain { color:#1e9e2f; }
.floatlbl.loss { color:#d42313; }
@keyframes fs_float { from { transform:translateY(0); opacity:1; } 70% { opacity:1; } to { transform:translateY(-34px); opacity:0; } }

/* house appear / disappear (original: vertical squash pop) */
.appear { animation: fs_appear .45s ease-out; transform-origin: 0 6px; }
@keyframes fs_appear {
	0%   { transform: scaleY(.23); }
	60%  { transform: scaleY(1.08); }
	100% { transform: scaleY(1); }
}
.disappear { animation: fs_disappear .5s ease-in forwards; transform-origin: 0 6px; }
@keyframes fs_disappear {
	0%   { transform: scaleY(1); opacity:1; }
	100% { transform: scaleY(.1); opacity:0; }
}

/* congrat result text (rotated onto the sign, as original) */
.resulttxt {
	width:210px; text-align:center; transform: rotate(-10deg);
	font-size:26px; color:#111;
}

/* ---------- level game UI ---------- */
.selshade { position:absolute; left:93px; top:22px; width:534px; height:456px; background:rgba(255,255,255,.55); border-radius:10px; }
.seltitle {
	position:absolute; left:0; top:34px; width:720px; text-align:center;
	font-size:30px; color:#d42313; text-shadow:0 2px 0 #fff, 0 -1px 0 #fff, 2px 0 0 #fff, -2px 0 0 #fff;
}
.selgrid {
	position:absolute; left:130px; top:76px; width:460px;
	display:flex; flex-wrap:wrap; justify-content:center;
}
.seltile {
	width:72px; height:60px; margin:5px; background:#fff; border:3px solid #d42313;
	border-radius:10px; cursor:pointer; position:relative; text-align:center;
	box-shadow:0 2px 0 rgba(0,0,0,.25);
}
.seltile:hover { background:#ffe9e6; }
.seltile.locked { border-color:#9a9a9a; background:#e3e3e3; cursor:default; box-shadow:none; }
.selnum { font-size:26px; color:#222; margin-top:6px; }
.selstars { font-size:12px; color:#e2a400; letter-spacing:1px; }
.sellock { font-size:22px; margin-top:12px; opacity:.55; }

.txtbtn {
	position:absolute; background:#fff; border:3px solid #d42313; border-radius:10px;
	color:#d42313; font-size:19px; padding:8px 18px; cursor:pointer; text-align:center;
	box-shadow:0 2px 0 rgba(0,0,0,.25); white-space:nowrap;
}
.txtbtn:hover { background:#d42313; color:#fff; }
.txtbtn.small { font-size:14px; padding:5px 12px; }
.txtbtn.disabled { pointer-events:none; opacity:.45; filter:grayscale(1); }
.txtbtn.pagebtn.active { background:#d42313; color:#fff; pointer-events:none; }

.goalchip {
	left:66px; top:22px; background:#fff; border:2px solid #d42313; border-radius:8px;
	padding:2px 10px; font-size:13px; color:#d42313; pointer-events:none;
}
.goalchip2 {
	left:66px; top:44px; background:rgba(255,255,255,.92); border:2px solid #bbb; border-radius:8px;
	padding:1px 8px; font-size:11px; color:#333; pointer-events:none;
}
.forecastchip {
	left:240px; top:22px; width:300px; box-sizing:border-box; text-align:center;
	background:rgba(255,249,211,.95); border:2px solid #d0a22c; border-radius:8px;
	padding:2px 8px; font-size:10px; color:#604700; pointer-events:none;
}
.streakchip {
	left:66px; top:96px; width:145px; box-sizing:border-box; text-align:center;
	background:rgba(255,238,222,.95); border:2px solid #e47721; border-radius:8px;
	padding:2px 6px; font-size:10px; color:#9b3600; pointer-events:none;
}
.txtbtn.toolbtn {
	left:578px !important; top:358px !important; width:116px; box-sizing:border-box;
	font-size:10px; padding:4px 5px; border-width:2px; z-index:12;
}
.txtbtn.toolbtn.active { background:#d42313; color:#fff; animation:fs_toolpulse .8s ease-in-out infinite alternate; }
@keyframes fs_toolpulse { from { box-shadow:0 0 0 rgba(212,35,19,0); } to { box-shadow:0 0 10px rgba(212,35,19,.85); } }
.renobadge {
	display:none; z-index:12; width:18px; height:18px; border-radius:50%; background:#1976d2;
	border:2px solid #fff; color:#fff; font:12px/18px Arial,sans-serif; text-align:center;
	box-shadow:0 1px 3px rgba(0,0,0,.45); pointer-events:none;
}
.slot.reno-target .hit { outline:4px solid #1674d1; outline-offset:2px; border-radius:50%; animation:fs_toolpulse .8s ease-in-out infinite alternate; }
.hudval.warn { color:#d42313; }

.banner {
	left:35px; top:210px; width:500px; box-sizing:border-box; text-align:center; font-size:30px; line-height:1.25; padding:10px 18px;
	border-radius:12px; opacity:0; pointer-events:none; transition:opacity .3s; z-index:600;
}
.banner.on { opacity:1; }
.banner.crash { background:#a00a0a; color:#fff; }
.banner.boom { background:#148c28; color:#fff; }
.banner.combo { background:#d9620c; color:#fff; }
.streakchip.combo-hit { animation:fs_combo .45s ease-out; }
@keyframes fs_combo { 0% { background:#ffd863; color:#42230b; box-shadow:0 0 0 4px #ffe89988; } 100% { box-shadow:0 0 0 0 #ffe89900; } }
.banner.reno { background:#1866b1; color:#fff; font-size:21px; }
.banner.fairy { background:#623e8c; color:#fff; font-size:21px; }
.banner.stars { background:#966000; color:#fff; font-size:21px; }

/* the Old Fairy's race: your progress fills the track, and staying ahead of her earns three stars */
.goal2text { display:block; }
.racebar { position:relative; width:150px; height:22px; margin:3px 0 1px; pointer-events:none; }
.race-track { position:absolute; left:11px; right:38px; top:6px; height:10px; box-sizing:border-box; border:2px solid #6a4a8c; border-radius:6px; background:#fff; }
.race-fill { position:absolute; left:0; top:0; bottom:0; width:0; border-radius:3px; background:linear-gradient(#63d06f, #1e9e2f); }
.race-fairy {
	position:absolute; top:50%; left:0; width:18px; height:18px; margin:-11px 0 0 -11px;
	border:2px solid #6a4a8c; border-radius:50%; background-color:#f4ecfb; background-repeat:no-repeat;
	background-size:228% auto; background-position:25% 8%; box-shadow:0 1px 2px rgba(0,0,0,.35);
}
.race-flag { position:absolute; right:0; top:0; width:36px; text-align:center; font:bold 12px/22px Verdana, Arial, sans-serif; color:#e2a400; letter-spacing:-1px; }
.racebar.fairy-ahead .race-fairy { border-color:#c02a6a; }
.racebar.fairy-won .race-flag { color:#8a8a8a; }
.racebar.fairy-won .race-fairy { border-color:#8a8a8a; }
.racebar:not(.no-fairy) .race-fairy { width:26px; height:26px; margin:-15px 0 0 -13px; border:0; border-radius:0; background-color:transparent; background-size:contain; background-position:center; box-shadow:none; filter:drop-shadow(0 1px 1px rgba(0,0,0,.45)); }
.racebar.fairy-ahead:not(.no-fairy) .race-fairy { filter:drop-shadow(0 0 2px #ff4fa3) drop-shadow(0 1px 1px rgba(0,0,0,.45)); }
.racebar.fairy-won:not(.no-fairy) .race-fairy { filter:grayscale(1); opacity:.8; }
.racebar.no-fairy .race-fairy { background-color:#ffc21a; border-color:#fff; }
.racebar.no-fairy .race-fairy::after { content:"\2605"; display:block; text-align:center; color:#fff; font:bold 12px/18px Verdana, Arial, sans-serif; }
.introfairy { color:#6a4a8c; font-weight:bold; }

/* hot property: a flame badge and an orange price; fixer-upper: boarded windows, faded paint, a hammer badge */
.hotbadge, .fixbadge {
	display:none; z-index:12; width:18px; height:18px; border-radius:50%; background:#fff; border:2px solid #e8590c;
	font:11px/18px Arial, sans-serif; text-align:center; box-shadow:0 1px 3px rgba(0,0,0,.45); pointer-events:none;
}
.fixbadge { border-color:#7a5230; }
.slot.hot .hotbadge, .slot.fixer .fixbadge { display:block; }
.slot.hot .tagval { color:#b8430b; }
.planks { display:none; pointer-events:none; }
.slot.fixer .planks { display:block; }
.planks::before, .planks::after {
	content:""; position:absolute; left:-4%; right:-4%; top:38%; height:24%;
	background:linear-gradient(#b07a45, #8a5a2e); border:1px solid #4e3219; border-radius:2px;
}
.planks::before { transform:rotate(16deg); }
.planks::after { transform:rotate(-16deg); }
.slot.fixer .slotinner img { filter:grayscale(.8) brightness(.92); }

/* a bottomed-out listing crumbling away: greyed house and a red price; tapping it only costs money */
.slot.crumbling .slotinner { filter:grayscale(1); opacity:.7; }
.slot.crumbling .tagval { color:#c0271b; }
.banner.error { background:#a00a0a; color:#fff; font-size:20px; }

.needthree { color:#d42313; font-size:15px; }
.wincard {
	position:absolute; left:195px; top:180px; width:330px; height:130px;
	background:rgba(255,255,255,.93); border:3px solid #d42313; border-radius:14px;
	box-shadow:0 3px 0 rgba(0,0,0,.2); pointer-events:none;
}
.winstars {
	position:absolute; left:0; top:196px; width:720px; text-align:center;
	font-size:44px; color:#e2a400; letter-spacing:6px;
	text-shadow:0 2px 0 #fff, 0 -1px 0 #fff, 2px 0 0 #fff, -2px 0 0 #fff;
	pointer-events:none;
}
.wininfo {
	position:absolute; left:0; top:252px; width:720px; text-align:center;
	font-size:19px; color:#222; pointer-events:none; line-height:1.5;
	text-shadow:0 1px 0 #fff, 0 -1px 0 #fff, 1px 0 0 #fff, -1px 0 0 #fff;
}
.loseinfo {
	position:absolute; left:0; top:207px; width:720px; text-align:center;
	font-size:34px; color:#d42313; pointer-events:none;
	text-shadow:0 2px 0 #fff, 0 -1px 0 #fff, 2px 0 0 #fff, -2px 0 0 #fff;
}
.instrpanel.intro { top:78px; }
.introgoal {
	font-family: Impact, "Arial Narrow Bold", sans-serif; font-size:19px; color:#1e9e2f;
	margin:2px 0 8px;
}
.intromods span {
	display:inline-block; background:#f3f3f3; border:1px solid #ccc; border-radius:6px;
	padding:2px 8px; margin:2px 3px 2px 0; font-size:11px;
}

/* instructions overlay (box-shadow extends the dim past the stage into the letterbox bands) */
.overlay { background: rgba(0,0,0,.45); box-shadow:0 0 0 100vmax rgba(0,0,0,.45); z-index:60; }
.instrpanel {
	position:absolute; left:110px; top:60px; width:460px;
	background:#fff; border:3px solid #d42313; border-radius:14px;
	padding:16px 22px; font-family: verdana, arial, sans-serif; font-size:12px;
	color:#222; line-height:1.45;
}
.instrpanel h2 { margin:0 0 8px 0; font-family: Impact, "Arial Narrow Bold", sans-serif; color:#d42313; }
.instrpanel p { margin:0 0 8px 0; }
.instrclose {
	display:table; margin:8px auto 0; background:#d42313; color:#fff;
	font-family: Impact, "Arial Narrow Bold", sans-serif; font-size:15px;
	padding:6px 26px; border-radius:8px; cursor:pointer;
}
.instrclose:hover { background:#a51a0e; }

.hidediv { display:none; }

/* shared site buttons (games/default assets): pinned to the screen's top-right corner like the other
   HTML5 games, exit 10px in from the edges and sound 10px to its left */
.sitebtn {
	position:absolute; top:calc(10px - var(--fs-offset-y, 0px)); width:44px; height:44px; cursor:pointer; z-index:55;
	background-repeat:no-repeat;
}
.fs-exit {
	right:calc(10px - var(--fs-offset-x, 0px));
	background-image:url("https://images.marapets.com/games/default/but_exit.png");
	background-size:44px 43px;
}
.fs-audio {
	right:calc(64px - var(--fs-offset-x, 0px));
	background-image:url("https://images.marapets.com/games/default/audio_icon.png");
	background-size:88px 44px; background-position:0 0;
}
.fs-audio.off { background-position:-44px 0; }

/* larger touch targets when the stage is scaled down (phones) - art unchanged */
.fs-small .hit { transform:scale(1.25); }

/* phone readability: grow the DOM price tags, HUD text and chips when the stage is small.
   Tags anchor on their 0x0 root, so scaling expands them around the signpost. */
.fs-small .hudval { font-size:21px; line-height:24px; }
.fs-small .floatlbl { font-size:22px; }
.fs-small .renobadge { transform:scale(1.3); }
.fs-small .txtbtn.toolbtn { font-size:13px; }
.fs-small .goalchip { transform:scale(1.2); transform-origin:0 0; top:20px; }
.fs-small .goalchip2 { transform:scale(1.2); transform-origin:0 0; top:52px; }
.fs-small .streakchip { transform:scale(1.2); transform-origin:0 0; top:114px; }
.fs-small .forecastchip { transform:scale(1.2); transform-origin:50% 0; left:290px; top:2px; }

#fs_rotate {
	display:none; position:fixed; inset:0; z-index:123456790; background:#fff; color:#222;
	flex-direction:column; align-items:center; justify-content:center; gap:18px;
	padding:24px; box-sizing:border-box; overflow:auto;
	font:16px/1.5 Verdana,Arial,sans-serif; text-align:center;
}
#fs_rotate .fs-rotate-npc { display:block; width:auto; max-width:min(300px,80vw); height:auto; max-height:45vh; object-fit:contain; flex-shrink:0; }
#fs_rotate h1 { margin:0; max-width:420px; font:bold 23px/1.35 Verdana,Arial,sans-serif; }
#fs_rotate p { margin:0; max-width:360px; }

@media (orientation:portrait) and (max-width:700px) {
	#fs_rotate { display:flex; }
	#fs_wrap { visibility:hidden; }
}

@media (prefers-reduced-motion:reduce) {
	.appear, .disappear, .floatlbl, .streakchip.combo-hit, .txtbtn.toolbtn.active, .slot.reno-target .hit { animation:none !important; }
	.banner { transition:none; }
}

.losescore { position:absolute;left:170px;top:253px;width:380px;text-align:center;color:#fff;font:bold 28px/1.3 Verdana,Arial,sans-serif;text-shadow:0 2px 2px #333; }

/* Presentation refinements; original playfield geometry remains in original-game.css. */
[hidden]{display:none!important}
#loader{position:fixed;inset:0;z-index:100;background:#4a4a52;display:grid;place-items:center}
#loader-canvas{width:100%;height:100%;object-fit:contain}
#load-error{position:absolute;bottom:8%;color:#fff;font:14px/1.5 Verdana,Arial,sans-serif;text-align:center}
#load-error button{display:block;margin:12px auto;padding:10px 24px;font:inherit}
#fs_wrap.fsbg-menu,#fs_wrap.fsbg-select{background:#c9e9ee}
button:focus-visible{outline:3px solid #f5b72b;outline-offset:3px}




.overlay{background:#0e3b4e66;backdrop-filter:blur(3px);box-shadow:0 0 0 100vmax #0e3b4e66}
.polish-panel{position:absolute;box-sizing:border-box;left:70px;top:45px;width:580px;border:3px solid #173c50;border-radius:17px;background:#f9feff;box-shadow:0 7px 0 #11384b4d,inset 0 0 0 3px #fff;color:#193b4b;font:15px/1.45 Verdana,Arial,sans-serif;overflow:hidden;text-align:left}
.polish-header{height:49px;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;padding:0 20px;background:linear-gradient(#6fb8dc,#438eb9);border-bottom:3px solid #173c50;box-shadow:inset 0 3px #acdff4;color:#fff;font:bold 20px/1 Verdana,Arial,sans-serif;text-shadow:0 2px #225a78;letter-spacing:.5px}
.panel-x{border:0;background:none;color:#fff;font:36px/1 Arial;cursor:pointer;padding:0 0 0 16px;text-shadow:0 2px #225a78}
.polish-panel h2{font:bold 24px/1.18 Verdana,Arial,sans-serif;margin:7px 0 12px;letter-spacing:-.7px;color:#183c51}
.polish-panel p{margin:0 0 12px}
.polish-panel small{font:bold 10px/1.3 Verdana,Arial,sans-serif;letter-spacing:1.1px;color:#517487}
.action-btn,.quiet-btn{min-height:40px;padding:9px 19px;border:2px solid #193e50;border-radius:9px;background:linear-gradient(#fff,#e5f2f8);box-shadow:0 3px 0 #bfd8e4;font:bold 14px/1.2 Verdana,Arial,sans-serif;color:#244b5e;cursor:pointer}
.action-btn{background:linear-gradient(#ff6654,#e92b28);color:#fff;border-color:#892328;box-shadow:inset 0 2px #ffa18f,0 3px 0 #a82930;text-shadow:0 1px #9e2427}
.action-btn:hover{filter:brightness(1.07)}
.action-btn:active,.quiet-btn:active{transform:translateY(2px);box-shadow:none}
button:disabled{cursor:default;opacity:.55}
.brief-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 18px;background:#e9f5fa;border-top:1px solid #bddae7}
.brief-footer>span{font-size:10px;color:#56727f}
.level-brief{top:36px}
.brief-body{padding:15px 20px;max-height:312px;overflow:auto}
.brief-goal{display:grid;grid-template-columns:100px 1fr;gap:18px;align-items:center}
.brief-house{height:112px;border-radius:50%;background:radial-gradient(ellipse,#b4e8d9,transparent 70%);display:grid;place-items:center}
.brief-house img{position:static!important;width:100px;height:105px;object-fit:contain}
.brief-goal h2{text-transform:none;font-size:24px;margin:4px 0 7px}
.brief-goal p{font-size:13px;line-height:1.4;margin:0}
.brief-facts{display:grid;grid-template-columns:1fr 1fr 1.7fr;margin:14px 0;border-top:1px solid #c8dfeb;border-bottom:1px solid #c8dfeb;padding:11px 0}
.brief-facts>div{padding:0 10px;border-right:1px solid #c8dfeb}
.brief-facts>div:first-child{padding-left:0}
.brief-facts>div:last-child{border:0}
.brief-facts small{display:block;font-size:8px;letter-spacing:.4px;white-space:nowrap}
.brief-facts b{display:block;font-size:19px;margin-top:3px}
.brief-facts .gold{color:#b17b0b}
.brief-facts .gold span{font-size:10px;color:#31586b}
.star-deadlines{display:grid;grid-template-columns:1fr 1fr 1fr;gap:9px}
.star-deadlines>div{border:1px solid #c2d9e4;background:#eef6fa;border-radius:9px;text-align:center;padding:8px 4px}
.star-deadlines .three{background:#fffae0;border:2px solid #e3b847;padding:7px 3px}
.star-deadlines b{display:block;font-size:22px;color:#efb827;line-height:1.2;letter-spacing:2px;text-shadow:0 1px #b18422}
.star-deadlines i{font-style:normal;color:#c8d9e2;text-shadow:none}
.star-deadlines span{display:block;margin-top:4px;font-size:10px}
.star-deadlines strong{display:block;font-size:13px}
.brief-rules{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}
.brief-rules span{border-radius:5px;background:#e5f1f6;color:#355f73;padding:4px 7px;font-size:10px}
.leave-panel{width:420px;left:150px;top:100px;text-align:center}
.leave-body{padding:20px}
.leave-body img{position:static!important;width:95px;height:95px}
.leave-body p{font-size:14px}
.leave-panel footer{display:flex;justify-content:center;gap:15px;background:#e9f5fa;padding:15px}
.goalchip{left:70px;top:17px;width:205px;box-sizing:border-box;padding:8px 12px 5px;border:2px solid #254c5d;border-bottom:0;border-radius:10px 10px 0 0;background:linear-gradient(#fff,#eef8fc);text-align:left;font-family:Verdana,Arial,sans-serif;color:#234b5e}
.goalchip small{font:bold 9px Verdana,Arial,sans-serif;color:#648798;letter-spacing:1px;display:block;margin-bottom:3px}
.goalchip strong{font:bold 14px Verdana,Arial,sans-serif;display:block}
.goalchip2{left:70px;top:65px;width:205px;box-sizing:border-box;border:2px solid #254c5d;border-top:1px solid #c4dce6;border-radius:0 0 10px 10px;background:#e6f3f8;font:11px/1.4 Verdana,Arial,sans-serif;padding:5px 12px;color:#355f72}
.goalchip2 span{display:block}
.goalchip2 small{font:bold 9px Verdana,Arial,sans-serif;color:#8b6612;display:block;margin-top:3px}
.forecastchip{top:111px;left:70px}
.streakchip{top:143px;left:70px}
@media(orientation:portrait) and (max-width:600px){
 #fs_stage .overlay.on{top:calc(-1 * var(--fs-offset-y));left:0;width:100vw;height:100dvh;transform:scale(calc(1 / var(--fs-scale)));transform-origin:top left;box-shadow:none}
 .polish-panel{left:12px;top:12px;width:calc(100% - 24px);max-height:calc(100dvh - 24px);overflow:auto}
 .brief-body{max-height:calc(100dvh - 180px);padding:16px}
 .brief-goal{grid-template-columns:75px 1fr;gap:10px}
 .brief-house,.brief-house img{width:75px;height:100px}
 .brief-goal h2{font-size:22px}
 .brief-facts{grid-template-columns:1fr 1fr}
 .brief-facts>div:last-child{grid-column:1/-1;border-top:1px solid #c8dfeb;margin-top:10px;padding:10px 0 0}
 .brief-facts small{font-size:10px}
 .brief-facts .gold span{font-size:13px}
 .star-deadlines span{font-size:11px}
 .brief-footer>span{display:none}
 .brief-footer{justify-content:flex-end}
 .brief-rules span{font-size:12px}
 .leave-panel{top:20vh}
 .goalchip{width:205px}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
/* Clearer instructions: larger copy and only the three-star requirement. */
.brief-goal h2{font-size:28px}
.brief-goal small{font-size:12px}
.brief-goal p{font-size:16px;line-height:1.45}
.brief-facts.simple-facts{grid-template-columns:1fr 1.7fr;margin-bottom:14px}
.simple-facts small{font-size:11px;letter-spacing:0;white-space:normal}
.simple-facts b{font-size:26px}
.simple-facts .pass-deadline{border-left:1px solid #c8dfeb;padding-left:18px}
.brief-rules span{font-size:13px}
.brief-unlock{font-size:15px;line-height:1.5;margin:12px 0 0!important}
.brief-footer{justify-content:flex-end}
.brief-start{font-size:17px}
@media(orientation:portrait) and (max-width:600px){
 .simple-facts>div:last-child{grid-column:auto;border-top:0;margin-top:0;padding-top:0}
 .brief-goal h2{font-size:26px}
 .brief-facts.simple-facts{grid-template-columns:1fr 1.6fr}
 .simple-facts small{font-size:11px}
 .simple-facts b{font-size:23px}
 .brief-unlock{font-size:16px}
}
/* The level screen shares the menu scenery, softened for readable level controls. */
.level-scenery{opacity:.78}
.selshade{background:rgba(248,253,255,.58);border:1px solid rgba(255,255,255,.85);box-shadow:0 3px 14px #20455320}
.fairy-ground-shadow{position:absolute;left:449px;top:465px;width:59px;height:10px;border-radius:50%;background:radial-gradient(ellipse,#183e2c66 0%,#183e2c24 45%,transparent 72%);transform:rotate(-5deg);pointer-events:none}
.menu-old-fairy{pointer-events:none;filter:drop-shadow(1px 1px 1px #1b382429)}
/* Wide phone playfield: original village vectors, houses and price signs. */
.wide-play-background{display:none}
.wide-price-sign{display:none}
.wide-play .wide-price-sign{display:block}
.wide-play .classic-price-sign{display:none}
.wide-play .wide-play-background{display:block}
.wide-play .classic-play-background{display:none}
#fs_stage .classic-play-background{clip-path:inset(20px 167.5px 20px 18.5px round 7.5px)}
.wide-play .scr:not(.overlay){width:1200px;height:470px}
.wide-play .overlay{left:240px;top:-15px}
.wide-play .slotinner{scale:1.65;transform-origin:0 0}
.wide-play .slot>.glow{scale:1.65;transform-origin:25px 12.5px}
.wide-play .slot>.hit{left:-44px!important;top:-65px!important;width:88px!important;height:104px!important;clip-path:polygon(24% 0,76% 0,100% 40%,100% 100%,0 100%,0 40%)}
.wide-play .slot.wide-luxury>.hit{left:-64px!important;width:110px!important}
.wide-play .slot .tag{transform:scale(1.9,2.1);z-index:450;pointer-events:auto;cursor:pointer}
.wide-play .slot .tag:before{content:'';position:absolute;left:-24px;top:-14px;width:48px;height:18px}
.wide-play .slot .tagval{font-family:Impact,Haettenschweiler,'Arial Narrow Bold',sans-serif;font-size:13px;line-height:10px;padding-right:7px;box-sizing:border-box}
.wide-play .slot .tagval.long{font-size:11px}
.wide-play .renobadge{left:-45px!important;top:-67px!important;scale:1.25}
.wide-play .wide-club-sign .tagval.nfs{font:6.8px/10px Verdana,Arial,sans-serif;font-weight:bold}
.wide-play .goalchip{left:96px;top:10px;width:636px;height:29px;border:0;border-radius:0;padding:0;background:none;box-shadow:none;color:white}
.wide-play .goalchip small{display:inline;font:bold 16px Verdana,Arial,sans-serif;color:white;margin:0 12px 0 0;letter-spacing:0}
.wide-play .goalchip strong{display:inline;font:bold 19px Verdana,Arial,sans-serif}
.wide-play .goalchip2{left:96px;top:39px;width:636px;height:30px;border:0;border-radius:0;padding:0;background:none;color:white;font:17px/1.4 Verdana,Arial,sans-serif}
.wide-play .goalchip2 span{display:inline}
.wide-play .goalchip2 small{display:inline;font:bold 16px Verdana,Arial,sans-serif;color:#fff0a2;margin-left:18px}
.wide-play .play-time,.wide-play .play-cash{top:0!important;width:160px!important;height:74px;box-sizing:border-box;background:transparent center/100% 100% no-repeat;font:bold 23px/1 Verdana,Arial,sans-serif;padding-top:41px;z-index:500}
.wide-play .play-time{left:940px!important;background-image:url('https://images.marapets.com/games/forsale/svg/panel_time.svg')}
.wide-play .play-cash{left:764px!important;background-image:url('https://images.marapets.com/games/forsale/svg/panel_cash.svg')}
.wide-play .forecastchip{left:22px;top:432px;width:615px;background:none;color:white;border:0;font:16px/1.2 Verdana,Arial,sans-serif;padding:0;text-align:left}
.wide-play .streakchip{left:650px;top:428px;width:250px;font:15px/1.3 Verdana,Arial,sans-serif;padding:5px}
.wide-play .txtbtn.toolbtn{left:920px!important;top:432px!important;width:258px;font:bold 15px/1.2 Verdana,Arial,sans-serif;padding:9px 5px}
.wide-play .banner{left:260px;top:195px;width:680px;z-index:600}
.wide-play .floatlbl{font-size:24px;width:100px;margin-left:-50px;z-index:550}
.wide-play .fs-audio,.wide-play .fs-exit{z-index:600}
/* One goal and one three-star deadline, using the guide's game scenery. */
.tutorial-scene.mission-scene{display:flex;flex-direction:column;align-items:center;gap:7px;padding:22px 64px 19px;overflow:auto}
.mission-heading{flex:none;width:100%;max-width:570px}
.mission-heading>span{font:bold 14px/1.2 Verdana,Arial,sans-serif;letter-spacing:2px;color:#285950}
.mission-heading h2{margin:7px 0 9px;color:#f34237;font:36px/1.1 Impact,Haettenschweiler,'Arial Narrow Bold',sans-serif;text-transform:uppercase;letter-spacing:.5px;-webkit-text-stroke:5px white;paint-order:stroke fill;filter:drop-shadow(0 3px 0 #9a3938)}
.mission-heading p{margin:0;font:17px/1.4 Verdana,Arial,sans-serif;text-wrap:balance}
.mission-art{flex:1 1 110px;min-height:80px;max-height:145px;width:100%;display:flex;align-items:center;justify-content:center;gap:0}
.mission-art img{position:static!important;width:130px;height:100%;max-height:135px;min-height:80px;object-fit:contain;filter:drop-shadow(0 4px 2px #23584822)}
.mission-neighbourhood img{width:95px;max-height:110px}
.mission-deadline{flex:none;display:flex;flex-direction:column;align-items:center;gap:4px}
.mission-stars{color:#ffd44a;font:bold 38px/1 Verdana,Arial,sans-serif;letter-spacing:5px;-webkit-text-stroke:2px #b17a22;paint-order:stroke fill;filter:drop-shadow(0 2px 0 #98662755)}
.mission-deadline>span{font:17px/1.3 Verdana,Arial,sans-serif}
.mission-deadline strong{font:bold 25px/1.25 Verdana,Arial,sans-serif;color:#173e3c}
.mission-starting{flex:none;font:15px/1.45 Verdana,Arial,sans-serif;color:#28594b;margin-top:3px}
.mission-starting>span{display:block;font-weight:bold;font-size:14px;margin-top:4px}
.mission-controls{position:relative;flex:none;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:10px;width:100%;min-height:62px;margin-top:auto}
.mission-controls .brief-start{min-width:185px;font-size:28px}
.mission-extras{font:14px/1.4 Verdana,Arial,sans-serif;max-width:100%}
.mission-extras summary{cursor:pointer;padding:4px 10px;color:#245848;text-decoration:underline;text-underline-offset:3px;min-height:22px}
.mission-extras[open] summary{font-weight:bold}
.mission-extras ul{position:absolute;bottom:100%;left:0;right:0;max-height:235px;overflow:auto;box-sizing:border-box;list-style:none;margin:0 0 5px;padding:12px 18px;text-align:left;background:#f4fff8;border:3px solid #326257;border-radius:16px;box-shadow:0 5px 0 #32625733;z-index:4}
.mission-extras li{padding:7px 0;border-bottom:1px solid #c2dfce;font-size:16px;line-height:1.4}
.mission-extras li:last-child{border-bottom:0}
@media(orientation:portrait) and (max-width:600px){
 .tutorial-scene.mission-scene{padding:60px 22px 30px;gap:12px}
 .mission-heading h2{font-size:34px;margin:10px 0 13px}
 .mission-heading p{font-size:18px}
 .mission-art{min-height:95px;max-height:180px;flex-basis:150px}
 .mission-art img{width:150px;max-height:170px}
 .mission-neighbourhood img{width:31%;max-height:140px}
 .mission-deadline{gap:7px}
 .mission-stars{font-size:43px}
 .mission-deadline>span{font-size:17px}
 .mission-deadline strong{font-size:25px}
 .mission-starting{font-size:16px}
 .mission-starting>span{font-size:15px}
 .mission-controls{min-height:65px;gap:14px}
 .mission-extras summary{font-size:16px;min-height:28px}
 .mission-extras ul{max-height:min(310px,50dvh)}
}
@media(orientation:portrait) and (max-width:600px) and (max-height:700px){
 .tutorial-scene.mission-scene{padding:32px 22px 20px;gap:7px}
 .mission-heading h2{font-size:29px;margin:8px 0}
 .mission-heading p{font-size:16px}
 .mission-art{min-height:70px;flex-basis:85px}
 .mission-art img{min-height:70px;max-height:100px}
 .mission-stars{font-size:34px}
 .mission-deadline{gap:3px}
 .mission-deadline strong{font-size:23px}
 .mission-controls{gap:8px}
}
/* The guide is a practice playfield, with the house itself as the control. */
#fs_stage .game-guide{background:#c2eee0;backdrop-filter:none;box-shadow:0 0 0 100vmax #c2eee0}
.tutorial-scene{position:absolute;inset:0;width:100%;height:100%;box-sizing:border-box;overflow:hidden;color:#173e3c;text-align:center;background:linear-gradient(#ecfff5e8,#e3f7e8c9),url('https://images.marapets.com/games/forsale/svg/guide-scenery.svg') center/cover;font-family:Verdana,Arial,sans-serif}
.tutorial-scene:before{content:'';position:absolute;inset:0;border:4px solid #ffffffad;border-radius:16px;pointer-events:none}
.tutorial-close{position:absolute;right:15px;top:15px;width:44px;height:44px;background:none;border:0;padding:0;z-index:3;cursor:pointer}
.tutorial-close img{width:44px;height:43px}
.tutorial-heading{position:absolute;top:24px;left:75px;right:75px}
.tutorial-heading>span{font:bold 13px/1 Verdana,Arial,sans-serif;letter-spacing:2px;color:#285950}
.tutorial-heading h2{margin:7px 0 0;color:#f34237;font:46px/1.05 Impact,Haettenschweiler,'Arial Narrow Bold',sans-serif;letter-spacing:1px;-webkit-text-stroke:5px white;paint-order:stroke fill;filter:drop-shadow(0 3px 0 #9a3938)}
.tutorial-wallet{position:absolute;left:35px;top:127px;width:109px;height:66px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:#fffffff2;border:3px solid #326257;border-radius:18px 8px 18px 8px;box-shadow:0 4px 0 #32625733;transform:rotate(-3deg)}
.tutorial-wallet span{font:bold 12px Verdana,Arial,sans-serif;letter-spacing:1px}
.tutorial-wallet b{font:bold 28px/1 Verdana,Arial,sans-serif}
.tutorial-stage{position:absolute;top:112px;left:50%;width:330px;height:228px;transform:translateX(-50%)}
.tutorial-house{position:absolute;left:48px;top:0;width:240px;height:220px;padding:0;border:0;background:none;cursor:pointer;transition:transform .15s}
.tutorial-house:hover:not(:disabled){transform:translateY(-4px)}
.tutorial-house:active:not(:disabled){transform:scale(.97)}
.tutorial-house:disabled{opacity:1}
.tutorial-cottage{position:absolute;left:6px;top:0;width:211px;height:207px;filter:drop-shadow(0 5px 2px #23584822)}
.tutorial-glow{position:absolute;left:0;bottom:1px;width:230px;height:55px}
.tutorial-price{position:absolute;bottom:0;right:-12px;width:98px;height:71px;filter:drop-shadow(0 3px 0 #17534022)}
.tutorial-price img{width:100%;height:100%}
.tutorial-price b{position:absolute;left:0;right:0;top:9px;font:bold 23px Verdana,Arial,sans-serif;color:#124341}
.tutorial-price.is-owned{height:44px;bottom:24px;right:-14px}
.tutorial-price.is-owned b{top:9px;font-size:21px}
.tutorial-paid{position:absolute;left:0;right:0;top:225px;font:bold 15px/1.3 Verdana,Arial,sans-serif;color:#28594b}
.tutorial-profit{position:absolute;left:20px;top:70px;transform:rotate(-9deg);color:#fff;font:bold 38px/1 Verdana,Arial,sans-serif;-webkit-text-stroke:5px #267340;paint-order:stroke fill;filter:drop-shadow(0 3px 0 #143f2c33)}
.tutorial-profit small{display:block;font:bold 13px/1.7 Verdana,Arial,sans-serif;-webkit-text-stroke:3px #267340;letter-spacing:1px}
.tutorial-message{position:absolute;left:60px;right:60px;bottom:77px;min-height:45px;display:flex;flex-direction:column;justify-content:center}
.tutorial-message p{margin:0;font:bold 20px/1.4 Verdana,Arial,sans-serif;text-wrap:balance}
.tutorial-message small{display:block;margin-top:10px;font:16px/1.4 Verdana,Arial,sans-serif;color:#315e50}
.tutorial-controls{position:absolute;left:28px;right:28px;bottom:20px;height:42px;display:flex;align-items:center;justify-content:center}
.tutorial-back,.tutorial-replay{position:absolute;left:0;min-height:44px;padding:5px 10px;border:0;background:transparent;color:#245848;font:bold 15px Verdana,Arial,sans-serif;text-decoration:underline;text-underline-offset:4px;cursor:pointer}
.tutorial-replay{left:auto;right:0}
.tutorial-next{min-width:168px;border:3px solid #fff;border-radius:12px;padding:8px 22px;background:#ef4136;box-shadow:0 3px 0 #983e31,0 0 0 2px #ab392d;color:white;font:26px/1 Impact,Haettenschweiler,'Arial Narrow Bold',sans-serif;letter-spacing:1px;text-shadow:0 2px #962d23;cursor:pointer}
.tutorial-next:active{transform:translateY(2px);box-shadow:0 1px 0 #983e31,0 0 0 2px #ab392d}
.tutorial-hint{font:bold 15px Verdana,Arial,sans-serif;color:#28594b}
.tutorial-demo{position:absolute;right:0;font:12px Verdana,Arial,sans-serif;color:#446858}
.tutorial-flow{position:absolute;right:4px;top:13px;font:normal 17px/1 Verdana,Arial,sans-serif;color:#235a35}
.tutorial-net{position:absolute;left:12px;right:12px;top:40px;border-radius:5px;padding:3px;background:#f5fff0;color:#194f25;font:bold 16px/1 Verdana,Arial,sans-serif}
.tutorial-house:disabled{cursor:default}
.tutorial-clubhouse{position:absolute;left:80px;top:48px;width:170px;height:160px;object-fit:contain;filter:drop-shadow(0 4px 2px #23584822)}
.tutorial-award{position:absolute;left:0;right:0;top:-5px;display:flex;align-items:center;justify-content:center;gap:7px;color:#ffd44a;-webkit-text-stroke:2px #b17a22;paint-order:stroke fill;filter:drop-shadow(0 3px 0 #98662755);font:bold 58px/1 Verdana,Arial,sans-serif}
.tutorial-award span:first-child{transform:rotate(-14deg)}
.tutorial-award span:nth-child(2){font-size:78px;transform:translateY(-6px)}
.tutorial-award span:last-child{transform:rotate(14deg)}
@media(orientation:portrait) and (max-width:600px){
 .tutorial-heading{top:max(33px,env(safe-area-inset-top));left:20px;right:20px}
 .tutorial-heading>span{font-size:12px}
 .tutorial-heading h2{font-size:38px;margin-top:12px}
 .tutorial-close{right:10px;top:10px}
 .tutorial-wallet{top:143px;left:24px;width:87px;height:60px}
 .tutorial-wallet b{font-size:25px}
 .tutorial-stage{top:clamp(215px,32vh,300px);width:330px}
 .tutorial-message{left:22px;right:22px;bottom:125px;min-height:95px}
 .tutorial-message p{font-size:21px}
 .tutorial-message small{font-size:17px}
 .tutorial-controls{bottom:max(50px,env(safe-area-inset-bottom));left:16px;right:16px}
 .tutorial-hint{max-width:160px;line-height:1.4}
 .tutorial-demo{bottom:-26px;left:0;right:0}
 .tutorial-back,.tutorial-replay{font-size:14px;padding:5px}
 .tutorial-next{min-width:143px;font-size:25px}
}
@media(orientation:portrait) and (max-width:600px) and (max-height:700px){
 .tutorial-heading{top:21px}
 .tutorial-heading h2{font-size:34px}
 .tutorial-wallet{top:115px}
 .tutorial-stage{top:183px;transform:translateX(-50%) scale(.85);transform-origin:top center}
 .tutorial-message{bottom:95px;min-height:75px}
 .tutorial-message p{font-size:18px}
 .tutorial-message small{font-size:15px}
 .tutorial-controls{bottom:35px}
}
/* The same landscape-phone canvas on every screen, with art kept in proportion. */
.wide-menu-scenery{display:none}
.wide-screen .scr{width:1200px;height:470px}
.wide-screen .overlay{left:0;top:0;z-index:700}
.wide-screen .classic-menu-scenery{display:block;left:261.6px!important;top:0!important;width:676.8px!important;height:470px!important;z-index:1;-webkit-mask-image:linear-gradient(to right,transparent,#000 20px,#000 calc(100% - 24px),transparent);mask-image:linear-gradient(to right,transparent,#000 20px,#000 calc(100% - 24px),transparent)}
/* Only the outer scenery is new. The original centre remains a separate image. */
.wide-screen .wide-menu-scenery{display:block;object-fit:cover}
.wide-screen .level-scenery{opacity:1;filter:saturate(.7) brightness(1.08)}
.wide-screen .select-screen .selshade,.wide-screen .select-screen .seltitle,.wide-screen .select-screen .selgrid,.wide-screen .select-screen .pagebtn{z-index:2}
.wide-screen .sitebtn{transform:scale(1.4);transform-origin:top right;z-index:600}
.wide-screen .fs-audio{right:calc(81.6px - var(--fs-offset-x, 0px))}
.wide-screen .sitebtn:after{content:'';position:absolute;inset:-9px}
.wide-screen .menu-code-btn{right:278.52px!important;width:114.68px;height:63.92px;border-width:4.7px;border-radius:7.52px;z-index:4}
.wide-screen .menu-code-btn.play{top:156.04px!important;font-size:29.14px}
.wide-screen .menu-code-btn.instructions{top:238.76px!important;font-size:29.14px}
.wide-screen .menu-old-fairy{display:block;left:665.8px!important;top:330.88px!important;width:86.48px!important;height:116.56px!important;z-index:3}
.wide-screen .fairy-ground-shadow{left:683.66px;top:437.1px;width:55.46px;height:9.4px;z-index:2}
.wide-screen .selshade{left:70px;top:26px;width:1060px;height:415px;border-radius:18px}
.wide-screen .seltitle{left:0;top:40px;width:1200px;font-size:43px}
.wide-screen .selgrid{left:100px;top:104px;width:1000px;gap:0}
.wide-screen .seltile{box-sizing:border-box;width:82px;height:91px;margin:8px;border-width:3px}
.wide-screen .selnum{font-size:36px;margin-top:7px}
.wide-screen .selstars{font-size:18px;margin-top:4px}
.wide-screen .sellock{font-size:31px;margin-top:18px}
.wide-screen .pagebtn{left:365px!important;top:360px!important;font-size:24px;padding:13px 22px}
.wide-screen .pagebtn~.pagebtn{left:625px!important}
/* Guide: large playable illustration beside one short instruction. */
.wide-screen .tutorial-scene{background-image:linear-gradient(#ecfff5e8,#e3f7e8c9),url('https://images.marapets.com/games/forsale/svg/guide-scenery.svg');background-size:cover}
.wide-screen .tutorial-heading{top:58px;left:565px;right:70px}
.wide-screen .tutorial-heading>span{font-size:18px}
.wide-screen .tutorial-heading h2{font-size:52px;margin-top:14px}
.wide-screen .tutorial-wallet{left:100px;top:103px;width:125px;height:76px}
.wide-screen .tutorial-wallet span{font-size:16px}
.wide-screen .tutorial-wallet b{font-size:34px}
.wide-screen .tutorial-stage{left:330px;top:147px;transform:translateX(-50%) scale(1.18);transform-origin:top center}
.wide-screen .tutorial-stage.is-final{top:151px}
.wide-screen .tutorial-message{left:590px;right:95px;top:191px;bottom:auto;min-height:140px}
.wide-screen .tutorial-message p{font-size:27px;line-height:1.4}
.wide-screen .tutorial-message small{font-size:21px;line-height:1.45;margin-top:17px}
.wide-screen .tutorial-controls{left:575px;right:80px;bottom:63px;height:54px}
.wide-screen .tutorial-next{min-width:200px;font-size:32px;padding:11px 25px}
.wide-screen .tutorial-back,.wide-screen .tutorial-replay{font-size:19px;min-height:54px}
.wide-screen .tutorial-hint{font-size:20px;max-width:290px;line-height:1.4}
.wide-screen .tutorial-demo{left:0;right:0;bottom:-30px;font-size:16px}
.wide-screen .tutorial-close{right:18px;top:15px;transform:scale(1.4);transform-origin:top right}
/* Level brief: one goal, its artwork, three-star time, then Play. */
.wide-screen .tutorial-scene.mission-scene{display:block;padding:0}
.wide-screen .mission-heading{position:absolute;left:555px;top:30px;width:565px;max-width:none}
.wide-screen .mission-heading>span{font-size:20px}
.wide-screen .mission-heading h2{font-size:40px;margin:12px 0}
.wide-screen .mission-heading p{font-size:22px;line-height:1.4}
.wide-screen .mission-art{position:absolute;left:80px;top:87px;width:410px;height:300px;max-height:none;margin:0}
.wide-screen .mission-art img{width:260px;height:280px;max-height:none}
.wide-screen .mission-neighbourhood img{width:135px;height:190px}
.wide-screen .mission-deadline{position:absolute;left:575px;top:218px;width:530px;gap:5px}
.wide-screen .mission-stars{font-size:43px}
.wide-screen .mission-deadline>span{font-size:22px}
.wide-screen .mission-deadline strong{font-size:30px}
.wide-screen .mission-starting{position:absolute;left:565px;top:341px;width:550px;margin:0;font-size:20px}
.wide-screen .mission-starting>span{font-size:18px}
.wide-screen .mission-controls{position:absolute;left:585px;right:85px;bottom:19px;width:auto;min-height:50px;flex-direction:row;justify-content:center;gap:36px;margin:0}
.wide-screen .mission-controls .brief-start{min-width:200px;font-size:32px}
.wide-screen .mission-extras summary{font-size:20px;min-height:40px;padding:8px}
.wide-screen .mission-extras li{font-size:19px}
.wide-screen .mission-extras ul{max-height:290px}
.wide-screen .leave-panel{left:345px;top:64px;width:510px}
.wide-screen .leave-body h2{font-size:32px}
.wide-screen .leave-body p{font-size:21px}
.wide-screen .leave-panel footer button{font-size:20px;min-height:54px}
/* Clear price boards: real text, full line height and a separate arrow lane. */
#fs_stage .price-tag{z-index:450;pointer-events:auto;cursor:pointer;transform:scale(var(--fs-tag,1));transform-origin:0 0}
#fs_stage .price-tag>img{display:none}
#fs_stage .price-tag:before{content:'';position:absolute;left:-33px;top:-16px;width:66px;height:21px;box-sizing:border-box;background:#fff;border:1.5px solid #171918;border-radius:3px;box-shadow:0 1px 0 #142d2a55}
#fs_stage .price-tag:after{content:'';position:absolute;left:-2.5px;top:3px;width:5px;height:6px;box-sizing:border-box;background:#23896b;border:1px solid #17221b;border-top:0;z-index:-1}
#fs_stage .price-pill:before{background:#effff1;border-color:#1c5834;box-shadow:inset 0 -2px #b9e7c2,0 1px 0 #142d2a55}
#fs_stage .price-pill:after{display:none}
#fs_stage .price-tag .tagval{left:-29px!important;top:-15px!important;width:48px!important;height:20px;box-sizing:border-box;padding:0;font:800 16px/20px Arial,Verdana,sans-serif;font-variant-numeric:tabular-nums;text-align:center;letter-spacing:-.35px;color:#111;text-shadow:none;white-space:nowrap}
#fs_stage .price-tag .tagval.long{font-size:13.5px;letter-spacing:-.2px}
#fs_stage .price-tag .tagval.nfs{left:-29px!important;width:58px!important;font:bold 8.5px/20px Arial,Verdana,sans-serif;letter-spacing:0}
#fs_stage .price-tag .arrow{left:23px!important;top:-8px!important;border-left-width:3px;border-right-width:3px}
#fs_stage.wide-play .price-tag{transform:scale(1.45)}
#fs_stage.wide-play .price-tag:after{top:3px;height:4px}
/* Two readable lines below the club house; normal sale prices keep their layout. */
#fs_stage .club-unavailable .price-tag:before{left:-46px;top:-17px;width:92px;height:35px}
#fs_stage .club-unavailable .price-tag:after{display:none}
#fs_stage .club-unavailable .tagval.nfs{left:-42px!important;top:-16px!important;width:84px!important;height:32px;font:bold 16px/16px Arial,Verdana,sans-serif;white-space:normal;letter-spacing:0}
/* Shared Marapets dialogs: original Skyscraper panel, Chewy and game buttons. */

.status-card{position:absolute;left:565px;width:146px;height:75px;box-sizing:border-box;border:5px solid #f00;border-radius:8px;background:#fff;text-align:center;color:#050505;z-index:500;pointer-events:none;overflow:hidden}
.status-time{top:178px}.status-cash{top:269px}
.status-label{display:block;font:bold 15px/19px Verdana,Arial,sans-serif;white-space:nowrap}
#fs_stage .status-card .status-value{position:static!important;width:auto!important;height:auto!important;padding:0!important;background:none!important;font:800 29px/35px Arial,Verdana,sans-serif;letter-spacing:-1px;white-space:nowrap;color:#050505}
#fs_stage .status-card .status-value.warn{color:#c31c13}
#fs_stage .status-time .status-value{font-size:24px;letter-spacing:-.7px}
.wide-play .status-card{top:4px;width:190px;height:66px;border-width:4px;border-radius:8px}
.wide-play .status-cash{left:694px}.wide-play .status-time{left:898px;width:200px}
.wide-play .status-label{font-size:15px;line-height:18px}
#fs_stage.wide-play .status-card .status-value{font-size:32px;line-height:34px}
.wide-play .goalchip,.wide-play .goalchip2{width:580px}
#fs_stage .shared-dialog{left:0;top:0;width:100%;height:100%;z-index:750;background:#0008;backdrop-filter:none;box-shadow:0 0 0 100vmax #0008}
.shared-game-panel{position:absolute;left:50%;top:50%;width:793px;height:474px;transform:translate(-50%,-50%) scale(.8);background:url('https://images.marapets.com/games/gummy/sprites/msg_box.png') center/100% 100% no-repeat;color:#fff;font:400 50px/1 Chewy,Arial,sans-serif;text-align:center}
.wide-screen .shared-game-panel{transform:translate(-50%,-50%) scale(.9)}
.shared-game-panel h2{margin:0;color:#fff;font-family:Chewy,Arial,sans-serif;font-weight:400;-webkit-text-stroke:3px #555;paint-order:stroke fill;text-shadow:none}
.shared-question{position:absolute;left:96.5px;top:37px;width:600px;height:160px;display:flex;align-items:center;justify-content:center;font-size:80px;line-height:1}
.shared-image-button{position:absolute;width:84px;height:82px;padding:0;border:0;margin:0;background:none;transform:translate(-50%,-50%);cursor:pointer;touch-action:manipulation}
.shared-image-button:after{content:'';position:absolute;inset:-10px}
.shared-image-button img{display:block;width:100%;height:100%;object-fit:contain}
.shared-image-button:hover{filter:brightness(1.1)}
.shared-image-button:active{transform:translate(-50%,-50%) scale(.95)}
.shared-image-button:disabled{filter:grayscale(1);opacity:.5}
.shared-yes{left:186.5px;top:357px}.shared-no{left:606.5px;top:357px}
.shared-result-screen{z-index:650;background:#009999}
.wide-screen .shared-result-screen .wide-play-background{display:block}
.wide-screen .shared-result-screen .classic-play-background{display:none}
.shared-result-shade{position:absolute;inset:0;background:#0008;box-shadow:0 0 0 100vmax #0008}
.shared-result-title{position:absolute;left:96.5px;top:37px;width:600px;height:100px;font-size:100px;line-height:100px;-webkit-text-stroke-width:5px!important}
.shared-result-stars{position:absolute;left:96.5px;top:137px;width:600px;height:50px;color:#ffd54e;font:400 48px/50px Arial,sans-serif;letter-spacing:6px}
.shared-result-time{position:absolute;left:166.5px;top:187px;width:460px;height:50px;font:400 50px/50px Chewy,Arial,sans-serif}
.shared-result-time:before{content:'Time: '}
.shared-result-score{position:absolute;left:96.5px;top:237px;width:600px;height:50px;font:400 50px/50px Chewy,Arial,sans-serif}
.shared-home{left:106.5px;top:367px}.shared-send{left:396.5px;top:367px;width:260px;height:80px}.shared-replay{left:686.5px;top:367px}
.shared-loss-message{position:absolute;left:96.5px;top:177px;width:600px;font:400 50px/50px Chewy,Arial,sans-serif}
.shared-image-button[hidden]{display:none}
.shared-result-time,.shared-result-score,.shared-loss-message{-webkit-text-stroke:5px #555;paint-order:stroke fill}

/* Visual QA: keep late-level information clear of the houses and action buttons. */
#fs_stage:not(.wide-screen) .mission-scene{gap:6px}
#fs_stage:not(.wide-screen) .mission-art,#fs_stage:not(.wide-screen) .mission-art img{min-height:74px}
#fs_stage:not(.wide-screen) .goalchip{left:565px;top:62px;width:146px;height:55px;padding:5px 7px}
#fs_stage:not(.wide-screen) .goalchip small{font-size:10px;margin-bottom:4px}
#fs_stage:not(.wide-screen) .goalchip strong{font-size:14px;line-height:15px}
#fs_stage:not(.wide-screen) .goalchip2{left:565px;top:117px;width:146px;padding:5px 7px;font-size:11px;line-height:14px}
#fs_stage:not(.wide-screen) .goalchip2 small{font-size:10px;line-height:13px}
#fs_stage:not(.wide-screen) .forecastchip{left:565px;top:353px;width:146px;min-height:39px;box-sizing:border-box;padding:5px 7px;font:12px/15px Verdana,Arial,sans-serif;white-space:normal}
#fs_stage:not(.wide-screen) .streakchip{left:565px;top:399px;width:146px;min-height:37px;box-sizing:border-box;padding:5px 7px;font:12px/15px Verdana,Arial,sans-serif;white-space:normal}
#fs_stage:not(.wide-screen) .txtbtn.toolbtn{left:565px!important;top:444px!important;width:146px;min-height:41px;box-sizing:border-box;padding:5px 4px;font:bold 13px/16px Verdana,Arial,sans-serif;white-space:nowrap}
.wide-screen .mission-starting{top:336px;font-size:19px;line-height:1.25}
.wide-screen .mission-starting>span{font-size:18px;line-height:1.25;margin-top:3px}
.wide-screen .mission-controls{bottom:13px}
.wide-play .forecastchip{font-size:20px}
.wide-play .streakchip{font-size:19px;line-height:1.2;padding:4px}
.wide-play .txtbtn.toolbtn{font-size:17px;line-height:1.15;padding:5px 4px}
/* Old Fairy race: inside the goal card on the classic canvas, beside the progress in the wide strip. */
#fs_stage .goalchip2 .racebar{width:auto;margin:5px 0 1px}
#fs_stage.wide-play .goalchip2 .racebar{position:absolute;left:352px;top:-1px;width:232px;height:30px;margin:0}
.wide-play .race-track{left:15px;right:50px;top:9px;height:12px;border-color:#fff;background:#0b6f70}
.wide-play .race-fill{background:linear-gradient(#9cf29a,#35c34b)}
.wide-play .race-fairy{width:26px;height:26px;margin:-15px 0 0 -15px;border-color:#fff}
.wide-play .racebar.fairy-ahead .race-fairy{border-color:#ffb3d9}
.wide-play .race-flag{width:48px;font:bold 18px/30px Verdana,Arial,sans-serif;color:#ffd44a;letter-spacing:-1px}
.wide-play .racebar.fairy-won .race-flag{color:#bcd3d3}
.wide-play .racebar.no-fairy .race-fairy{border-color:#fff}
.wide-play .racebar:not(.no-fairy) .race-fairy{width:36px;height:36px;margin:-20px 0 0 -18px}
.wide-play .racebar.no-fairy .race-fairy::after{font-size:16px;line-height:26px}
.mission-fairy{display:inline-block;width:34px;height:34px;margin:-6px 8px -6px 0;vertical-align:middle;box-sizing:border-box;border:2px solid #6a4a8c;border-radius:50%;background-color:#f4ecfb;background-repeat:no-repeat;background-size:228% auto;background-position:25% 8%}
.wide-screen .mission-fairy{width:42px;height:42px;margin:-8px 10px -8px 0}
.tutorial-clubhouse.tutorial-fairy{top:66px;height:150px}
/* "Are you sure?" matches the other Marapets games (Gummy's CAreYouSurePanel): the solid shared
   message box, 80px white Chewy, Yes/Exit at the same box coordinates, a faint dim and the same
   elastic pop-in. */
#fs_stage .shared-dialog{background:rgba(0,0,0,.05);box-shadow:0 0 0 100vmax rgba(0,0,0,.05);backdrop-filter:none}
#fs_stage .shared-exit-panel{--pop:.5;width:818px;height:807px;background-image:url('https://images.marapets.com/games/gummy/sprites/msg_box.png');transform:translate(-50%,-50%) scale(var(--pop))}
#fs_stage.wide-screen .shared-exit-panel{--pop:.47}
#fs_stage .shared-exit-panel .shared-question{left:149px;top:190px;width:520px;height:200px;-webkit-text-stroke:0}
#fs_stage .shared-exit-panel .shared-yes{left:200px;top:550px}
#fs_stage .shared-exit-panel .shared-no{left:618px;top:550px}
#fs_stage .shared-exit-panel .shared-image-button:after{inset:-45px}
#fs_stage .shared-exit-panel.pop{animation:fs_pop 1s linear both}
@keyframes fs_pop{
 0%{transform:translate(-50%,-50%) scale(calc(var(--pop)*.1))}
 16%{transform:translate(-50%,-50%) scale(calc(var(--pop)*1.13))}
 28%{transform:translate(-50%,-50%) scale(calc(var(--pop)*.95))}
 44%{transform:translate(-50%,-50%) scale(calc(var(--pop)*1.02))}
 59%{transform:translate(-50%,-50%) scale(calc(var(--pop)*.99))}
 76%{transform:translate(-50%,-50%) scale(calc(var(--pop)*1.004))}
 100%{transform:translate(-50%,-50%) scale(var(--pop))}
}
@media(prefers-reduced-motion:reduce){#fs_stage .shared-exit-panel.pop{animation:none}}
/* Level Complete and Game Over use the same solid box, text and button places as Gummy's end
   panel (title at 170, buttons at the panel centre +/-240 x, +250 y), with its light 10% dim. */
#fs_stage .shared-result-shade{background:rgba(0,0,0,.1);box-shadow:0 0 0 100vmax rgba(0,0,0,.1)}
#fs_stage .shared-result-panel{--pop:.5;width:818px;height:807px;background-image:url('https://images.marapets.com/games/gummy/sprites/msg_box.png');transform:translate(-50%,-50%) scale(var(--pop))}
#fs_stage.wide-screen .shared-result-panel{--pop:.47}
#fs_stage .shared-result-panel .shared-result-title{left:109px;top:170px;width:600px;height:100px;font-size:80px;line-height:100px;-webkit-text-stroke-width:0!important}
#fs_stage .shared-result-panel .shared-result-stars{left:109px;top:285px;width:600px;height:70px;font:400 64px/70px Arial,sans-serif;letter-spacing:8px}
#fs_stage .shared-result-panel .shared-result-time{left:109px;top:372px;width:600px;height:56px;font:400 48px/56px Chewy,Arial,sans-serif;-webkit-text-stroke:0}
#fs_stage .shared-result-panel .shared-result-score{left:109px;top:440px;width:600px;height:56px;font:400 48px/56px Chewy,Arial,sans-serif;-webkit-text-stroke:0}
#fs_stage .shared-result-panel .shared-loss-message{left:109px;top:300px;width:600px;font:400 56px/64px Chewy,Arial,sans-serif;-webkit-text-stroke:0}
#fs_stage .shared-result-panel .shared-home{left:169px;top:653px}
#fs_stage .shared-result-panel .shared-send{left:409px;top:653px}
#fs_stage .shared-result-panel .shared-replay{left:649px;top:653px}
#fs_stage .shared-result-panel .shared-image-button:after{inset:-30px}
/* Hot property and fixer-upper badges sit at the top right of the house, like the renovation star on the left. */
.wide-play .hotbadge,.wide-play .fixbadge{left:22px!important;top:-67px!important;scale:1.25}
#fs_stage .slot.hot .price-tag:before{background:#fff3e3;border-color:#e8590c}
#fs_stage .slot.hot .price-tag .tagval{color:#b8430b}
/* Crumbling listing: red price board so players can learn to leave it alone. */
#fs_stage .slot.crumbling .price-tag:before{background:#ffe1dc;border-color:#b3261e}
#fs_stage .slot.crumbling .price-tag .tagval{color:#b3261e}
@media(max-width:650px) and (orientation:landscape){
 .wide-play .goalchip small{font-size:22px}
 .wide-play .goalchip strong{font-size:25px}
 .wide-play .goalchip2{font-size:24px}
 .wide-play .goalchip2 small{font-size:22px;margin-left:12px}
 .wide-screen .tutorial-message p{font-size:29px}
 .wide-screen .tutorial-hint{font-size:24px;max-width:350px}
 .wide-screen .tutorial-paid{font-size:20px;left:-40px;right:-40px}
 .wide-screen .tutorial-back,.wide-screen .tutorial-replay{font-size:22px}
 .wide-screen .tutorial-demo{font-size:20px}
 .wide-screen .menu-code-btn:after{content:'';position:absolute;inset:-14px -8px}
}
/* Guide copy: heading at the top, then the message and buttons stacked at the bottom, so text never overlaps. */
.tutorial-copy{position:absolute;left:28px;right:28px;top:24px;bottom:20px;display:flex;flex-direction:column;pointer-events:none}
.tutorial-copy>*{pointer-events:auto}
#fs_stage .tutorial-copy .tutorial-heading{position:static;margin:0 47px}
#fs_stage .tutorial-copy .tutorial-message{position:static;margin:auto 32px 12px;min-height:0}
#fs_stage .tutorial-copy .tutorial-controls{position:relative;left:auto;right:auto;top:auto;bottom:auto;flex:none}
.tutorial-stage.is-final .tutorial-award{top:14px}
.tutorial-fairy-note{position:absolute;left:50%;top:128px;transform:translateX(-50%);display:flex;align-items:center;gap:10px;white-space:nowrap;padding:5px 16px 5px 5px;border:2px solid #6a4a8c;border-radius:30px;background:#fffffff0;color:#4a2f66;font:bold 16px/1.2 Verdana,Arial,sans-serif;box-shadow:0 2px 0 #6a4a8c33}
.tutorial-fairy-note i{flex:none;width:46px;height:46px;background:transparent no-repeat center/contain}
.tutorial-price.is-owned b{right:14px}
.tutorial-flow{right:9px}
.tutorial-wallet{gap:6px}
.tutorial-wallet span{line-height:1}
.tutorial-wallet b{line-height:1.25}
.wide-screen .tutorial-copy{left:565px;right:70px;top:40px;bottom:44px}
#fs_stage.wide-screen .tutorial-copy .tutorial-heading{margin:14px 0 0}
#fs_stage.wide-screen .tutorial-copy .tutorial-message{margin:auto 20px 18px}
.wide-screen .tutorial-wallet{left:56px;top:60px}
.wide-screen .tutorial-fairy-note{width:290px;white-space:normal;text-align:left;font-size:17px;line-height:1.25}
.wide-screen .tutorial-fairy-note i{width:54px;height:54px}
/* Time and cash cards: label and value centred with a little air, never touching the border. */
.status-card{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2px}
.status-label{font-size:15px;line-height:19px}
.wide-play .status-label{font-size:15px;line-height:18px}
#fs_stage.wide-play .status-card .status-value{font-size:29px;line-height:30px}
/* Renovate button: the action on one line, what is left underneath; one line on the wide board. */
.txtbtn.toolbtn small{display:block;font-size:11px;line-height:14px;opacity:.85}
.wide-play .txtbtn.toolbtn small{display:inline;font-size:14px;line-height:inherit;margin-left:9px}
.wide-play .txtbtn.toolbtn small::before{content:"\00b7";margin-right:9px}
/* Club house briefs: the Old Fairy stands at the front corner of the club house she is racing you for. */
#fs_stage .mission-art img.mission-rival{width:auto;height:92px;min-height:0;max-height:none;align-self:flex-end;margin:0 0 2px -34px;filter:drop-shadow(0 3px 2px #23584833)}
#fs_stage.wide-screen .mission-art img.mission-rival{width:auto;height:170px;margin:0 0 14px -70px}
