/* Release finish: paper, vermilion, ink. */
.theme-ticket .ad-slot[data-ad-preview="true"] { background:#eee8db; border:1px dashed #c5b79c; box-shadow:none; color:#776a55; gap:5px; }
.theme-ticket .ad-slot[data-ad-preview="true"].dark,.theme-ticket .ad-wrap.dark .ad-slot[data-ad-preview="true"] { background:#25221b; border-color:#655b48; color:#bfb29a; }
.ad-placeholder-title { font-size:14px; font-weight:700; letter-spacing:.04em; }
.ad-slot[data-ad-preview="true"] .ad-size { font-size:13px; opacity:.8; }
.ad-slot[data-ad-preview="true"] .ad-name { font-size:13px; }
.theme-ticket .ad-anchor { flex-shrink:0; padding:6px 0; }
.ad-anchor .ad-slot[data-ad-preview="true"] { gap:2px; }
.ad-anchor .ad-slot[data-ad-preview="true"]::before { content:none; }
body.theme-ticket { background:#e9e3d6; background-image:radial-gradient(#b5aa9436 .7px,transparent .7px);background-size:5px 5px; }
.release-notice { position:relative;z-index:45;min-height:32px;padding:5px 18px;display:flex;align-items:center;justify-content:center;gap:18px;background:#e3ddce;border-bottom:1px solid #d3cab7;color:#62594c;font:13px/1.6 var(--sans); }
.edition-label { flex:none;font:700 13px var(--sans);border:0;border-bottom:1px solid #9e9380;background:none;padding:2px 0; }
#save-status { min-width:0; }.release-notice:has([data-error="true"]) { background:#fff0db;flex-wrap:wrap;padding:10px 18px; }.release-notice [data-error="true"] {color:#a03221;max-width:750px;font-size:15px;}
#save-status::before { content:'';display:inline-block;width:5px;height:5px;background:#46805b;border-radius:50%;margin-right:6px;vertical-align:1px; }#save-status[data-error="true"]::before {background:#b4321e;}
#root { height:calc(100% - var(--release-height,32px)); }
.desktop-intro {display:none;}
.edition-dialog {border:1px solid #d7c9af;border-radius:20px;background:#fffcf4;color:#1a1712;width:min(440px,calc(100% - 32px));max-height:85dvh;overflow:auto;padding:28px;box-shadow:0 28px 100px #0003;font:17px/1.9 var(--sans);}.edition-dialog::backdrop {background:#18130ca6;backdrop-filter:blur(5px);}.edition-dialog h2 {font:800 25px var(--serif);margin:12px 0 24px;}.edition-dialog h3 {font-size:17px;margin:24px 0 6px;}.edition-dialog p {margin:8px 0;}.edition-dialog form {float:right;}.edition-dialog a {color:#a43220;display:block;margin-top:24px;}
.theme-ticket .hero {display:grid;grid-template-columns:110px minmax(0,1fr);gap:8px;align-items:end;}.theme-ticket .age-big {white-space:nowrap;font-size:76px;}.theme-ticket .date-line {min-width:0;font-size:14px;}.theme-ticket .date-line .num {font-size:16px;}.theme-ticket .price-chip {text-align:right;justify-content:flex-end;flex-wrap:wrap;font-size:13px;max-width:100%;line-height:1.6;}
.theme-ticket .lp .ft-h1 {font-size:clamp(34px,9.5vw,42px);line-height:1.38;letter-spacing:.005em;}.theme-ticket .lp .ft-lead {line-height:1.95;color:#655b4c;font-size:16px;max-width:34em;}.theme-ticket .lp-hero {padding-top:66px;}.theme-ticket .lp-logo {opacity:1;}.theme-ticket .lp-bar {background:#f4efe3ee;}.theme-ticket .ft-ticket-wrap {margin-top:24px;margin-bottom:24px;}.theme-ticket .acct-chip {font-size:13px;min-height:30px;}.theme-ticket .tt-go {min-height:64px;border-radius:10px;box-shadow:0 8px 20px #b52f1d22;}.theme-ticket .lp-hero .tt-go::after {content:'↗';font:24px var(--sans);position:absolute;right:20px;}.theme-ticket .lp-hero .tt-go {position:relative;padding-right:44px;}.theme-ticket .lp-sec {padding-top:30px;}.theme-ticket .ft-sec-h {font-size:17.5px;}
.preview-ribbon {display:flex;align-items:center;justify-content:space-between;gap:12px;background:#f0e6d1;color:#59482e;padding:10px 16px;font:15px/1.6 var(--sans);}.preview-ribbon b {white-space:nowrap;}.preview-ribbon span {font-size:13px;}
.result-analysis {margin-top:20px;padding:20px;background:#fffcf4;border-radius:12px;border:1px solid #e4d9c2;color:#1a1712;}.result-analysis h3 {font:800 17.5px var(--serif);margin:0 0 18px;}.analysis-row {margin:13px 0;}.analysis-label {display:flex;justify-content:space-between;gap:12px;font-size:14px;margin-bottom:7px;}.analysis-label b {font:700 16px var(--mono);}.analysis-bar {height:7px;border-radius:5px;background:#e7dfd0;overflow:hidden;}.analysis-bar i {display:block;height:100%;background:#b8a784;border-radius:5px;}.analysis-row.win .analysis-bar i {background:#c8321e;}.analysis-foot {border-top:1px dashed #d9ceb8;margin-top:18px;padding-top:14px;display:flex;justify-content:space-between;font-size:15px;align-items:center;}.analysis-foot strong {font:700 25px var(--mono);color:#c8321e;}.analysis-foot small {font:15px var(--sans);}
.life-milestones {display:flex;gap:0;margin:24px 0 4px;}.life-milestones>div {flex:1;position:relative;border-top:1px solid #756c5e;padding-top:12px;font-size:14px;}.life-milestones>div:before {content:'';width:7px;height:7px;border-radius:50%;background:#c39144;position:absolute;left:0;top:-4px;}.life-milestones b {display:block;margin-bottom:3px;font:700 18px var(--mono);}.life-milestones span {color:#b6ad9c;}
.publish-box {margin:20px 0 4px;padding:18px;background:#eee5d4;border:1px solid #d7c8ad;border-radius:12px;}.publish-box h4 {margin:0 0 8px;font:800 17.5px var(--serif);}.publish-box .note {font-size:14px;line-height:1.8;}.publish-box .sp-url {overflow-wrap:anywhere;user-select:all;}.publish-box .btn {margin:8px 0;text-decoration:none;min-height:46px;}.share-sheet .share-msg {position:sticky;bottom:0;white-space:normal;height:auto;max-width:100%;font-size:15px;line-height:1.8;}.share-preview img {border-radius:12px;}.spm-row a {text-decoration:none;}
.loading-ticket {align-self:center;margin:auto;padding:36px;width:min(340px,calc(100% - 40px));background:#fffcf4;border:1px solid #dacfb9;box-shadow:0 20px 45px #38291215;border-radius:14px;text-align:center;}.loading-ticket strong {display:block;font:800 32px var(--serif);margin:20px 0;color:#1a1712;}.loading-ticket strong span {color:#c8321e;}.loading-ticket .loading-balls {display:flex;justify-content:center;gap:8px;margin-bottom:22px;}.loading-balls i {width:26px;height:26px;border:1px solid #c8321e;border-radius:50%;background:#f4ddd0;animation:loadBall 1.2s infinite ease-in-out;}.loading-balls i:nth-child(2) {animation-delay:.15s;}.loading-balls i:nth-child(3) {animation-delay:.3s;}.loading-ticket p {font-size:15px;color:#786e5e;}.loading-ticket .eyebrow {font-size:13px;color:#8a7a61;}@keyframes loadBall {50%{transform:translateY(-6px);background:#c8321e;}}
:focus-visible {outline:3px solid #b87930;outline-offset:3px;}button:disabled {cursor:default;opacity:.55;}.sheet {overscroll-behavior:contain;}.btn:active:not(:disabled) {transform:translateY(1px);}
@media(max-width:360px) {.theme-ticket .hero {grid-template-columns:96px minmax(0,1fr);}.theme-ticket .age-big {font-size:65px;}.theme-ticket .date-line .num {font-size:14px;}.theme-ticket .ft-ticket-w {font-size:29px;}.release-notice {gap:10px;padding-inline:12px;}.theme-ticket .lp .ft-h1 {font-size:34px;}.theme-ticket .m-val {font-size:25px;}}
@media(min-width:1050px) {
  #root {justify-content:flex-end;padding:24px max(48px,calc((100vw - 1180px)/2)) 24px 0;}
  .shell {max-width:440px;border-radius:22px;box-shadow:0 25px 80px #4e3a2526,0 0 0 1px #9b8b6c33;}
  .desktop-intro {display:block;position:absolute;left:max(48px,calc((100vw - 1180px)/2));top:calc(var(--release-height,32px) + 48px);bottom:42px;width:calc(100vw - 610px);max-width:550px;overflow:auto;padding-right:16px;scrollbar-width:none;}
  .desktop-overline {display:flex;align-items:center;gap:10px;font:500 14px var(--mono);letter-spacing:.13em;}.desktop-overline>span:last-child {margin-left:auto;font-size:12px;color:#81725e;}.intro-dot {background:#bd3423;width:7px;height:7px;border-radius:50%;}
  .desktop-brand {font:800 clamp(56px,6vw,80px)/1.3 var(--serif);letter-spacing:-.07em;margin:36px 0 16px;white-space:nowrap;}.desktop-brand>span {color:#c8321e;}.desktop-description {font:700 20px/1.9 var(--serif);color:#514737;margin:0 0 30px;}
  .desktop-ticket {position:relative;background:#fffcf4;border:1px solid #d7c8ad;border-radius:5px;padding:20px 28px;box-shadow:0 18px 40px #5f47251a;transform:rotate(-3deg);max-width:420px;margin:34px 0 36px 8px;}.desktop-ticket:before,.desktop-ticket:after {content:'';position:absolute;top:52%;width:20px;height:20px;border-radius:50%;background:#e9e3d6;}.desktop-ticket:before {left:-11px;}.desktop-ticket:after {right:-11px;}.dt-top {display:flex;justify-content:space-between;font:14px var(--sans);border-bottom:1px dashed #cabda4;padding-bottom:12px;}.dt-balls {display:flex;gap:12px;justify-content:center;align-items:center;margin:20px 0;}.dt-balls i {font:700 28px var(--mono);font-style:normal;width:48px;height:48px;display:grid;place-items:center;border:1px solid #bda889;border-radius:50%;box-shadow:inset 0 -4px 9px #aa8a4020;}.dt-balls i:nth-last-child(-n+2) {color:#c8321e;border-color:#c8321e;background:#fce9dd;}.dt-balls em {font:17.5px var(--mono);color:#958366;}.dt-foot {display:flex;justify-content:space-between;align-items:center;font-size:13px;}.dt-foot b {border:1px solid #c8321e;color:#c8321e;padding:4px 9px;transform:rotate(8deg);}.dt-barcode {width:90px;height:12px;background:repeating-linear-gradient(90deg,#8e7c5f 0 1px,transparent 1px 3px,#8e7c5f 3px 5px,transparent 5px 7px);margin-top:12px;opacity:.6;}
  .desktop-steps {list-style:none;margin:0;padding:0;display:flex;gap:20px;}.desktop-steps li {flex:1;border-top:1px solid #cdbfa5;padding-top:16px;}.desktop-steps li>span {font:500 14px var(--mono);color:#b63b28;}.desktop-steps b {display:block;font-size:15px;margin:8px 0;}.desktop-steps small {font-size:13px;color:#80715c;display:block;line-height:1.8;}.desktop-bottom {display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;margin-top:36px;font-size:13px;color:#82745f;}.desktop-bottom a {color:#645540;text-decoration:none;}
}
@media(prefers-reduced-motion:reduce) {*,*::before,*::after {animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important;}}
/* Account forms share the paper/ticket palette and fit small phones. */
.auth-form fieldset { border: 0; padding: 0; margin: 0; min-width: 0; display: grid; gap: 12px; }
.auth-sheet { outline: none; }
.auth-sheet .note { line-height: 1.7; }
.auth-sheet .auth-forgot { display: block; margin: 10px auto 0; min-height: 44px; }
.auth-actions, .auth-complete { display: grid; gap: 12px; margin-top: 14px; }
.auth-complete h4 { font-size: 17.5px; margin: 4px 0 0; }
.auth-complete .note { margin: 0; }
.recovery-code { font-family: monospace; font-size: 18px; line-height: 1.8; font-weight: 700; letter-spacing: .03em; padding: 16px; border: 1px dashed var(--ink); background: var(--card); border-radius: 10px; overflow-wrap: anywhere; user-select: all; }
.recovery-check { display: flex; align-items: center; gap: 10px; font-size: 16px; min-height: 44px; }
.recovery-check input { width: 20px; height: 20px; accent-color: var(--accent); }
.auth-sheet button:disabled { opacity: .5; cursor: default; }
.email-status { margin-top: 14px; padding: 14px; border: 1px solid var(--line); border-radius: 12px; font-size: 16px; }
.email-status .link-btn { display: block; min-height: 44px; margin: 6px auto 0; }

/* Keep life-event choices reachable on short and landscape screens. */
.retire .rt-card { max-height: calc(100% - 24px); overflow-y: auto; }
/* Keep every draw result and close button reachable on short screens. */
.ipd { overflow-y: auto; align-items: start; padding: 24px 0; }
.ipd-bg { position: absolute; pointer-events: none; }
.ipd { background: #120D0A; }
.ipd-in { margin: auto; min-width: 0; }
.ipd-rd { flex-shrink: 1; min-width: 0; }
@media (max-width: 350px) {
  .ipd-reel { gap: 1px; }
  .ipd-reel.done .ipd-rd.lock { min-width: 0; font-size: 27px; }
}
@media (max-width: 400px) {
  .pnl-ip-info { grid-template-columns: 34px minmax(0, 1fr); }
  .pnl-ip-k, .pnl-ip-st { white-space: normal; overflow: visible; }
  .pnl-ip-r { grid-column: 2; display: flex; align-items: baseline; gap: 8px; text-align: left; }
}
.qo-img img { display: block; max-width: 90%; max-height: 75%; object-fit: contain; }

/* Desktop users who continue see the same centered phone-width game. */
.desktop-intro { display: none !important; }
@media (min-width: 1050px) { #root { justify-content: center; padding: 20px 0; } }
* { touch-action: manipulation; }
.ss-r2 .ss-pref { white-space: normal; overflow: visible; text-overflow: clip; line-height: 1.35; }

/* Larger text must remain readable within the phone-width game panel. */
.pnl-grid { grid-template-columns: minmax(0, 1fr) fit-content(40%); }
.pnl-grid > div { min-width: 0; }
.pnl-net, .pnl-rv { white-space: normal; overflow-wrap: anywhere; }
.pnl-best { flex-wrap: wrap; }
.pnl-best-txt { white-space: normal; overflow: visible; text-overflow: clip; }
.win-row { grid-template-columns: 40px minmax(0, 1fr); gap: 4px 12px; }
.win-chip { grid-row: 1 / 3; }
.win-amt { grid-column: 2; text-align: left; }
.win-h { flex-wrap: wrap; gap: 2px 8px; }
.qol-note { white-space: normal; overflow: visible; text-overflow: clip; }
.kid-log > div { grid-template-columns: minmax(0, 1fr) auto; gap: 2px 8px; padding: 5px 0; }
.kid-log > div > span:first-child { grid-column: 1 / -1; }
.kid-log > div > span { min-width: 0; }
.kid-log > div > b { white-space: nowrap; }
.sk-kv > div { min-width: 0; }
.sk-kv b { white-space: normal; overflow: visible; text-overflow: clip; overflow-wrap: anywhere; }
.sk-ctl .lv-scale { flex-wrap: wrap; gap: 4px 8px; }
.qol-band, .seg button { white-space: nowrap; }
@media (max-width: 400px) {
  .sk-kv { grid-template-columns: minmax(0, 1fr); }
  .sk-head { grid-template-columns: 40px minmax(0, 1fr) 20px; gap: 6px 10px; }
  .sk-ic { grid-column: 1; grid-row: 1 / 3; }
  .sk-ttl { grid-column: 2; grid-row: 1; }
  .sk-right { grid-column: 2; grid-row: 2; flex-direction: row; align-items: center; gap: 8px; }
  .sk-chev { grid-column: 3; grid-row: 1 / 3; }
}
@media (max-width: 360px) {
  .metrics { grid-template-columns: minmax(0, 1fr); }
  .metrics > .m { grid-column: 1; }
  .m.qol { grid-template-columns: minmax(0, 1fr); }
  .qol-l { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
  .pnl-sub { grid-template-columns: minmax(0, 1fr); }
}

.share-sheet .post-mock, .share-sheet .post-head > div, .share-sheet .post-link-body { min-width: 0; overflow-wrap: anywhere; }
.share-sheet .post-img { height: auto; }
.share-sheet .sp-issued-h h4 { margin: 0; }
/* Updates: keep new event and preview controls readable on narrow screens. */
.ev-item { grid-template-columns: 24px minmax(0, 1fr); }
.ev-amt { grid-column: 2; white-space: normal; overflow-wrap: anywhere; }
.ev-t { overflow-wrap: anywhere; }
.ev-item.old { opacity: 1; }
.spv-bar, .spv-close-b { flex-shrink: 0; }
.spv-frame { min-height: 0; }
.alloc-tip { max-width: min(250px, 75vw); white-space: normal; text-align: left; }
@media (prefers-reduced-motion: reduce) {
  .alloc-tip, .ev-item.live, .spv, .jp-reveal.first::before { animation: none !important; }
}
