@font-face{font-family:Jua;src:url('assets/Jua-Regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
:root{--cream:#fff9e9;--peach:#fff0df;--orange:#ff8b51;--orange-deep:#f16c29;--brown:#4b2700;--ink:#332b23;--muted:#9d896e;--green:#46b733;--green-deep:#39872c;--shadow:0 3px 5px #4b27001c}
*{box-sizing:border-box}html{height:100%;width:100%;background:var(--cream)}body{margin:0;width:100%;height:100dvh;padding:calc(7px + env(safe-area-inset-top)) 8px calc(7px + env(safe-area-inset-bottom));background:var(--cream);color:var(--brown);font-family:Jua,'Malgun Gothic',sans-serif;font-size:15px;line-height:1.35;display:flex;justify-content:center;overflow:hidden}button,input,select{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #7f5b30;outline-offset:2px}button,a{-webkit-tap-highlight-color:transparent}h1,h2,h3,p{margin-top:0}h1,h2,h3,b,strong{font-weight:400}[hidden]{display:none!important}svg{vertical-align:middle;flex-shrink:0}a{color:#93602e}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.student-slot-icon,.slot-art{image-rendering:pixelated}
/* A portrait game board fits the available phone screen; only dialogs scroll. */
.cabinet{position:relative;width:min(500px,100%);height:100%;min-width:0;min-height:0;display:grid;grid-template-rows:47px 60px 77px 30px 28px minmax(100px,1fr) 24px 106px 58px 13px;gap:6px;background:var(--cream);border:0;padding:0;overflow:visible}
.marquee{position:relative;min-width:0;min-height:0;display:grid;grid-template-columns:42px minmax(0,1.22fr) minmax(0,.87fr) 35px;gap:6px;align-items:stretch}.hamburger{border:0;border-radius:10px;background:var(--orange);color:var(--cream);box-shadow:var(--shadow);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:7px}.hamburger span{height:3px;width:23px;background:currentColor;border-radius:1px}.calendar-box,.money-box{border:2px solid var(--orange);border-radius:10px;background:var(--cream);box-shadow:var(--shadow);display:flex;align-items:center;justify-content:center;min-width:0;overflow:hidden}.calendar-date{flex:1;min-width:0;text-align:center;line-height:1.1;padding:3px 2px}.calendar-date>strong{display:block;font-size:20px}.calendar-date>span{display:block;font-size:11px;margin-top:2px;color:var(--muted)}.day-counter{align-self:stretch;display:flex;flex-direction:column;justify-content:center;align-items:center;border-left:2px solid var(--orange);padding:4px 6px;min-width:62px}.day-counter>strong{font-size:13px;white-space:nowrap;line-height:1.2}.turn-pips{display:flex;gap:2px;justify-content:center;margin-top:5px}.turn-pips span{width:3px;height:3px;border-radius:50%;background:#f5d7b7}.turn-pips span.used{background:var(--orange)}.money-box{flex-direction:column;padding:3px}.money-box small{font-size:11px;line-height:1.1}.money-box strong{font-size:20px;line-height:1.15;white-space:nowrap;font-variant-numeric:tabular-nums}.music-button{border:0;border-radius:10px;background:var(--orange);color:var(--cream);font-size:21px;padding:0;box-shadow:var(--shadow)}.music-button.muted{background:#eac9a3;color:#fff9e9}.game-tools{position:absolute;top:calc(100% + 7px);left:0;z-index:55;width:250px;display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:10px;border:2px solid var(--orange);border-radius:12px;background:var(--cream);box-shadow:0 7px 18px #4b27002d}.game-tools button{min-height:40px;border:1px solid var(--orange);border-radius:8px;background:#fff0da;color:var(--brown);font-size:14px;padding:6px}.game-tools button:hover{background:#ffe0bd}
.subject-section{min-width:0;min-height:0;display:flex;align-items:stretch;padding:0}.subject-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;width:100%;min-width:0;min-height:0}.subject-stat{min-width:0;border:0;border-radius:10px;background:var(--subject-bg,#f4cfba);color:#2b211e;padding:6px 2px 5px;box-shadow:var(--shadow);text-align:center;display:flex;flex-direction:column;justify-content:center;align-items:center;overflow:hidden}.subject-top{font-size:16px;line-height:1.1;white-space:nowrap}.subject-top small,.subject-track,.growth{display:none}.subject-value{line-height:1.05;margin-top:5px;display:block}.subject-value strong{font-size:25px;white-space:nowrap;display:block;letter-spacing:-.3px}.subject-value strong.large-stat{font-size:20px}
.daily-goal-panel{min-width:0;min-height:0;border:2px solid var(--orange);border-radius:11px;background:var(--cream);box-shadow:var(--shadow);padding:6px 8px;text-align:left;display:flex;flex-direction:column;overflow:hidden;color:var(--brown)}.daily-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:17px;line-height:1}.daily-heading h2{font-size:16px;margin:0}.daily-heading h2:before{content:'◎';color:#ed7345;font-family:Arial,sans-serif;font-size:19px;vertical-align:-1px;margin-right:5px}.daily-heading>span{font-size:12px;color:#a37d54}.daily-goals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:5px;min-height:0}.daily-goal{min-width:0;border-right:1px solid #f1d3b7;padding-right:8px;line-height:1.1;display:flex;flex-direction:column;gap:3px}.daily-goal:last-child{border-right:0;padding-right:0}.daily-goal>b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.daily-goal>small{font-size:12px;color:#a37d54;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.daily-goal>small span{display:none}.daily-goal.complete>b,.daily-goal.claimed>b{color:#3e9b31}.mini-progress{height:4px;border-radius:4px;background:#f1dfc9;overflow:hidden;display:block;flex-shrink:0}.mini-progress i{display:block;height:100%;background:var(--orange);border-radius:4px;max-width:100%}.daily-goal.complete .mini-progress i,.daily-goal.claimed .mini-progress i{background:var(--green)}
.news-strip,.badge-strip{min-width:0;min-height:0;border:1px solid #ffab7c;border-radius:8px;background:#fff0dc;padding:3px 8px;display:flex;align-items:center;gap:8px;text-align:left;overflow:hidden}.news-strip>b{font-size:12px;color:#ee7132;white-space:nowrap}.news-strip>span{font-size:13px;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.news-strip>i{font-style:normal;font-size:20px;line-height:1;color:var(--orange-deep)}.badge-strip{border-color:#f2d1a7;background:#fff6e2;gap:7px}.badge-strip>span{font-size:12px;white-space:nowrap}.badge-mini-list{display:flex;align-items:center;gap:4px;flex:1;min-width:0;height:22px}.badge-mini-list svg{height:22px;width:22px;max-width:calc((100% - 24px)/7)}.badge-strip>small{font-size:11px;color:#aa8860;white-space:nowrap}.badge-mini-list:empty:after{content:'장착한 뱃지 없음';font-size:11px;color:#b49b7c}
.machine{min-width:0;min-height:0;border:2px solid var(--orange);border-radius:12px;background:var(--peach);padding:7px 8px;display:grid;grid-template-rows:21px minmax(0,1fr) 28px;gap:5px;overflow:hidden}.machine-label{display:flex;align-items:center;justify-content:space-between;gap:7px;min-width:0;min-height:0}.machine-label h2{margin:0;font-size:18px;line-height:1}.machine-label>span{font-size:11px;color:#a07d56;white-space:nowrap}.reel-housing{position:relative;inline-size:100%;block-size:100%;height:100%;min-height:0;min-block-size:0;border:2px solid var(--orange);border-radius:9px;background:#fffdf4;overflow:hidden;contain:layout size;box-shadow:inset 0 2px 4px #6f4d2d15}.reels{position:absolute;inset:4px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:minmax(0,1fr);gap:4px;min-height:0;height:auto;overflow:hidden;contain:layout size}.reel{position:relative;height:100%;min-height:0;overflow:hidden;contain:layout size;box-shadow:inset 0 0 0 1px #f1d9bd;background:#fff9e9}.reel-strip{display:block;height:100%;min-height:0;transform-origin:top left;will-change:transform}.slot-cell{position:relative;display:flex;align-items:center;justify-content:center;flex:none;height:25%;block-size:25%;min-height:0;inline-size:100%;min-width:0;overflow:hidden;border-bottom:1px solid #f1d5b9;background:#fffbee;padding:1px 2px 8px;cursor:pointer}.slot-cell svg{height:38px;width:38px;max-height:calc(100% - 1px);max-width:80%;flex-shrink:0;image-rendering:pixelated;pointer-events:none}.slot-cell.blank svg{width:12px;height:12px;opacity:.2}.slot-cell:hover:not(.blank){background:#fff0cd}.cell-value{position:absolute;bottom:1px;right:3px;font-size:10px;line-height:1;color:#92734f;pointer-events:none}.slot-cell.scoring{animation:cell-score .55s both;animation-delay:var(--delay,0ms)}.slot-cell.scoring:before{content:'';position:absolute;inset:1px;border:1px solid #ffb15b;border-radius:3px;pointer-events:none}.float-value{position:absolute;top:8%;left:50%;font-size:13px;color:#2e8d32;text-shadow:0 1px #fff8e6;transform:translateX(-50%);z-index:3;animation:float-value .8s both;animation-delay:var(--delay,0ms);pointer-events:none;white-space:nowrap}.reel-flash{position:absolute;inset:4px;background:#fff2b7;opacity:0;pointer-events:none;z-index:5}.reel-flash.flash{animation:reel-flash .35s}.payout-display{min-width:0;min-height:0;display:flex;align-items:stretch}.gain-summary{width:100%;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;min-height:0}.gain-summary>span{background:var(--pill,#ffe5b0);display:flex;align-items:center;justify-content:center;gap:3px;border-radius:6px;min-width:0;color:#594326;padding:2px}.gain-summary b{font-size:10px;white-space:nowrap}.gain-summary strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.energy-row{display:flex;align-items:center;gap:9px;min-width:0;min-height:0}.energy-status{display:flex;align-items:center;gap:7px;flex:1;min-width:0;font-size:11px;white-space:nowrap}.energy-meter{height:6px;border-radius:5px;background:#ecdfc9;min-width:35px;flex:1;overflow:hidden}.energy-fill{display:block;height:100%;width:100%;border-radius:5px;background:#80bd61}.small-rest{background:#ffead1;border:1px solid #eeb784;border-radius:7px;font-size:11px;padding:2px 7px;min-height:23px;white-space:nowrap}.energy-row>small,.energy-row>span{font-size:10px;color:#a07e55;white-space:nowrap}.activity-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:7px;min-width:0;min-height:0}.activity-button{display:grid;grid-template-columns:30px minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;gap:1px 8px;align-items:center;justify-items:start;min-height:0;min-width:0;border:1px solid #f57636;border-bottom:3px solid #f37230;border-radius:11px;background:var(--orange);color:var(--cream);box-shadow:0 2px 3px #ff8b5120;padding:6px 10px;text-align:left;overflow:hidden}.activity-button .action-icon{width:27px;height:27px;grid-row:1/3}.activity-button>strong{font-size:18px;line-height:1.1;white-space:nowrap}.activity-button>small{font-size:11px;line-height:1.15;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.activity-button:active:not(:disabled){transform:translateY(1px);border-bottom-width:2px}
.activity-button.sleep-button{background:#14285c;border-color:#101d40;border-bottom-color:#0a1534;color:#fff9ed;box-shadow:0 3px 5px #14204442}.activity-button.sleep-button .sleep-icon{color:#fff9ed}
.spin-controls{min-width:0;min-height:0;display:flex;align-items:stretch}.pixel-button{border:2px solid var(--orange-deep);border-radius:10px;background:var(--orange);box-shadow:0 3px #e87539;padding:10px 15px;color:var(--cream);font-size:16px;line-height:1.25}.pixel-button:hover:not(:disabled){filter:brightness(1.035)}.pixel-button:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px #e87539}.gold-button{background:var(--green);border-color:var(--green-deep);box-shadow:0 3px var(--green-deep)}.gold-button:active:not(:disabled){box-shadow:0 1px var(--green-deep)}.spin-button{display:flex;align-items:center;justify-content:center;gap:15px;width:100%;min-width:0;min-height:0;background:var(--green);border:2px solid var(--green-deep);border-bottom-width:5px;border-radius:13px;box-shadow:none;padding:5px 10px;color:var(--cream)}.spin-button>span:last-child{display:flex;flex-direction:column;align-items:center;gap:2px}.spin-button strong{font-size:24px;line-height:1.1}.spin-button small{font-size:11px;line-height:1}.play-triangle{display:inline-block;flex-shrink:0;width:0;height:0;border-top:13px solid transparent;border-bottom:13px solid transparent;border-left:21px solid currentColor;border-radius:2px}.spin-button:active:not(:disabled){border-bottom-width:3px;transform:translateY(2px);box-shadow:none}.spin-button:disabled{opacity:.5}.cabinet-bottom{display:flex;align-items:center;justify-content:space-between;gap:5px;min-width:0;min-height:0;overflow:hidden;font-size:9px;color:#ae9679;white-space:nowrap;line-height:1}.cabinet-bottom>span:last-child{overflow:hidden;text-overflow:ellipsis}.cabinet-bottom>span:first-child{flex-shrink:0}.cabinet-bottom i{display:inline-block;width:4px;height:4px;background:#80b76c;border-radius:50%;margin-right:3px}
/* Dialogs hold the inventories, details, shop, and saves without stretching the board. */
.game-overlay{position:fixed;inset:0;z-index:70;background:#4b27006b;display:flex;justify-content:center;align-items:center;padding:calc(12px + env(safe-area-inset-top)) 12px calc(12px + env(safe-area-inset-bottom));overscroll-behavior:contain}.overlay-panel{position:relative;width:min(600px,100%);max-height:100%;min-width:0;border:2px solid var(--orange);border-radius:14px;background:var(--cream);box-shadow:0 10px 30px #4b270035;padding:29px 17px 22px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#edc398 transparent}.overlay-close{position:absolute;z-index:5;right:8px;top:7px;border:0;background:#ffebd0;color:#9c6b3d;border-radius:50%;font:25px/1 Arial,sans-serif;width:28px;height:28px;display:flex;justify-content:center;align-items:center;padding:0}.overlay-kicker{text-align:center;color:#b48e65;font-size:12px;letter-spacing:1px;margin-bottom:5px}.overlay-title{text-align:center;font-size:27px;line-height:1.3;margin:0 15px 11px;word-break:keep-all}.overlay-subtitle{text-align:center;color:#a07d54;font-size:14px;line-height:1.55;margin:0 0 19px;word-break:keep-all}.overlay-action{display:block;margin:22px auto 0;min-width:170px;min-height:45px;font-size:18px}.overlay-secondary{display:block;margin:17px auto 0;padding:7px 14px;border:0;background:transparent;box-shadow:none;color:#a17a51;font-size:15px}.overlay-bottom{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:9px;margin-top:20px;font-size:13px;color:#99754f}.overlay-bottom button{min-height:37px;background:#fff0da;border:1px solid var(--orange);border-radius:8px;font-size:14px;padding:7px 10px}.font-credit{font-size:12px;text-align:center;color:#aa8965;line-height:1.6;margin:18px 0 0}.symbol-desc{font-size:16px;text-align:center;line-height:1.7;color:#86613c;margin:17px 0}.big-art{text-align:center;margin:18px 0}.big-art svg{width:100px;height:100px}.item-stat-pills{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;align-items:center;margin:11px 0}.item-stat-pills>span{background:var(--pill,#ffe7b5);color:#3b2b21;font-size:15px;line-height:1.3;padding:7px 9px;border-radius:9px;white-space:nowrap}.item-stat-pills .support-pill{background:#eee5cf;color:#7d6b52;font-size:14px}.item-detail-section{border:2px solid #f2c396;border-radius:11px;background:#fff2df;padding:14px 11px;margin:16px 0}.item-detail-section h3{margin:0 0 11px;font-size:20px;text-align:center}.item-detail-section .symbol-desc{margin:0;font-size:15px}.item-detail-section .font-credit{font-size:12px;margin-top:11px;color:#876542}.item-pt{text-align:center;font-size:14px;color:#8b6a43;margin:11px 0 0}.actual-gains{border-color:#8acb73;background:#f3f6dc}
.reward-grid,.shop-grid{display:grid;grid-template-columns:1fr;gap:11px;margin:16px 0}.reward-card,.shop-card{position:relative;min-width:0;display:grid;grid-template-columns:59px minmax(0,1fr);gap:11px;align-items:center;min-height:135px;border:1px solid #e5bf8f;border-radius:11px;background:#fff1dd;box-shadow:0 3px #e8c99f;padding:14px 18px 14px 10px;text-align:left}.reward-card.uncommon{border-color:#8fbc7e;background:#f0f4da}.reward-card.rare{border-color:#9facd4;background:#f0f0fa}.reward-card.epic{border-color:#e6b85c;background:#fff0c6}.reward-art{display:flex;justify-content:center;align-items:center}.reward-art svg,.shop-card>svg{width:54px;height:54px}.reward-details{min-width:0}.rarity{display:block;color:#a5855f;font-size:12px;margin:0 0 5px}.reward-card strong,.shop-card strong{display:block;font-size:21px;line-height:1.2;margin:0}.reward-card p,.shop-card p{color:#927049;font-size:13px;line-height:1.55;margin:8px 0 0}.reward-card .item-stat-pills,.shop-card .item-stat-pills{justify-content:flex-start;gap:4px;margin:8px 0}.reward-card .item-stat-pills>span,.shop-card .item-stat-pills>span{font-size:12px;padding:4px 6px;border-radius:6px}.choice-key{position:absolute;top:6px;right:6px;width:17px;height:17px;background:#ffddb0;border-radius:50%;text-align:center;font-size:11px;line-height:17px;color:#b78b58}.shop-card>button,.shop-card .shop-buy{grid-column:2;border:1px solid #f77835;border-bottom-width:3px;border-radius:9px;background:var(--orange);color:var(--cream);font-size:15px;padding:7px 10px;min-height:36px;justify-self:stretch}.shop-card.sold{opacity:.6}.shop-balance{font-size:18px;text-align:center;margin:10px 0 16px;color:#6f8c35}.shop-empty{font-size:15px;color:#a88660;text-align:center;margin:20px 0}
.bag-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:9px;margin:16px 0;font-size:13px;color:#a17c53;line-height:1.5}.bag-toolbar .pixel-button{font-size:14px;padding:8px 11px;min-height:38px}.bag-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:13px}.bag-tile{min-width:0;min-height:142px;border:1px solid #efbe8e;border-radius:9px;background:#fff3df;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:10px 5px;font-size:13px;text-align:center;color:#654324}.bag-tile svg{height:41px;width:41px}.bag-tile>span{line-height:1.3;min-height:2.6em;display:flex;align-items:center;justify-content:center}.bag-tile small{font-size:11px;color:#9d7a50}.bag-tile em{font-style:normal;background:#ffe9c2;border-radius:6px;font-size:11px;line-height:1.4;padding:5px 4px;min-height:36px;width:100%;display:flex;justify-content:center;align-items:center}.bag-grid.removing .bag-tile{border-color:#dd7e65;background:#fff0e5}.remove-active{background:#d57454;border-color:#c56b4d;box-shadow:0 3px #ad5f45}
.knowledge-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin:19px 0}.knowledge-stat{min-width:0;border:0;border-radius:10px;background:var(--subject,#eadac2);padding:13px 3px;text-align:center;color:#30281f}.knowledge-stat small{display:block;font-size:14px;white-space:nowrap}.knowledge-stat strong{display:block;font-size:23px;line-height:1.1;margin:7px 0;white-space:nowrap}.knowledge-stat strong.long-stat{font-size:18px}.knowledge-stat span{display:block;font-size:11px;color:#6d6358}.stats-row{display:flex;gap:8px;margin:19px 0;justify-content:center}.stat{flex:1;min-width:0;border:1px solid #ecc59a;border-radius:10px;background:#fff0d9;padding:13px 6px;text-align:center}.stat small{display:block;font-size:13px;color:#9b7852}.stat strong{display:block;font-size:24px;margin-top:7px;color:#5ca542;overflow-wrap:anywhere}.rule-rows{display:grid;grid-template-columns:1fr;gap:11px;margin:20px 0}.rule-row{display:flex;align-items:flex-start;gap:10px;border:1px solid #efc59a;border-radius:10px;padding:13px;background:#fff0db;font-size:14px;line-height:1.6;color:#9a734b}.rule-row>span{font-size:23px;color:var(--orange-deep);line-height:1.2}.rule-row b{display:block;font-size:17px;color:var(--brown);margin-bottom:5px}.save-grid{display:grid;grid-template-columns:1fr;gap:12px;margin:19px 0}.save-slot{min-width:0;border:1px solid var(--orange);border-radius:10px;background:#fff0da;padding:14px;box-shadow:0 3px #e9c99f;overflow-wrap:anywhere}.save-slot>strong{display:block;font-size:21px;line-height:1.3;margin-bottom:8px}.save-slot p{font-size:14px;line-height:1.55;color:#956e44;margin:5px 0}.save-slot small{font-size:12px;color:#ac8b66}.save-actions{display:flex;gap:7px;margin-top:12px}.save-actions button{flex:1;min-height:39px;border:1px solid #ee8549;border-bottom-width:3px;border-radius:8px;background:var(--orange);color:var(--cream);font-size:15px;padding:7px}.save-file-actions{display:flex;gap:9px;justify-content:center;flex-wrap:wrap;margin-top:21px}.save-file-actions .pixel-button{font-size:14px;padding:10px 13px}
/* Badges are chosen for the next run, then remain visible as seven tiny shields. */
.badge-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:17px 0}.badge-card{min-width:0;position:relative;display:flex;flex-direction:column;align-items:center;gap:5px;border:2px solid #eed2af;border-radius:11px;background:#fff0dc;padding:13px 8px 11px;color:var(--brown);text-align:center;box-shadow:0 3px #ecd7ba}.badge-card[aria-pressed=true],.badge-card.selected{border-color:#69ad50;background:#eef4d9;box-shadow:0 3px #78a65c}.badge-card[aria-pressed=true]:before,.badge-card.selected:before{content:'✓';position:absolute;top:6px;right:8px;color:#4d983a;font-family:Arial,sans-serif;font-size:16px}.badge-card>svg,.badge-icon{height:43px;width:43px}.badge-card>strong{font-size:17px;line-height:1.2}.badge-card>small{font-size:11px;color:#9f7f59;line-height:1.3}.badge-card p{font-size:12px;line-height:1.5;margin:2px 0 0;color:#936d47;word-break:keep-all}.badge-picker-summary{position:sticky;z-index:5;bottom:-22px;background:var(--cream);border-top:2px solid #e9c59b;box-shadow:0 -8px 15px #fff9e9e6;margin:20px -17px -22px;padding:12px 17px 18px;display:flex;align-items:center;justify-content:space-between;gap:10px}.badge-picker-summary>span,.badge-picker-summary>strong{font-size:16px}.badge-picker-summary button{flex:1;max-width:230px;min-height:44px;margin:0;font-size:18px}.badge-selection-note{text-align:center;font-size:13px;color:#a27e54;line-height:1.5;margin:10px 0}.news-detail{border:2px solid #f0c595;border-radius:12px;background:#fff0d9;padding:20px 15px;text-align:center;margin:19px 0}.news-detail>svg{width:50px;height:50px}.news-detail h3{font-size:23px;margin:12px 0}.news-detail p{font-size:16px;line-height:1.7;color:#977048}.news-detail small{font-size:13px;color:#b28d63}.news-effect{background:#ffe4b8;padding:10px;border-radius:8px;font-size:16px;color:#8b632f}

/* Seven badge spaces and a readable, touch-friendly list for the new game. */
.equipped-badges{display:flex;flex-direction:column;align-items:center;gap:8px;margin:18px 0 22px}.equipped-badge-row{display:flex;justify-content:center;gap:clamp(5px,2vw,12px)}.equipped-badge-slot{width:clamp(49px,15vw,72px);height:clamp(49px,15vw,72px);border:4px solid #ff9558;border-radius:50%;display:grid;place-items:center;flex:none;background:#fff0df;color:#ff9558;font-size:28px;font-weight:900;line-height:1}.equipped-badge-slot.filled{padding:4px;border-color:#e1814a;background:#fffaf0;cursor:pointer}.equipped-badge-slot .badge-icon{width:100%;height:100%}.owned-badge-list{display:grid;gap:10px;margin:12px 0}.owned-badge-option{width:100%;min-height:78px;padding:7px 12px 7px 7px;display:flex;align-items:center;gap:13px;color:var(--brown);text-align:left;border:3px solid var(--badge-color);border-radius:15px;background:#fff7e8;box-shadow:0 3px #e8d6bb}.owned-badge-option.selected{background:#f1f7e6;box-shadow:0 3px #8bb470}.owned-badge-option:disabled{opacity:.48}.owned-badge-emblem{display:grid;place-items:center;width:60px;height:60px;flex:none;border:3px solid var(--badge-color);border-radius:50%;background:#fffaf0}.owned-badge-emblem .badge-icon{width:48px;height:48px}.owned-badge-text{display:grid;flex:1;min-width:0;gap:3px;word-break:keep-all}.owned-badge-text strong{font-size:16px;line-height:1.25}.owned-badge-text small{font-size:13px;line-height:1.35;color:#825c38}.owned-badge-check{font-size:22px;font-weight:900;color:var(--badge-color)}.badge-empty-message{margin:12px 0 4px;padding:18px;text-align:center;color:#9b7651;background:#fff0df;border-radius:12px;font-size:14px}.badge-back-slots{margin-top:28px}
.title-screen{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;overflow:auto;overscroll-behavior:contain;background:var(--cream);padding:calc(25px + env(safe-area-inset-top)) 18px calc(25px + env(safe-area-inset-bottom))}.title-panel{display:flex;flex-direction:column;align-items:center;gap:17px;text-align:center;width:min(500px,100%);margin:auto;flex-shrink:0}.fan-logo,#titleLogo{display:block;width:min(405px,94vw);max-width:100%}.fan-logo svg,#titleLogo svg{display:block;width:100%;height:auto;max-height:245px}.title-tagline{font-size:16px;line-height:1.5;color:#9d7446;margin:0}.title-actions{display:flex;flex-direction:column;gap:12px;width:min(300px,100%)}.title-actions>.pixel-button{display:flex;align-items:center;justify-content:center;gap:11px;min-height:53px;font-size:23px;border-radius:13px}.title-actions .play-triangle{border-top-width:11px;border-bottom-width:11px;border-left-width:18px}.title-actions .title-help{background:transparent;border:0;box-shadow:none;color:#9d774c;font-size:15px;min-height:25px;padding:3px}.title-progress{font-size:14px;line-height:1.5;color:#a17a4e;padding:8px 12px;border:1px solid #f1d0a6;border-radius:9px;background:#fff3d9;max-width:100%;overflow-wrap:anywhere}.title-progress:empty{display:none}.title-footer{font-size:12px;line-height:1.6;color:#ad916d;margin:0}#titleMusic{min-height:33px;background:#ffebd1;border:1px solid #efc191;color:#a47648;border-radius:9px;font-size:13px;padding:6px 13px}.toast{position:fixed;z-index:100;left:50%;bottom:calc(18px + env(safe-area-inset-bottom));transform:translate(-50%,8px);max-width:calc(100vw - 28px);width:max-content;border:2px solid #e57437;border-radius:11px;background:#fff0d8;box-shadow:0 5px 16px #4b27002d;padding:10px 15px;text-align:center;font-size:14px;line-height:1.5;color:#84552d;opacity:0;pointer-events:none;transition:opacity .15s,transform .15s}.toast.visible{opacity:1;transform:translate(-50%,0)}
.game-overlay.night-overlay{background:#142956;padding:20px 12px;color:var(--cream)}.night-overlay .overlay-panel{background:#142956;color:var(--cream);border:0;border-radius:0;box-shadow:none;width:min(500px,100%);padding:20px 0 25px;scrollbar-color:#8991b0 #142956}.night-overlay .overlay-close{background:transparent;color:var(--cream);right:1px;top:0}.night-heading{text-align:center;color:#f9f5ea;margin-bottom:25px}.night-heading>svg{display:block;width:60px;height:60px;margin:0 auto 13px;color:#d7dcf4}.night-heading h2{font-size:38px;line-height:1.1;margin:0 0 12px}.night-heading>strong{font-size:28px;line-height:1}.night-report{border:3px solid #111d37;border-radius:11px;background:#f8f9ff;color:#252f4b;box-shadow:0 5px #0c1c3c;padding:13px 10px 15px;margin:0 auto 24px}.night-report h3{font-size:18px;margin:0 0 14px;display:flex;align-items:center;gap:7px}.night-report h3>span{color:#e44d4b;font-family:Arial,sans-serif;font-size:24px}.night-report h3>b{margin-left:auto;font-size:14px;color:#8b85a9}.night-report .knowledge-grid{margin:0 0 14px;gap:5px}.night-report .knowledge-stat{padding:10px 2px}.night-report .knowledge-stat small{font-size:12px}.night-report .knowledge-stat strong{font-size:20px;margin:5px 0}.night-report .knowledge-stat strong.long-stat{font-size:15px}.night-report .knowledge-stat span{display:none}.night-report p{margin:0;text-align:center;font-size:14px;color:#7b7c99;line-height:1.5}.night-play{display:flex;align-items:center;justify-content:center;gap:17px;width:100%;min-height:77px;border:2px solid #39872e;border-radius:15px;background:var(--green);color:var(--cream);box-shadow:0 6px #2e7028;padding:12px;font-size:25px}.night-play .play-triangle{border-top-width:18px;border-bottom-width:18px;border-left-width:28px}.night-play:active{transform:translateY(2px);box-shadow:0 4px #2e7028}.money-pulse{animation:money-pulse .55s}.spinning .slot-cell svg{filter:blur(.3px)}
@keyframes float-value{0%{opacity:0;transform:translate(-50%,4px)}20%,70%{opacity:1}100%{opacity:0;transform:translate(-50%,-18px)}}@keyframes reel-flash{0%{opacity:.55}100%{opacity:0}}@keyframes cell-score{40%{filter:brightness(1.12)}}@keyframes money-pulse{40%{color:#4db239}}
/* Short screens keep controls readable by giving unused height to the reel only. */
@media(max-height:720px){body{padding-top:calc(5px + env(safe-area-inset-top));padding-bottom:calc(5px + env(safe-area-inset-bottom))}.cabinet{grid-template-rows:43px 53px 68px 27px 25px minmax(80px,1fr) 22px 94px 52px 11px;gap:5px}.marquee{grid-template-columns:38px minmax(0,1.22fr) minmax(0,.87fr) 31px;gap:5px}.hamburger{border-radius:9px}.calendar-date>strong{font-size:18px}.calendar-date>span{font-size:10px}.day-counter{min-width:57px;padding:3px 5px}.day-counter>strong{font-size:12px}.money-box strong{font-size:18px}.music-button{font-size:19px}.subject-top{font-size:14px}.subject-value{margin-top:4px}.subject-value strong{font-size:23px}.subject-value strong.large-stat{font-size:18px}.daily-goal-panel{padding:5px 7px}.daily-heading h2{font-size:14px}.daily-heading h2:before{font-size:17px}.daily-heading>span{font-size:11px}.daily-goals{margin-top:4px;gap:7px}.daily-goal{gap:2px;padding-right:6px}.daily-goal>b,.daily-goal>small{font-size:11px}.mini-progress{height:3px}.news-strip,.badge-strip{padding:2px 7px}.news-strip>span{font-size:12px}.badge-mini-list svg{width:20px;height:20px}.badge-strip>span{font-size:11px}.machine{padding:6px 7px;grid-template-rows:19px minmax(0,1fr) 24px;gap:4px}.machine-label h2{font-size:16px}.machine-label>span{font-size:10px}.slot-cell svg{width:33px;height:33px}.gain-summary b{font-size:9px}.gain-summary strong{font-size:13px}.energy-status{font-size:10px}.small-rest{font-size:10px;min-height:21px}.activity-panel{gap:6px}.activity-button{padding:5px 9px;grid-template-columns:26px minmax(0,1fr);column-gap:7px}.activity-button .action-icon{width:24px;height:24px}.activity-button>strong{font-size:16px}.activity-button>small{font-size:10px}.spin-button strong{font-size:22px}.spin-button small{font-size:10px}.spin-button .play-triangle{border-top-width:11px;border-bottom-width:11px;border-left-width:18px}.cabinet-bottom{font-size:8px}.title-screen{padding-top:20px;padding-bottom:20px}.title-panel{gap:12px}.fan-logo,#titleLogo{width:min(350px,89vw)}.fan-logo svg,#titleLogo svg{max-height:203px}.title-actions{gap:10px}.title-actions>.pixel-button{min-height:48px;font-size:21px}.title-tagline{font-size:14px}.title-progress{font-size:12px;padding:6px 10px}.title-footer{font-size:11px}}
@media(max-width:370px){body{padding-left:6px;padding-right:6px}.marquee{gap:5px;grid-template-columns:38px minmax(0,1.15fr) minmax(0,.9fr) 31px}.calendar-date>strong{font-size:17px}.day-counter{min-width:55px;padding-left:4px;padding-right:4px}.day-counter>strong{font-size:11px}.turn-pips{gap:1.7px}.turn-pips span{width:2.8px;height:2.8px}.money-box strong{font-size:18px}.subject-stats{gap:5px}.subject-top{font-size:14px}.subject-value strong{font-size:23px}.subject-value strong.large-stat{font-size:18px}.daily-goal>b{font-size:11px}.daily-goals{gap:6px}.badge-strip{gap:5px}.badge-mini-list{gap:3px}.badge-strip>span{font-size:11px}.badge-mini-list svg{width:20px;height:20px}.energy-row{gap:6px}.activity-button{padding-left:8px;padding-right:6px;column-gap:6px}.activity-button>strong{font-size:16px}.activity-button>small{font-size:10px}.gain-summary b{font-size:9px}.gain-summary strong{font-size:12px}.overlay-panel{padding-left:14px;padding-right:14px}.overlay-title{font-size:25px}.badge-picker-summary{margin-left:-14px;margin-right:-14px;padding-left:14px;padding-right:14px}.badge-card{padding-left:5px;padding-right:5px}.badge-card>strong{font-size:16px}.badge-card p{font-size:11px}}
@media(max-height:620px){.cabinet{grid-template-rows:39px 46px 60px 24px 23px minmax(70px,1fr) 20px 83px 46px 0;gap:4px}.cabinet-bottom{visibility:hidden}.subject-stat{padding-top:3px;padding-bottom:3px}.subject-top{font-size:12px}.subject-value strong{font-size:20px}.subject-value strong.large-stat{font-size:16px}.daily-goal-panel{padding:4px 6px}.daily-heading h2{font-size:13px}.daily-heading h2:before{font-size:15px}.daily-goals{margin-top:3px}.daily-goal>b,.daily-goal>small{font-size:10px}.news-strip>b,.news-strip>span,.badge-strip>span{font-size:10px}.machine{grid-template-rows:17px minmax(0,1fr) 20px;padding:5px 6px;gap:3px}.machine-label h2{font-size:14px}.gain-summary b{display:none}.gain-summary strong{font-size:12px}.activity-button{grid-template-columns:22px minmax(0,1fr);padding:4px 7px;border-bottom-width:2px}.activity-button .action-icon{width:21px;height:21px}.activity-button>strong{font-size:14px}.activity-button>small{font-size:9px}.spin-button strong{font-size:20px}.spin-button small{font-size:9px}.title-panel{gap:10px}.fan-logo svg,#titleLogo svg{max-height:170px}.title-actions>.pixel-button{min-height:41px;font-size:19px}.title-actions{gap:8px}.title-footer{font-size:10px}.title-tagline{font-size:12px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
/* Detail variants used by the compact board. */
.goal-detail-list{display:grid;gap:12px;margin:18px 0}.goal-detail{border:1px solid #efc397;border-radius:11px;background:#fff0dc;padding:15px;color:#946d47}.goal-detail>strong,.goal-detail h3{display:block;font-size:19px;color:var(--brown);margin:0 0 8px}.goal-detail p{font-size:14px;line-height:1.6;margin:7px 0}.goal-detail small{font-size:13px;color:#a7855e}.goal-detail.complete{border-color:#8cc372;background:#f0f5dd}.goal-detail .mini-progress{height:6px;margin:9px 0}.goal-detail.complete .mini-progress i{background:var(--green)}.goal-detail .goal-prize,.goal-detail .goal-reward{font-size:14px;color:#a57643;display:block;margin-top:10px}.shop-card .reward-details>button{display:block;width:100%;margin-top:12px;min-height:36px;font-size:14px;padding:7px 10px}.shop-card.sold-out{opacity:.6}.badge-check{position:absolute;top:6px;right:8px;font-size:17px;color:#bca07d;line-height:1}.badge-card.selected .badge-check{color:#4d983a}.badge-card[aria-pressed=true]:before,.badge-card.selected:before{display:none}.news-icon{font-size:38px;color:#ff945a;text-align:center;margin:7px 0 13px}
#workButton>small{font-size:9px;letter-spacing:-.15px}
/* Separate music and effect controls follow the game's cream and orange panels. */
.audio-toggles{display:flex;justify-content:center;gap:37px;margin:24px 0 27px}.audio-toggles>div{text-align:center;display:grid;gap:9px}.audio-toggles b{font-size:18px}.audio-toggle{width:92px;height:92px;border:2px solid var(--orange);border-bottom-width:4px;border-radius:15px;background:var(--cream);color:var(--orange);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;box-shadow:var(--shadow)}.audio-toggle.on{background:var(--orange);color:var(--cream)}.audio-toggle>span{font-size:37px;line-height:1.15}.audio-toggle>svg{width:39px;height:39px}.audio-toggle small{font-size:13px}.volume-control{border-top:1px solid #ecd1af;padding:20px 0 5px;margin:13px 0}.volume-control label{display:flex;justify-content:space-between;align-items:center;font-size:18px}.volume-control output{font-size:20px;color:var(--orange-deep)}.volume-control input{display:block;width:100%;height:37px;margin:12px 0 0;accent-color:var(--orange);cursor:pointer;touch-action:pan-y}.audio-preview{display:block;background:#ffe4c4;border:1px solid var(--orange);border-radius:9px;margin:22px auto 12px;padding:10px 15px;font-size:15px}.audio-close{display:block;width:170px;height:47px;margin:24px auto 0;border:0;border-radius:14px;background:#ff5f59;color:white;font:36px/1 Arial,sans-serif;box-shadow:0 3px #e64542}
/* Post-exam application forms and five saved announcement rounds. */
.application-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:16px 0 19px}.application-slot{border:2px solid #eac5a1;border-radius:11px;background:#fff0dc;min-width:0;padding:10px 4px;text-align:center;display:grid;gap:7px;position:relative}.application-slot.active{border-color:var(--orange-deep);background:#ffe3bd;box-shadow:0 3px #efb27d}.application-slot b{font-size:17px;color:#e26d30}.application-slot strong{font-size:14px;line-height:1.35;min-height:2.7em;display:flex;align-items:center;justify-content:center;word-break:keep-all}.application-slot small{font-size:11px;color:#a58059}.college-list-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:15px 0 10px}.college-list-heading h3{font-size:19px;margin:0}.college-list-heading button{background:transparent;border:0;color:#ae7144;text-decoration:underline;font-size:13px}.college-list{display:grid;gap:10px}.college-card{display:grid;grid-template-columns:43px minmax(0,1fr) 43px;gap:9px;align-items:center;border:1px solid #ecc69f;border-radius:11px;background:#fff3e0;padding:13px 10px;text-align:left;min-width:0}.college-card.selected{border:2px solid var(--orange);background:#ffdfb6}.college-card:disabled{opacity:.4}.college-card>div{min-width:0;display:grid;gap:5px}.college-card strong{font-size:19px;line-height:1.2}.college-card small{font-size:13px;color:#946e46}.college-card>div>span{font-size:10px;line-height:1.5;color:#af8e69}.college-card em{font-style:normal;border-radius:8px;padding:6px 2px;text-align:center;font-size:12px;line-height:1.4;background:#e8d8bf}.college-card .fit-safe{background:#cbe7b3;color:#4b7533}.college-card .fit-match{background:#ffe08a;color:#8b6420}.college-card .fit-reach{background:#f5c7c8;color:#9c5053}.application-submit{position:sticky;bottom:-20px;margin:21px -16px -5px;padding:13px 16px 12px;background:#fff9e9f5;border-top:2px solid #f1cc9d;display:flex;align-items:center;justify-content:space-between;gap:10px;z-index:2}.application-submit>strong{font-size:17px;white-space:nowrap}.application-submit>.pixel-button{font-size:17px;flex:1;padding:11px 8px}.admission-tools{display:flex;justify-content:center;gap:13px;margin:23px 0 0}.admission-tools button{border:0;background:transparent;color:#9c754c;font-size:13px;text-decoration:underline;padding:5px}.admission-rounds{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;margin:20px 0}.admission-rounds span{font-size:14px;background:#ede3d0;color:#ae9d88;text-align:center;padding:9px 3px;border-radius:9px;white-space:nowrap}.admission-rounds .done{background:#e1e8ce;color:#7f9d5d}.admission-rounds .current{background:var(--orange);color:var(--cream);box-shadow:0 3px #e3733d}.admission-results{display:grid;gap:14px;margin:18px 0 23px}.admission-result{border:2px solid #e9c19b;border-radius:13px;background:#fff0dc;padding:14px 15px;text-align:center;overflow:hidden}.admission-result header{display:flex;align-items:center;justify-content:center;gap:9px;margin-bottom:13px}.admission-result header>span{color:#946c43;font-size:14px;white-space:nowrap}.admission-result h3{font-size:20px;margin:0;line-height:1.3}.admission-stamp{font-size:29px;color:#a88a64;display:flex;align-items:center;justify-content:center;gap:10px;border-top:1px dashed #e5c29a;padding-top:12px}.admission-stamp strong{font-size:29px}.admission-result p{font-size:13px;color:#9c7f5e;line-height:1.55;margin:9px 0}.admission-result>small{font-size:12px;color:#ac8f6d}.admission-result.accepted{border-color:#72b957;background:#edf5de}.admission-result.accepted .admission-stamp{color:#41902c;border-top-color:#acd192}.admission-result.rejected{border-color:#de9c94;background:#fae9e5}.admission-result.rejected .admission-stamp{color:#bd645d;border-top-color:#dfb3ac}.admission-result.waiting .admission-stamp{color:#c58a33}.admission-next{display:block;width:100%;font-size:19px;padding:14px 8px;margin-top:20px}.phone-announcement{border:1px solid #f1c999;background:#ffe9c5;border-radius:12px;padding:15px;text-align:center;display:grid;gap:7px}.phone-announcement>span{font-size:33px;color:#dd7338}.phone-announcement>strong{font-size:21px}.phone-announcement>small{font-size:12px;color:#9b7854}.admission-final-summary{font-size:20px;text-align:center;line-height:1.6;padding:18px 5px}.admission-final-summary small{display:block;font-size:13px;color:#a48869;margin-top:10px}
@media(max-width:370px){.college-card{grid-template-columns:36px minmax(0,1fr) 37px;gap:6px;padding:11px 7px}.college-card>svg{width:35px;height:40px}.college-card strong{font-size:17px}.college-card small{font-size:12px}.college-card>div>span{font-size:9px}.college-card em{font-size:11px}.application-slot strong{font-size:12px}.application-submit{margin-left:-14px;margin-right:-14px;padding-left:14px;padding-right:14px}.application-submit>strong{font-size:14px}.application-submit>.pixel-button{font-size:15px}.admission-result{padding:13px 10px}.admission-stamp strong{font-size:27px}.audio-toggles{gap:30px}.volume-control label{font-size:17px}}
@media(max-width:540px){.admission-rounds{margin:15px 0;gap:5px}.admission-rounds span{padding:7px 3px;font-size:13px}.admission-results{gap:10px;margin:15px 0 18px}.admission-result{padding:10px 12px}.admission-result header{margin-bottom:7px;gap:7px}.admission-result header>svg{width:28px;height:32px}.admission-result header>span{font-size:12px}.admission-result h3{font-size:19px}.admission-stamp{font-size:24px;padding-top:7px;gap:8px}.admission-stamp strong{font-size:25px}.admission-result p{display:none}.admission-result>small{font-size:11px;display:block;margin-top:7px}.admission-next{position:sticky;bottom:-9px;z-index:3;font-size:18px;margin-top:12px;box-shadow:0 4px var(--green-deep),0 -8px 0 7px var(--cream)}.admission-tools{margin-top:14px;gap:18px}.admission-tools button{font-size:12px}.phone-announcement{display:grid;grid-template-columns:35px minmax(0,1fr);gap:4px 8px;padding:10px;text-align:left}.phone-announcement>span{grid-row:1/3;font-size:28px;align-self:center}.phone-announcement>strong{font-size:18px}.phone-announcement>small{font-size:10px}.admission-final-summary{font-size:17px;padding:9px 2px;line-height:1.5}.admission-final-summary small{font-size:11px;margin-top:6px}.admission-final-summary+.overlay-action{font-size:17px;margin-top:10px}.admission-results+.admission-next+.font-credit{margin-top:14px}}
/* Slot-machine cabinet: warm enamel, marquee bulbs and shaded reel windows. */
.machine{position:relative;border:2px solid #a85529;background:linear-gradient(145deg,#ffbe80 0%,#ff9759 55%,#ec8045 100%);box-shadow:inset 0 0 0 2px #ffd29a,0 3px 0 #c9753f;isolation:isolate}
.machine::before{content:"";position:absolute;z-index:2;top:1px;left:10px;right:10px;height:5px;pointer-events:none;background:radial-gradient(circle at center,#fff7c0 0 1.5px,#f4ab48 1.8px,transparent 2.5px) 0 0/23px 5px repeat-x}
.machine-label{background:linear-gradient(180deg,#a95628,#743a20);border:1px solid #72391f;border-radius:5px;padding:1px 6px;color:#fff7e5;box-shadow:inset 0 1px #e79c5e,0 1px #ffc586}
.machine-label h2{color:#fff9e9;text-shadow:0 1px #54290f}.machine-label h2::before{content:"✦";font-size:.7em;color:#ffe17c;margin-right:5px;vertical-align:1px}
.machine-label>span,.machine-label>small{color:#ffe9c5}
.reel-housing{border:3px solid #a75428;border-radius:9px;background:#ac633a;box-shadow:0 1px 0 #ffc98d,inset 0 3px 5px #71370f66}
.reels{inset:4px;gap:4px}
.reel{border-radius:4px;background:#fff9e9;box-shadow:inset 0 0 0 1px #e8bf97,0 1px 2px #733a1a66}
.reel::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(180deg,#793a1d33 0%,transparent 13%,transparent 87%,#793a1d33 100%);border-radius:4px;box-shadow:inset 2px 0 3px #b16f3e22,inset -2px 0 3px #b16f3e22}
.slot-cell{background:linear-gradient(90deg,#f8e9d2,#fffdf4 20%,#fffdf4 78%,#f2dfc5);border-bottom:1px solid #ecd2b5}
.slot-cell:hover:not(.blank){background:linear-gradient(90deg,#ffe9bc,#fff8df 50%,#ffe6b7)}
.cell-value{z-index:3;color:#81552d}
.spinning .machine::before{animation:cabinet-lights .35s steps(2,end) infinite}
.spinning .machine-label h2{animation:cabinet-glow .45s alternate infinite}
.spin-button{box-shadow:inset 0 2px #a1e280,0 5px #327e28;text-shadow:0 1px #397e2e}
@keyframes cabinet-lights{from{filter:brightness(1)}to{filter:brightness(1.5);background-position:11.5px 0}}
@keyframes cabinet-glow{from{color:#fff9e9}to{color:#ffe477}}
@media(prefers-reduced-motion:reduce){.spinning .machine::before,.spinning .machine-label h2{animation:none}}
/* One integrated daily target and its study reward. */
.daily-goals:has(.single-goal){grid-template-columns:minmax(0,1fr)}
.daily-goals>.single-goal{grid-column:1/-1;min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 8px;border:0;padding:0}
.single-goal b{font-size:15px;line-height:1.2;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.single-goal small{font-size:12px;white-space:nowrap;color:#99734e}
.single-goal .mini-progress{grid-column:1/-1;width:100%}
@media(max-width:370px){.single-goal b{font-size:13px}.single-goal small{font-size:11px}}
.single-goal>b{grid-column:1/-1;grid-row:1}
.single-goal .mini-progress{grid-column:1;grid-row:2;width:100%}
.single-goal>small{grid-column:2;grid-row:2}
.inquiry-card strong,.category-card strong{word-break:keep-all}
.badge-award{margin:22px 0;padding:16px;border:2px solid #f2c48e;border-radius:13px;background:#fff0dc}
.badge-award>h3{text-align:center;font-size:20px;margin:0 0 10px}
.badge-award>p{text-align:center;font-size:13px;line-height:1.5;color:#98744f;margin:7px 0 14px}
.badge-award .badge-grid{margin:12px 0 0}

/* Keep the numeric gain visible for longer inquiry names on small screens. */
.gain-summary b.long-subject{font-size:8px;min-width:0;overflow:hidden;text-overflow:ellipsis}.gain-summary strong{flex-shrink:0}

/* 오늘의 목표: 과목별 색깔 블록 */
.single-goal > .goal-blocks{display:flex;align-items:center;gap:6px;min-width:0;overflow:visible;line-height:1}
.goal-blocks .goal-subject{display:inline-flex;align-items:center;justify-content:center;min-width:0;max-width:calc(50% - 15px);padding:4px 9px;border-radius:8px;background:var(--goal-color,#ffe7b5);color:#332519;box-shadow:0 2px 0 #9c69211c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px;line-height:1.15}
.goal-blocks .goal-arrow{flex:none;color:var(--orange);font-size:18px;line-height:1}
@media(max-height:720px){.goal-blocks .goal-subject{padding:3px 8px;font-size:12px}.goal-blocks .goal-arrow{font-size:16px}}
@media(max-width:370px){.goal-blocks .goal-subject{padding:3px 6px;font-size:11px}.single-goal > .goal-blocks{gap:4px}}

/* Menu panel styled as a little game notebook. */
.game-tools{width:min(290px,calc(100vw - 16px));gap:8px;padding:10px;border:2px solid #ed8b50;border-radius:14px;background:#fff7e8;box-shadow:0 5px 0 #d9855340,0 12px 22px #59300b30}
.game-tools::before{content:'✦  게임 메뉴';grid-column:1/-1;display:block;padding:7px 10px;border-radius:8px;background:#ff8c52;color:#fffaf0;font-size:15px;line-height:1.2;letter-spacing:.03em}
.game-tools button{min-height:44px;display:flex;align-items:center;justify-content:flex-start;gap:7px;border:1px solid #f7b280;border-bottom:3px solid #edaf7c;border-radius:9px;background:#fff0dc;color:#573313;font-size:14px;padding:6px 8px;text-align:left;transition:background .15s,transform .15s,box-shadow .15s}
.game-tools button::before{display:grid;place-items:center;flex:0 0 25px;height:25px;border-radius:7px;background:#ffdcb7;color:#ce6b31;font-family:Arial,sans-serif;font-size:16px;font-weight:bold}
#titleButton::before{content:'⌂'}#saveButton::before{content:'↓'}#loadButton::before{content:'↑'}#reportButton::before{content:'▤'}#help::before{content:'?'}#fullscreen::before{content:'□'}
.game-tools button:hover{background:#ffe3c4;transform:translateY(-1px)}.game-tools button:active{transform:translateY(1px);border-bottom-width:2px}.game-tools button:focus-visible,.item-reel:focus-visible{outline:3px solid #397fdb;outline-offset:2px}

/* Three-window item machine: same cream, orange and soft shadows as the main game. */
.item-roulette{padding:9px;border:3px solid #ed8648;border-radius:15px;background:#f6c49d;box-shadow:0 5px 0 #bd6734,inset 0 1px 0 #ffead3;max-width:520px;margin:12px auto 0}
.item-roulette-header{display:flex;justify-content:center;align-items:center;min-height:30px;padding:4px 8px;border:1px solid #c46c37;border-radius:8px;background:#d17b43;color:#fff7e4;text-align:center;font-size:15px;line-height:1.2;box-shadow:inset 0 2px 1px #f9bd85}
.item-roulette-reels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:8px;padding:6px;border:3px solid #c36b35;border-radius:10px;background:#a95f34;overflow:hidden}
.item-reel{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:6px;min-width:0;min-height:176px;padding:10px 5px;border:2px solid #efd0a9;border-radius:7px;background:linear-gradient(180deg,#e5cfb8 0%,#fffaf0 18%,#fffaf0 82%,#ecd7c1 100%);box-shadow:inset 0 3px 7px #6a391c24,0 2px 0 #8e4b27;color:#4e2b0c;cursor:pointer;overflow:hidden;transition:transform .15s,border-color .15s,box-shadow .15s}
.item-reel:not(:disabled):hover{transform:translateY(-2px);border-color:#ff9c55;box-shadow:inset 0 3px 7px #6a391c24,0 4px 0 #8e4b27}.item-reel:disabled{opacity:1;cursor:default}
.item-reel-art{display:grid;place-items:center;width:min(100%,72px);height:72px;flex:none}.item-reel-art svg,.item-reel-art img{display:block;width:100%;height:100%;object-fit:contain;image-rendering:pixelated}
.item-reel-name{display:block;max-width:100%;font-size:15px;line-height:1.2;text-align:center;word-break:keep-all;overflow-wrap:anywhere}.item-reel-effect{display:block;max-width:100%;padding:4px 5px;border-radius:7px;background:#ffe8bc;color:#623b18;font-size:11px;line-height:1.35;text-align:center;word-break:keep-all;overflow-wrap:anywhere}
.item-roulette-note{min-height:1em;margin:10px 2px 1px;color:#74411f;text-align:center;font-size:13px;line-height:1.35;word-break:keep-all}
.item-reel.spinning .item-reel-art{animation:item-reel-spin .14s linear infinite;filter:blur(1px)}
@keyframes item-reel-spin{0%{transform:translateY(-10px)}50%{transform:translateY(10px)}100%{transform:translateY(-10px)}}
@media(max-width:370px){.item-roulette{padding:7px}.item-roulette-reels{gap:4px;padding:4px}.item-reel{min-height:155px;padding:8px 3px;gap:5px}.item-reel-art{height:58px;width:min(100%,58px)}.item-reel-name{font-size:13px}.item-reel-effect{font-size:10px;padding:4px 3px}.item-roulette-note{font-size:12px}}
@media(max-height:650px){.item-reel{min-height:140px}.item-reel-art{height:55px;width:min(100%,55px)}.item-roulette{margin-top:7px}.item-roulette-header{min-height:25px}.item-roulette-note{margin-top:6px}}
@media(prefers-reduced-motion:reduce){.item-reel.spinning .item-reel-art{animation:none;filter:none}}
.item-reel-rule{display:block;max-width:100%;color:#886343;font-size:11px;line-height:1.35;text-align:center;word-break:keep-all;overflow-wrap:anywhere}
@media(max-width:370px){.item-reel-rule{font-size:10px;line-height:1.3}}

/* Compact, cream-and-orange school-game layout. */
.cabinet{grid-template-rows:47px 60px 77px 30px 28px minmax(100px,1fr) 39px 106px 58px 13px}
.marquee{grid-template-columns:42px minmax(0,1fr) minmax(0,1fr) 35px}
.calendar-box{border-color:var(--orange)}
.energy-row{display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:3px}
.energy-status{flex:none;width:100%;min-height:15px}
.day-counter{align-self:stretch;display:flex;flex-direction:row;justify-content:flex-start;align-items:center;gap:8px;border:0;padding:0;min-width:0;line-height:1}
.day-counter>strong{font-size:11px;line-height:1.2;color:#a27449}
.turn-pips{display:flex;gap:4px;justify-content:flex-start;margin:0}
.turn-pips span{width:8px;height:5px;border-radius:4px;background:#eadbc6}
.turn-pips span.used{background:var(--orange)}
.machine{display:grid;grid-template-rows:minmax(0,1fr) 28px;gap:6px;padding:7px 8px;border:2px solid var(--orange);border-radius:12px;background:#fff0df;box-shadow:0 2px 0 #f4c59c;overflow:hidden}
.machine::before{display:none}
.reel-housing{border:2px solid var(--orange);border-radius:9px;background:#fff9e9;box-shadow:none}
.reels{inset:4px;gap:4px}
.reel{border-radius:5px;background:#fff9e9;box-shadow:inset 0 0 0 1px #f4cba8}
.reel::after{background:linear-gradient(180deg,#f5d5b245 0%,transparent 12%,transparent 88%,#f5d5b245 100%);box-shadow:none}
.slot-cell{background:#fffaf0;border-bottom:1px solid #f2d9bf}
.slot-cell:hover:not(.blank){background:#fff0d9}
.cell-value{color:#a07048}
.overlay-panel,.night-overlay .overlay-panel{scrollbar-width:none;-ms-overflow-style:none}
.overlay-panel::-webkit-scrollbar,.game-overlay *::-webkit-scrollbar{display:none;width:0;height:0}
.game-overlay *{scrollbar-width:none;-ms-overflow-style:none}
/* Rank, subject chips and duplicate counts are shared by the deck and rewards. */
.item-grade{display:inline-flex;align-items:center;justify-content:center;flex:none;padding:3px 7px;border-radius:6px;font-size:10px;line-height:1.2;white-space:nowrap;background:#eee3d1;color:#765a40}
.item-grade.rarity-common{background:#ede5d9;color:#705943}
.item-grade.rarity-uncommon{background:#d9e9f9;color:#38658c}
.item-grade.rarity-rare{background:#e8d9f4;color:#754797}
.item-grade.rarity-epic{background:#ffe5a1;color:#9a590d}
.passive-label{display:inline-flex;align-items:center;justify-content:center;flex:none;padding:3px 7px;border-radius:6px;background:#e0f1dd;color:#347346;font-size:10px;line-height:1.2;white-space:nowrap}
.bag-tile>.passive-label{min-height:0}
.passive-section-title{margin:20px 0 6px;color:#69401c;font-size:16px}
.passive-grid{margin-top:8px}
.passive-tile{background:#f3f8e8;border-color:#a6cd96}
.passive-owned{margin:8px 0 0;color:#347346;font-size:12px;font-weight:700}
.bag-toolbar .ticket-info{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border:1px solid #efbe8e;border-radius:8px;background:#fff3df;color:#80542d;font-size:13px;line-height:1.2}
.stat-blocks{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px;max-width:100%;min-width:0}
.stat-block{display:inline-flex;align-items:center;justify-content:center;max-width:100%;border-radius:7px;padding:4px 6px;background:var(--subject-color,#ffe7b5);color:#352819;font-size:11px;line-height:1.25;word-break:keep-all;overflow-wrap:anywhere;text-align:center}
.stat-block.support{background:#eee5cf;color:#79674f}
.bag-tile{position:relative}
.bag-tile .stat-blocks{width:100%}
.bag-count{position:absolute;top:6px;right:6px;padding:2px 5px;border-radius:6px;background:#ff8c52;color:#fff9e9;font-size:11px;line-height:1.2}
.item-reel .stat-block{font-size:10px;padding:3px 4px}
.item-reel .item-grade{font-size:9px;padding:2px 5px}
.goal-success,.work-result{margin:14px 0;padding:16px 12px;border:2px solid #f5c399;border-radius:12px;background:#fff1de;text-align:center}
.goal-success .stat-blocks,.work-result .stat-blocks{margin:10px 0}
.goal-success p,.work-result p{margin:8px 0;color:#805b36;line-height:1.5;word-break:keep-all}
@media(max-height:720px){
  .cabinet{grid-template-rows:43px 53px 68px 27px 25px minmax(80px,1fr) 35px 94px 52px 11px}
  .marquee{grid-template-columns:38px minmax(0,1fr) minmax(0,1fr) 31px}
  .machine{grid-template-rows:minmax(0,1fr) 24px;padding:6px 7px;gap:4px}
  .day-counter{min-width:0;padding:0}
  .day-counter>strong{font-size:10px}.turn-pips{gap:3px;margin:0}.turn-pips span{width:7px;height:4px}
}
@media(max-height:620px){
  .cabinet{grid-template-rows:39px 46px 60px 24px 23px minmax(70px,1fr) 30px 83px 46px 0}
  .machine{grid-template-rows:minmax(0,1fr) 20px;padding:5px 6px;gap:3px}
  .energy-row{gap:1px}.energy-status{min-height:13px}
}
@media(max-width:370px){.day-counter{min-width:0;padding:0}.turn-pips{gap:3px}.turn-pips span{width:7px;height:4px}.stat-block{font-size:10px;padding:3px 4px}}
/* Match the item reels to the same flat orange frame as the study reels. */
.item-roulette{border:2px solid var(--orange);background:#fff0df;box-shadow:0 3px 0 #f2c39a}
.item-roulette-header{border:0;background:var(--orange);color:#fff9e9;box-shadow:none}
.item-roulette-reels{border:2px solid var(--orange);background:#fff9e9}
.item-reel{border:1px solid #f4cba8;background:#fffaf0;box-shadow:0 2px 0 #efc5a0}
.item-reel:not(:disabled):hover{border-color:var(--orange);background:#fff0d9;box-shadow:0 3px 0 #efc5a0}
.work-result{display:flex;flex-direction:column;align-items:center;gap:8px}
.work-result>strong{color:#e66d2c;font-size:28px;line-height:1.2}
.work-result>span{color:#936b45;font-size:14px;line-height:1.4}
/* Part-time work uses the same warm cabinet, with a softer green action. */
.activity-button#workButton{background:#a4d9a1;border-color:#76be78;border-bottom-color:#69a96c;color:#204d2a}
.work-machine{padding:9px;border:3px solid #83bf7e;border-radius:15px;background:#d8eccb;box-shadow:0 4px 0 #70ab6d,inset 0 1px 0 #f4ffeb;max-width:490px;margin:15px auto 0}
.work-machine-header{text-align:center;background:#77b875;color:#fffdf1;border-radius:8px;padding:6px;font-size:16px}
.work-reels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:8px;padding:6px;background:#86bc80;border-radius:10px}
.work-reel{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:110px;min-width:0;padding:8px 3px;border:2px solid #d3dfc2;border-radius:8px;background:#fffaf0;color:#8f8b76;text-align:center;transition:background .1s,border-color .1s,color .1s,transform .1s}
.work-reel-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#ece9d6;color:#b8b49c;font:700 25px/1 Arial,sans-serif}
.work-reel strong{font-size:18px;white-space:nowrap}.work-reel small{font-size:11px}
.work-reel.rolling,.work-reel.selected{background:#f0f9df;border-color:#55ad4c;color:#3d7d36;transform:translateY(-2px)}
.work-reel.rolling .work-reel-icon,.work-reel.selected .work-reel-icon{background:#b9df9d;color:#34782e}
.work-reel.selected{box-shadow:0 3px 0 #71ae6b}
.work-outcome{min-height:76px;margin:18px auto 0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-align:center;color:#8c7455;font-size:15px}
.work-outcome strong{font-size:21px;color:#397e32}.work-outcome span{font-size:27px;color:#4b922d}.work-outcome small{font-size:12px;color:#987d5d}
@media(max-width:370px){.work-reels{gap:4px;padding:4px}.work-reel{min-height:96px}.work-reel strong{font-size:15px}.work-reel-icon{width:32px;height:32px;font-size:21px}}
.goal-success{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px}
.goal-success .goal-subject{display:inline-block;padding:7px 10px;border-radius:8px;background:var(--goal-color,#ffe7b5);color:#3c2b20;line-height:1.2}
.goal-success .goal-arrow{color:var(--orange);font-size:20px}
.goal-success .goal-blocks{display:flex;width:100%;justify-content:center}

/* The scoring layer is fixed to the viewport so particles can travel from the
   clipped reels to the subject cards without changing the machine's size. */
.slot-cell .cell-value{display:none}
.slot-cell{padding:1px 2px}
.slot-cell.combo-active svg,.slot-cell.combo-source svg{animation:combo-item-bounce .48s ease-in-out both;transform-origin:center}
.slot-cell.score-active{background:color-mix(in srgb,var(--score-color,#ffbc81) 32%,#fffaf0);box-shadow:inset 0 0 0 2px var(--score-color,#ffad62)}
.slot-cell.score-active svg{animation:score-item-hop var(--score-hop-time,580ms) ease-out both;transform-origin:center}
.combo-lines{position:fixed;inset:0;width:100vw;height:100dvh;z-index:58;overflow:visible;pointer-events:none}
.combo-line{stroke:#ff9d50;stroke-width:3;stroke-linecap:round;stroke-dasharray:5 5;filter:drop-shadow(0 1px 2px #fff4df);animation:combo-line-pulse .5s ease-in-out both}
.score-particle,.score-center{position:fixed;z-index:60;pointer-events:none;white-space:nowrap;text-align:center;color:#3d2b1f;background:var(--score-color,#ffe3b0);border:2px solid #fffaf0;border-radius:10px;box-shadow:0 3px 8px #7b481d38;line-height:1;transform:translate(-50%,-50%)}
.score-particle{padding:5px 7px;font-size:14px;animation:particle-gather var(--score-gather-time,480ms) cubic-bezier(.3,.1,.45,1) both}
.score-center{padding:7px 11px;font-size:19px;animation:score-fly var(--score-fly-time,360ms) cubic-bezier(.45,0,.7,.2) both}
.subject-stat.receiving{animation:subject-receive .4s ease-out}
@keyframes combo-item-bounce{0%,100%{transform:translateY(0) scale(1)}35%{transform:translateY(-3px) scale(1.13)}65%{transform:translateY(1px) scale(1.05)}}
@keyframes score-item-hop{0%,100%{transform:translateY(0) scale(1)}35%{transform:translateY(-4px) scale(1.12)}60%{transform:translateY(0) scale(.97)}}
@keyframes combo-line-pulse{0%{opacity:0;stroke-dashoffset:20}30%,75%{opacity:1}100%{opacity:0;stroke-dashoffset:0}}
@keyframes particle-gather{0%{opacity:0;transform:translate(-50%,-50%) scale(.65)}15%{opacity:1;transform:translate(-50%,-50%) scale(1)}85%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--move-x,0px)),calc(-50% + var(--move-y,0px))) scale(.72)}}
@keyframes score-fly{0%{opacity:0;transform:translate(-50%,-50%) scale(.72)}18%{opacity:1;transform:translate(-50%,-50%) scale(1.12)}35%{transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(calc(-50% + var(--fly-x,0px)),calc(-50% + var(--fly-y,0px))) scale(.62)}}
@keyframes subject-receive{0%,100%{transform:scale(1)}45%{transform:scale(1.1);filter:brightness(1.12)}}
@media(prefers-reduced-motion:reduce){.slot-cell.combo-active svg,.slot-cell.combo-source svg,.slot-cell.score-active svg,.combo-line,.score-particle,.score-center,.subject-stat.receiving{animation-duration:.01ms!important;animation-iteration-count:1!important}}

/* Only the participating item illustrations move; the slot cells stay still. */
.slot-cell.combo-source svg,.slot-cell.combo-source img{animation:combo-give var(--combo-duration,500ms) ease-out both;transform-origin:center}
.slot-cell.combo-active svg,.slot-cell.combo-active img{animation:combo-receive var(--combo-duration,500ms) ease-out both;transform-origin:center}
.slot-cell.combo-consume svg,.slot-cell.combo-consume img{animation:combo-consume var(--combo-duration,620ms) ease-in both;transform-origin:center}
@keyframes combo-consume{0%{opacity:1;transform:translateY(0) scale(1)}35%{opacity:1;transform:translateY(-4px) scale(1.1)}100%{opacity:0;transform:translateY(5px) scale(.2)}}
@keyframes combo-give{0%,48%,100%{transform:translateY(0)}20%{transform:translateY(-5px)}70%{transform:translateY(-3px)}}
@keyframes combo-receive{0%,48%,100%{transform:translateY(0)}20%{transform:translateY(-6px)}70%{transform:translateY(-4px)}}
.combo-counter{position:absolute;z-index:5;top:5px;right:7px;padding:3px 8px;border:2px solid #fff6df;border-radius:12px;background:#ff8950;color:#fff;font-size:13px;line-height:1;box-shadow:0 2px 0 #d45f29;pointer-events:none}
.combo-counter[data-level="1"]{background:#f97442;box-shadow:0 2px 0 #c95326,0 0 9px #ffbb72}
.combo-counter[data-level="2"]{background:#eb6044;box-shadow:0 2px 0 #b8422c,0 0 13px #ffb35c}
.combo-counter[data-level="3"]{background:#dc5261;box-shadow:0 2px 0 #ad3542,0 0 16px #ffb65e}
.combo-counter.combo-pop{animation:combo-counter-pop var(--combo-duration,620ms) ease-out both;transform-origin:center}
@keyframes combo-counter-pop{0%{transform:scale(.85)}25%{transform:scale(1.14)}65%,100%{transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.combo-counter.combo-pop{animation:none}}

/* Each interaction uses the real game icons, with text explaining its rule. */
.combo-guide{display:grid;gap:10px}
.combo-guide-row{display:flex;flex-direction:column;align-items:center;gap:7px;padding:10px 8px;border:1px solid #f0d3af;border-radius:10px;background:#fff9eb}
.combo-guide-icons{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:center;gap:5px;max-width:100%}
.combo-guide-icon{display:inline-flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:3px;min-width:44px;min-height:44px;max-width:78px;padding:3px;border:0;border-radius:7px;background:transparent;color:#7b5835;font-size:10px;line-height:1.2;text-align:center;word-break:keep-all;overflow-wrap:anywhere}
.combo-guide-icon:hover,.combo-guide-icon:focus-visible{background:#ffe7c5}
.combo-guide-icon svg,.combo-guide-icon img{display:block;width:34px;height:34px;object-fit:contain;image-rendering:pixelated}
.combo-guide-text{margin:0;color:#805b36;font-size:14px;line-height:1.55;text-align:center;word-break:keep-all}
@media(max-width:370px){.combo-guide-row{padding:8px 5px}.combo-guide-icons{gap:3px}.combo-guide-icon{min-width:38px;font-size:9px}.combo-guide-icon svg,.combo-guide-icon img{width:30px;height:30px}.combo-guide-text{font-size:13px}}
@media(prefers-reduced-motion:reduce){.slot-cell.combo-source img,.slot-cell.combo-active img{animation-duration:.01ms!important;animation-iteration-count:1!important}}

/* Game encyclopedia: the same warm panels and clear touch targets as the game. */
.title-actions>.pixel-button.title-catalog{min-height:43px;background:#fff0dc;border:2px solid #f0b37f;border-bottom:4px solid #e6a671;color:#8b572d;box-shadow:none;font-size:17px}
.title-actions>.pixel-button.title-catalog:active{transform:translateY(2px);border-bottom-width:2px}
#catalogButton{grid-column:1/-1}
#catalogButton::before{content:'▣'}
.encyclopedia-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:14px 0 12px}
.encyclopedia-tabs button,.catalog-filters button{min-width:0;min-height:38px;border:1px solid #efb584;border-bottom:3px solid #e9ad79;border-radius:9px;background:#fff2df;color:#80522d;font:inherit;font-size:14px;line-height:1.2;padding:7px 5px;word-break:keep-all;cursor:pointer}
.encyclopedia-tabs button[aria-selected="true"],.encyclopedia-tabs button[aria-pressed="true"],.encyclopedia-tabs button.active,.catalog-filters button[aria-selected="true"],.catalog-filters button[aria-pressed="true"],.catalog-filters button.active{border-color:#e9783c;border-bottom-color:#d7652c;background:#ff8c52;color:#fffaf0}
.encyclopedia-tabs button:focus-visible,.catalog-filters button:focus-visible,.catalog-card:focus-visible{outline:3px solid #397fdb;outline-offset:2px}
.catalog-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:0 0 12px}
.catalog-filters button{min-height:34px;padding:5px 4px;font-size:12px;border-radius:8px}
.catalog-count{margin:8px 0;color:#9e7952;font-size:12px;line-height:1.4;text-align:right}
.catalog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0 15px}
.catalog-card{min-width:0;min-height:150px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:7px;padding:10px 7px;border:1px solid #f1c59c;border-bottom:3px solid #eac19b;border-radius:10px;background:#fff2e1;color:#4b2700;text-align:center;cursor:pointer}
.catalog-card:hover{background:#ffe9cf;border-color:#f29c62}
.catalog-card>svg,.catalog-card>img{display:block;flex:none;width:44px;height:44px;object-fit:contain;image-rendering:pixelated}
.catalog-card>strong{max-width:100%;font-size:15px;line-height:1.25;word-break:keep-all;overflow-wrap:anywhere}
.catalog-card .stat-blocks{width:100%;gap:3px}
.catalog-card .stat-block{font-size:10px}
.catalog-overview,.catalog-universities{display:grid;gap:10px;margin:12px 0 18px}
.university-search{display:flex;align-items:center;gap:8px;margin:10px 0;color:#754321;font-size:14px}.university-search input{min-width:0;flex:1;border:1.5px solid #efa56e;border-radius:9px;background:#fffaf0;padding:8px 10px;color:#4b2700}.university-search input::placeholder{color:#b99b7c}
.admission-filter-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}.admission-filter-row label{display:grid;gap:4px;text-align:left;font-size:12px;color:#91633e}.admission-filter-row select{width:100%;min-width:0;padding:8px 6px;background:#fff9eb;border:1.5px solid #f4a26d;border-radius:9px;color:#603514;font-size:13px}.college-card .admission-probability{width:60px;padding:6px 3px;color:#7c4a19;background:#ffe5ab;font-size:10px}.college-card .admission-probability b{display:block;font-size:17px}.college-card:has(.admission-probability){grid-template-columns:43px minmax(0,1fr) 60px}.application-bottom{position:sticky;bottom:-20px;z-index:5;margin:18px -16px -5px;padding:8px 16px 12px;background:#fff9e9f8;border-top:2px solid #f1cc9d;box-shadow:0 -5px 12px #6f401016}.application-bottom .application-slots{margin:0 0 8px;gap:5px}.application-bottom .application-slot{padding:5px 3px;gap:3px}.application-bottom .application-slot b{font-size:13px}.application-bottom .application-slot strong{font-size:12px;line-height:1.2;display:block;min-height:2.3em}.application-bottom .application-slot strong small{display:block;font-size:10px}.application-bottom-actions{display:flex;gap:8px}.application-bottom-actions>button:first-child{border:1px solid #e8b786;border-radius:9px;background:#fff1dd;color:#93623b;padding:5px 10px;font-size:12px}.application-bottom-actions>.pixel-button{flex:1;padding:9px;font-size:17px}.major-list,.application-confirm-list{display:grid;gap:8px;margin:17px 0}.major-card{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;text-align:left;border:1.5px solid #f4ad7a;border-radius:11px;background:#fff1dd;padding:12px;color:#582d0c}.major-card>span{display:grid;gap:3px}.major-card strong{font-size:17px}.major-card small{font-size:11px;color:#9f7a55}.major-card>b{flex-shrink:0;border-radius:8px;background:#ffe4a0;padding:7px;font-size:13px}.application-confirm-list>div{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:7px;padding:11px;border:1px solid #edc79e;background:#fff0db;border-radius:10px;text-align:left}.application-confirm-list b{color:#df6a30}.application-confirm-list strong{font-size:14px}.application-confirm-list strong small{display:block;font-size:11px;color:#a07b57}.application-confirm-list span{font-size:11px;color:#a06b32}.announcement-gauge{height:17px;overflow:hidden;border:2px solid #e99d5f;border-radius:10px;background:#f5dfc2;margin:18px 0}.announcement-gauge i{display:block;width:0;height:100%;background:#4dbb31;border-radius:8px;transition:width .45s ease}.admission-result h3 small{display:block;font-size:12px;color:#947555}.admission-next:disabled{box-shadow:none}.admission-result.pending .admission-stamp{color:#a88866}
@media(max-width:370px){.application-bottom{margin-left:-14px;margin-right:-14px;padding-left:14px;padding-right:14px}.college-card:has(.admission-probability){grid-template-columns:36px minmax(0,1fr) 54px}.college-card .admission-probability{width:54px}.college-card .admission-probability b{font-size:15px}}
.subject-stat{padding:3px 2px}.subject-top{font-size:13px}.subject-top.long-subject{font-size:11px}.subject-value{margin-top:2px}.subject-value strong{font-size:21px}.subject-value strong.large-stat{font-size:18px}.subject-grade{display:block;font-size:10px;line-height:1;margin-top:2px;color:#665143}.knowledge-stat .knowledge-grade{font-size:12px;color:#57473b}.grade-cuts{margin:12px 0;border:1px solid #edc79e;border-radius:10px;background:#fff0db;overflow:hidden;text-align:left}.grade-cuts summary{cursor:pointer;padding:10px 12px;color:#6a3616;font-size:14px}.grade-cut-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;padding:0 8px 9px}.grade-cut-grid>div{display:grid;gap:2px;padding:6px 4px;text-align:center;background:#fff9e9;border-radius:7px}.grade-cut-grid b{font-size:12px;color:#e67337}.grade-cut-grid span{font-size:10px;white-space:nowrap;color:#72523b}
@media(max-height:720px){.subject-top{font-size:12px}.subject-top.long-subject{font-size:10px}.subject-value{margin-top:1px}.subject-value strong{font-size:19px}.subject-value strong.large-stat{font-size:16px}.subject-grade{font-size:9px;margin-top:1px}}
@media(max-height:620px){.subject-stat{padding:2px 1px}.subject-top{font-size:10px}.subject-top.long-subject{font-size:9px}.subject-value strong{font-size:16px}.subject-value strong.large-stat{font-size:14px}.subject-grade{font-size:8px}}
.catalog-section,.catalog-university{min-width:0;border:1px solid #f0c49c;border-radius:10px;background:#fff2e1;padding:12px;color:#674322}
.catalog-section h3{margin:0 0 6px;color:#4b2700;font-size:17px;line-height:1.3}
.catalog-section p,.catalog-section li,.catalog-university p,.catalog-university small{margin:0;color:#825d3a;font-size:13px;line-height:1.55;word-break:keep-all;overflow-wrap:anywhere}
.catalog-section p+p{margin-top:6px}.catalog-section ul{margin:6px 0 0;padding-left:19px}
.catalog-university{display:flex;align-items:center;gap:11px}
.catalog-university>svg{flex:none;width:41px;height:46px}
.catalog-university>div{min-width:0;flex:1}.catalog-university strong{display:block;color:#4b2700;font-size:16px;line-height:1.25}.catalog-university p{margin-top:4px}.catalog-university small{display:block;margin-top:3px;color:#a07c57}
@media(min-width:520px){.catalog-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:370px){.encyclopedia-tabs{gap:4px}.encyclopedia-tabs button{font-size:13px}.catalog-filters{gap:4px}.catalog-card{padding:8px 5px;min-height:140px}.catalog-card>strong{font-size:14px}}
@media(max-height:620px){.title-actions>.pixel-button.title-catalog{min-height:34px;font-size:15px}}

/* Category filters organize a single shared reel and the items inside it. */

/* Achievements */
.title-extra-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.title-extra-actions>.title-catalog{min-height:43px;background:#fff0dc;border:2px solid #f0b37f;border-bottom:4px solid #e6a671;color:#8b572d;box-shadow:none;font-size:17px;border-radius:13px}
.title-extra-actions>.title-catalog:active{transform:translateY(2px);border-bottom-width:2px}
.achievement-list{display:grid;gap:12px;margin:20px 0}
.achievement-card{display:flex;align-items:flex-start;gap:16px;text-align:left;padding:18px;border:2px solid #f7bd8b;border-radius:15px;background:#fff0df}
.achievement-card.achieved{border-color:#91c986;background:#f5fae9}
.achievement-icon{display:grid;place-items:center;flex:none;width:76px;height:76px;border-radius:14px;background:#fff9ed;border:1px solid #f4d1a9}
.achievement-icon.mystery-icon{color:#be8d63;font-size:38px;font-weight:900}.achievement-body>.achievement-hint{line-height:1.55;font-weight:600}.achievement-hint b{display:block;margin-bottom:4px;color:#f18349;font-size:12px}
.achievement-body{min-width:0;flex:1}.achievement-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.achievement-heading strong{font-size:22px;color:#4b2700}.achievement-heading span{font-size:12px;border-radius:20px;padding:4px 9px;background:#eddcc7;color:#8c6945;white-space:nowrap}.achieved .achievement-heading span{background:#4abc36;color:#fff}.achievement-body>p{margin:7px 0 10px;font-size:15px;color:#71451e;font-weight:700}.achievement-body>small{display:block;margin-top:5px;font-size:12px;color:#9b7650}.achievement-progress{height:7px;border-radius:8px;background:#ead8bf;overflow:hidden}.achievement-progress i{display:block;height:100%;background:#83c66a;border-radius:8px}.achievement-reward{display:grid;gap:3px;margin-top:12px;padding:10px;border-radius:9px;background:#fff8e9;font-size:13px;color:#81562d}.achievement-reward b{color:#65401b}
.achievement-award-art{display:grid;place-items:center;margin:14px auto}.achievement-award-body{padding:16px;border:2px solid #f4c394;border-radius:14px;background:#fff0df;text-align:center}.achievement-award-body strong{font-size:19px;color:#4b2700}.achievement-award-body p{margin:7px 0 0;color:#865b33;font-size:14px}
.spin-controls{gap:6px}.animation-speeds{width:clamp(100px,25%,130px);flex:none;display:flex;flex-direction:column;justify-content:center;align-items:stretch;gap:3px;padding:4px;border:1px solid #efad7f;border-radius:10px;background:#fff0df;color:#80502e;text-align:center}.animation-speeds>span{font-size:10px;line-height:1;font-weight:700}.animation-speeds>div{display:flex;gap:3px;min-height:26px}.animation-speeds button{flex:1;min-width:0;border:1px solid #e8ae86;border-radius:6px;padding:2px;background:#fffaf0;color:#865630;font-size:12px;font-weight:800}.animation-speeds button[aria-pressed="true"]{border-color:#ed783d;background:#ff8c50;color:#fff9e9}.animation-speeds button:focus-visible{outline:2px solid #6a4a9f;outline-offset:1px}@media(max-width:370px){.animation-speeds{width:100px}.animation-speeds button{font-size:11px}.spin-button{gap:7px}.spin-button strong{font-size:18px}}
@media(max-width:370px){.achievement-card{gap:10px;padding:12px}.achievement-icon{width:58px;height:58px}.achievement-icon svg{width:50px;height:50px}.achievement-heading strong{font-size:19px}}
@media(max-height:620px){.title-extra-actions>.title-catalog{min-height:34px;font-size:15px}}
