:root{--ink:#17213f;--blue:#2456d8;--yellow:#ffc832;--paper:#fff;--pink:#f08eae;--red:#c13532;--mint:#e2f5f0;--spin:.85s;--breath:1.1s;color-scheme:light;font-family:"Avenir Next",Avenir,"Trebuchet MS",system-ui,sans-serif;color:var(--ink);background:#fff}
*{box-sizing:border-box}body{margin:0;background:#fff}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible{outline:3px solid var(--blue);outline-offset:5px}button:disabled{cursor:default;opacity:.7}[hidden]{display:none!important}.page{width:min(1340px,100%);padding:0 32px;margin:auto}.masthead{display:flex;gap:20px;align-items:center;padding:18px 0;border-bottom:2px solid var(--ink)}.brand{text-decoration:none;font-weight:900;letter-spacing:-.06em;font-size:30px;line-height:1}.brand-mark{font-size:17px;vertical-align:top;margin-left:3px}.edition{font-size:12px;letter-spacing:.13em;font-weight:800}.pause-control{margin-left:auto;border:1px solid var(--ink);border-radius:999px;background:transparent;font-size:14px;padding:8px 17px;font-weight:700;min-height:40px}.pause-control:hover{background:var(--ink);color:white}.intro{display:flex;justify-content:space-between;gap:22px;align-items:end;padding:22px 0 20px}.eyebrow{font-size:12px;letter-spacing:.16em;font-weight:800}h1{font-weight:900;font-size:clamp(30px,3.5vw,46px);letter-spacing:-.055em;line-height:1.1;margin:5px 0 0}h1 em{color:var(--blue);font-style:normal}.intro p{font-size:16px;line-height:1.55;margin:0}
.scene{position:relative;isolation:isolate;background:#fff;border:0;border-radius:0;box-shadow:none;padding:22px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.18fr) minmax(0,1fr);grid-template-rows:repeat(2,auto);column-gap:32px;row-gap:18px}.scene:before{display:none}.person{background:#fff;border:0;border-radius:0;padding:12px 14px 10px;text-align:left;position:relative;min-width:0;transition:color .25s;display:flex;flex-direction:column;align-items:stretch;z-index:2;touch-action:manipulation}.person:hover .person-heading{color:var(--blue)}.person.selected{background:#fff;box-shadow:none}.person.overheated{background:#fff}.person.overheated.selected{background:#fff}.person-heading{display:flex;justify-content:space-between;align-items:start;gap:8px;font-size:16px;font-weight:850;line-height:1.4}.temperature{font-size:22px;font-variant-numeric:tabular-nums;letter-spacing:-.055em;white-space:nowrap}.overheated .temperature{color:var(--red)}.selected .temperature{color:var(--blue)}.thermometer{height:4px;margin-top:6px;border-radius:3px;overflow:hidden;background:#e6e6ea}.thermometer i{display:block;height:100%;width:50%;background:#eba243;transition:width .4s,background .4s}.overheated .thermometer i{background:var(--red)}.selected .thermometer i{background:var(--blue)}.figure-area{position:relative;display:block;width:100%;height:150px;text-align:center;margin:5px 0}.person-art{height:100%;width:auto;max-width:100%;object-fit:contain;filter:none}.person-mood{font-size:14px;font-weight:850;display:block;line-height:1.4;text-align:center}.person-quote{display:block;line-height:1.3;font-size:14px;font-weight:500;text-align:center;min-height:2.6em;margin-top:4px;color:#535a70}.person.selected .person-mood{color:var(--blue)}.person.overheated:not(.selected) .person-mood{color:var(--red)}.cool-tag{display:none;position:absolute;bottom:2px;left:50%;transform:translateX(-50%);background:var(--blue);color:white;font-size:10px;letter-spacing:.09em;white-space:nowrap;padding:3px 6px;border-radius:4px;font-weight:800}.selected .cool-tag{display:block}.boss{grid-column:1;grid-row:1}.child{grid-column:3;grid-row:1}.husband{grid-column:1;grid-row:2}.parents{grid-column:3;grid-row:2}.reaction-fx{position:absolute;left:50%;top:10%;font-weight:900;font-size:20px;color:var(--red);white-space:nowrap;pointer-events:none}.boss.overheated .reaction-fx{left:72%;top:0;animation:grumble .7s ease-in-out infinite}.child.overheated .reaction-fx{left:72%;top:25%;animation:cry .8s ease-in infinite}.parents.overheated .reaction-fx{left:40%;top:0;animation:grumble 1.4s ease-in-out infinite}.husband.overheated .reaction-fx{left:68%;top:8%;font-size:15px;color:#835221;animation:grumble 2s ease-in-out infinite}
.carrie-station{grid-column:2;grid-row:1/3;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;perspective:800px;z-index:3;pointer-events:none}.carrie-station:before{display:none}.name-chip{background:var(--ink);color:white;font-weight:900;font-size:14px;padding:7px 12px;border-radius:6px;transform:rotate(-4deg);letter-spacing:.08em;z-index:2}.name-chip span{font-size:10px;letter-spacing:.06em;color:#ffc832;margin-left:7px;white-space:nowrap}.carrie-art{position:relative;width:100%;max-width:250px;aspect-ratio:1/1.48;isolation:isolate;margin:7px 0 3px}.carrie-turn{position:absolute;inset:0;transform:rotateY(var(--turn, -19deg)) rotateX(var(--tilt,-12deg)) rotateZ(var(--lean,-4deg));transition:transform .65s cubic-bezier(.2,.8,.2,1);transform-origin:50% 78%;transform-style:preserve-3d}.carrie-body{position:absolute;inset:0;animation:work var(--breath) ease-in-out infinite;transform-origin:50% 80%}.carrie-sprite{position:absolute;left:0;top:-17%;width:100%;height:135.135%;background-image:url('assets/fan-scrunchie.webp');background-size:300% 100%;background-position:0 50%;pointer-events:none;clip-path:inset(10% 0 14% 0)}.carrie-sprite.tired{background-position:50% 50%}.carrie-sprite.rest{background-position:100% 50%}.rotor-window{position:absolute;left:9%;top:10.8%;width:82%;aspect-ratio:1;opacity:.43;mask-image:radial-gradient(circle,transparent 0 46%,black 49% 66%,transparent 69%);-webkit-mask-image:radial-gradient(circle,transparent 0 46%,black 49% 66%,transparent 69%);pointer-events:none}.rotor{position:absolute;inset:0;background-image:url('assets/parts.webp');background-size:400% 133.333%;background-position:0% 50%;animation:spin var(--spin) linear infinite;transform-origin:51% 51%}.pant{position:absolute;right:-8%;top:43%;font-style:italic;font-weight:900;font-size:16px;color:#98415c;transform:rotate(8deg);opacity:0}.tired .pant{opacity:1;animation:pant .5s ease-in-out infinite}.sweat{position:absolute;inset:0;opacity:0;pointer-events:none}.sweat span{position:absolute;top:24%;left:10%;font-size:22px;animation:sweat var(--sweat-time,1.2s) ease-in infinite}.sweat span:nth-child(2){left:83%;animation-delay:-.4s}.sweat span:nth-child(3){left:77%;top:37%;animation-delay:-.8s}.tired .sweat{opacity:1}.very-tired .carrie-body{animation:work .35s ease-in-out infinite}.carrie-caption{min-height:73px;position:relative;text-align:center;margin:6px 0 11px}.carrie-caption strong{font-size:16px}.carrie-caption p{font-size:14px;margin:5px 0 0;line-height:1.4;max-width:240px}.actions{pointer-events:auto;display:flex;flex-direction:column;gap:8px;width:min(250px,100%)}.action{border:2px solid var(--ink);border-radius:10px;padding:10px 8px;font-size:15px;font-weight:850;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 3px 0 var(--ink);min-height:45px;transition:transform .15s,box-shadow .15s;touch-action:manipulation}.action:hover{transform:translateY(-2px);box-shadow:0 5px 0 var(--ink)}.action:active{transform:translateY(2px);box-shadow:0 1px 0 var(--ink)}.vacation-button{background:var(--yellow)}.action-symbol{font-size:22px;line-height:1}.target-note{font-size:12px;color:#535a70;margin-top:10px;text-align:center;line-height:1.4}.on-vacation .vacation-button{background:#bee9da}.on-vacation .carrie-turn{transform:rotateY(0) rotateX(0) rotateZ(0)!important}.on-vacation .carrie-body{animation:rest 3s ease-in-out infinite}.on-vacation .rotor-window,.on-vacation .sweat,.on-vacation .pant{display:none}.on-vacation .carrie-station:before{background:#cdefe2;box-shadow:0 0 0 20px #cdefe266}.on-vacation .carrie-caption strong{color:#276c53}
.flow{position:absolute;left:50%;top:50%;height:56px;width:120px;transform-origin:0 50%;transform:rotate(var(--direction,-150deg));z-index:1;pointer-events:none;transition:transform .65s cubic-bezier(.2,.8,.2,1);border-radius:50%;opacity:.85}.flow i{position:absolute;left:0;top:50%;height:4px;border-radius:9px;background:#5aaaf0;width:45px;animation:wind var(--flow-time,1.1s) linear infinite}.flow i:nth-child(2){top:15%;width:36px;animation-delay:-.4s}.flow i:nth-child(3){top:80%;width:54px;animation-delay:-.8s}.on-vacation .flow{opacity:0}.parts{position:absolute;inset:0;z-index:5;pointer-events:none;mix-blend-mode:multiply}.loose-part{position:absolute;width:var(--part-size,28px);height:var(--part-size,28px);background-image:url('assets/fan-parts-v2.webp');background-size:400% 300%;top:0;left:0;filter:brightness(1.025);will-change:transform;opacity:0}.repair-spark{color:#287354;font-size:12px;font-weight:900;position:absolute;bottom:0;left:50%;white-space:nowrap}
.dashboard{display:grid;grid-template-columns:1fr 1fr .85fr;margin-top:24px;gap:28px;background:#fff;color:var(--ink);border-radius:0;border-top:1px solid #e4e7ed;padding:18px 24px}.metric{min-width:0}.metric-title{display:flex;justify-content:space-between;gap:8px;align-items:center}.metric-title span{font-size:12px;font-weight:850;letter-spacing:.06em}.metric-title strong{font-size:20px;font-variant-numeric:tabular-nums;white-space:nowrap}.metric-detail{display:block;color:#535a70;font-size:12px;margin-top:6px;line-height:1.4}meter{display:block;width:100%;height:9px;border:none;margin-top:9px;border-radius:5px;background:#e6e9ef;overflow:hidden;appearance:none}meter::-webkit-meter-bar{background:#e6e9ef;border:none;border-radius:5px}meter::-webkit-meter-optimum-value{background:var(--meter-color,#ffc832);border-radius:5px;transition:width .25s}meter::-moz-meter-bar{background:var(--meter-color,#ffc832);border-radius:5px}.speed-track{display:flex;gap:4px;height:9px;margin-top:9px}.speed-track i{flex:1;background:#e6e9ef;border-radius:2px}.speed-track i.on{background:#f293b2}.boosting .flow i{height:5px}.boosting .sweat{opacity:.75}.rule-note{font-size:14px;margin:14px 0 0;text-align:center}.announcement{min-height:20px;font-size:14px;text-align:center;margin:6px 0}.asset-error{color:var(--red);text-align:center}.paused-banner{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--ink);color:white;padding:14px 22px;border:2px solid white;border-radius:10px;z-index:10;text-align:center;pointer-events:none;font-size:14px;box-shadow:0 4px 18px #17213f44}.paused *{animation-play-state:paused!important}.paused .flow{opacity:0}footer{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:14px 0 20px;margin-top:8px;border-top:1px solid #17213f44;font-size:12px}footer>span:first-child{font-weight:900;letter-spacing:.08em}
@keyframes work{0%,100%{transform:translateY(0) scaleY(1)}50%{transform:translateY(-3px) scaleY(1.012)}}@keyframes rest{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes wind{0%{transform:translateX(0) scaleX(.45);opacity:0}20%{opacity:1}100%{transform:translateX(var(--flow-length,150px)) scaleX(1.4);opacity:0}}@keyframes sweat{0%{transform:translateY(0) scale(.6);opacity:0}20%{opacity:1}100%{transform:translateY(60px) scale(1);opacity:0}}@keyframes pant{0%,100%{transform:rotate(8deg) scale(.95)}50%{transform:rotate(8deg) scale(1.06)}}@keyframes grumble{0%,100%{transform:rotate(-8deg) translateY(0)}50%{transform:rotate(8deg) translateY(-4px)}}@keyframes cry{0%{transform:translateY(0);opacity:0}20%{opacity:1}100%{transform:translateY(35px);opacity:0}}
@media(min-width:1500px){.figure-area{height:170px}.carrie-art{max-width:280px}}@media(max-width:950px){.page{padding:0 22px}.scene{gap:14px;padding:16px;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr) minmax(0,1fr)}.figure-area{height:138px}.person{padding:10px}.person-heading{font-size:14px}.intro p{font-size:14px}.carrie-caption strong{font-size:15px}.actions{width:100%}.carrie-art{margin-top:22px}.carrie-station:before{top:18%}.dashboard{gap:18px;padding:16px}.pant{font-size:14px;right:-3%}}
@media(max-width:650px){.page{padding:0 12px}.masthead{padding:14px 0;gap:12px}.brand{font-size:26px}.edition{font-size:9px;max-width:130px;line-height:1.3}.pause-control{font-size:13px;min-height:36px;padding:6px 12px}.intro{display:block;padding:16px 0}.eyebrow{font-size:10px}h1{font-size:33px}.intro p{margin-top:8px;font-size:14px;line-height:1.4}.intro br{display:none}.scene{padding:9px 7px;border-radius:18px;gap:12px 6px;grid-template-columns:minmax(0,1fr) minmax(0,1.13fr) minmax(0,1fr);box-shadow:none}.person{padding:8px 5px;border-radius:0}.person-heading{display:block;font-size:14px;min-height:47px;line-height:1.2}.temperature{display:block;font-size:20px;margin-top:4px}.figure-area{height:110px;margin:7px 0}.person-mood{font-size:14px;line-height:1.25;min-height:2.5em}.person-quote{font-size:12px;line-height:1.3;min-height:3.9em;margin-top:5px}.cool-tag{font-size:8px;padding:3px;letter-spacing:0}.carrie-art{aspect-ratio:1/1.48;margin:20px 0 8px;width:128%;max-width:none}.carrie-station:before{width:120%;top:23%;box-shadow:none}.name-chip{font-size:12px;padding:7px 8px;white-space:nowrap}.name-chip span{display:block;font-size:9px;margin:3px 0 0;text-align:center}.carrie-caption{min-height:95px;margin:4px 0 8px}.carrie-caption strong{font-size:14px;line-height:1.3;display:block}.carrie-caption p{font-size:12px;line-height:1.4;margin-top:5px}.action{font-size:14px;line-height:1.15;padding:9px 4px;gap:4px;min-height:46px}.action-symbol{font-size:17px}.target-note{font-size:11px;line-height:1.3}.pant{font-size:10px;right:0;top:50%}.sweat span{font-size:15px}.loose-part{width:calc(var(--part-size,28px)*.72);height:calc(var(--part-size,28px)*.72)}.dashboard{margin-top:18px;padding:14px 12px;gap:16px 12px;grid-template-columns:1fr 1fr}.speed-metric{grid-column:1/3;display:grid;grid-template-columns:1fr 1fr;column-gap:14px;align-items:center}.speed-metric .metric-detail{grid-column:1/3;margin-top:4px}.speed-track{margin-top:0}.metric-title span{font-size:10px}.metric-title strong{font-size:17px}.metric-detail{font-size:12px}.rule-note{font-size:12px;line-height:1.4}.announcement{font-size:12px;margin-bottom:8px}footer{font-size:10px;padding-bottom:16px}.paused-banner{width:85%}.reaction-fx{font-size:15px}.husband.overheated .reaction-fx{font-size:12px}}
@media(max-width:360px){.page{padding:0 8px}.scene{grid-template-columns:minmax(0,1fr) minmax(0,1.04fr) minmax(0,1fr);padding:7px 4px;column-gap:4px}.figure-area{height:87px}.person-heading{font-size:13px}.person-mood{font-size:13px}.person-quote{font-size:12px}.action{font-size:12px}.action-symbol{display:none}h1{font-size:29px}.edition{max-width:90px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.flow{display:none}.sweat{display:none}.rotor-window{display:none}}

.mounted-part{position:absolute;width:calc(var(--part-size,28px)*.48);height:calc(var(--part-size,28px)*.48);transform:translate(-50%,-50%);background-image:url(assets/fan-parts-v2.webp);background-size:400% 300%;mix-blend-mode:multiply;filter:brightness(1.025);pointer-events:none;transition:opacity .25s}
@media(max-width:650px){.mounted-part{width:calc(var(--part-size,28px)*.34);height:calc(var(--part-size,28px)*.34)}}

.person-quote{font-size:14px}.carrie-caption p{font-size:14px}.action{font-size:15px}.person-mood{font-size:14px}.target-note{font-size:12px}.person-heading{font-size:14px}
@media(max-width:650px){.action{font-size:14px}.intro .eyebrow{font-size:10px;letter-spacing:.075em}.person-quote{font-size:12px}.carrie-caption p{font-size:13px}.person-mood{font-size:14px}.person-quote{min-height:4em}.carrie-caption{min-height:112px}}

/* The white stage stays white in every heat, selection and vacation state. */
.scene,.person,.person.selected,.person.overheated,.person.overheated.selected{background:#fff;border:0;border-radius:0;box-shadow:none}.scene:before,.carrie-station:before{display:none}.brand{letter-spacing:-.065em;white-space:nowrap}.projectiles{position:absolute;inset:0;width:100%;height:100%;z-index:7;pointer-events:none}.impact-label{position:absolute;z-index:8;pointer-events:none;font-size:14px;font-weight:900;color:#2456d8;font-style:italic;opacity:0;transform:rotate(-8deg);transition:opacity .15s}.impact-label.visible{opacity:1}.carrie-turn{--flinch:0deg;--flinch-x:0px;translate:var(--flinch-x) 0;rotate:var(--flinch);transition:transform .65s cubic-bezier(.2,.8,.2,1),translate .1s,rotate .1s}.person[data-stage="3"] .person-mood{color:#a12d35}
@media(max-width:650px){.brand{font-size:25px}.edition{max-width:95px;font-size:9px}.impact-label{font-size:12px}}

.person-art,.carrie-sprite{filter:brightness(1.025)}

/* Keep the existing wordmark as the page heading and the guide below the game. */
.site-title{margin:0;font-size:inherit;line-height:1;letter-spacing:normal}
.game-guide{margin:16px 0 10px;color:var(--ink);font-size:16px;line-height:1.6}
.game-guide summary{width:fit-content;max-width:100%;padding:10px 0;cursor:pointer;font-size:14px;font-weight:700}
.game-guide summary:hover{color:var(--blue)}
.game-guide summary:focus-visible{outline:3px solid var(--blue);outline-offset:5px}
.game-guide-content{max-width:760px;padding:0 0 8px}
.game-guide h2{font-size:18px;line-height:1.35;letter-spacing:-.02em;margin:16px 0 8px}
.game-guide p{margin:8px 0 14px}
.game-guide ol{margin:8px 0 14px;padding-left:24px}
.game-guide li+li{margin-top:8px}
html:lang(zh-Hant),html:lang(zh-Hans){font-family:-apple-system,BlinkMacSystemFont,"PingFang TC","PingFang SC","Microsoft JhengHei","Microsoft YaHei",sans-serif}
.language-switcher{display:flex;gap:.35rem;align-items:center}
.language-switcher button{border:1px solid #111;background:#fff;color:#111;border-radius:999px;padding:.34rem .62rem;font:700 .72rem/1 inherit;cursor:pointer}
.language-switcher button[aria-pressed="true"]{background:#111;color:#fff}
.language-switcher button:focus-visible{outline:3px solid #ffc832;outline-offset:2px}
