
:root{--ink:#455347;--sage:#628775;--muted:#92977e;--orange:#d47c51;--cream:#faf6e9}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;user-select:none;-webkit-user-select:none}
html,body{margin:0;width:100%;min-height:100%;overflow-x:clip;overscroll-behavior:none;background:var(--cream);color:var(--ink);font-family:"PingFang TC","Noto Sans TC","Microsoft JhengHei",sans-serif}
body{background-image:radial-gradient(#a8966e16 1px,transparent 1px);background-size:19px 19px}
button{font:inherit;cursor:pointer;touch-action:manipulation;border:0;color:inherit;font-weight:700;min-height:52px}svg{user-select:none;-webkit-user-select:none;-webkit-user-drag:none}button:focus-visible,[tabindex]:focus-visible{outline:4px solid #d6a252;outline-offset:3px}button:disabled{cursor:default;opacity:.5}
main{width:100%;height:100dvh;min-height:540px;padding:clamp(12px,2vh,26px) clamp(15px,2vw,34px) 10px;display:grid;grid-template-rows:62px 76px minmax(0,1fr) 22px;gap:14px;position:relative}
header{display:flex;justify-content:space-between;align-items:center;gap:16px}.brand{display:flex;align-items:center;gap:13px}.brand-mark{width:62px;height:62px;background:#efe1c6;border-radius:22px;display:grid;place-items:center;transform:rotate(-5deg)}.brand-mark .fox{width:56px;height:58px}.eyebrow{font-size:13px;letter-spacing:2px;color:#9b927b;font-weight:700}h1{font-size:clamp(23px,2.3vw,34px);letter-spacing:2px;margin:2px 0 0;font-weight:850;line-height:1.25}.spark{font-size:23px;color:#c4a262;margin-left:12px}.header-actions{display:flex;gap:12px;align-items:center}.full,.sound-toggle{background:#fffdf5;border:1px solid #dfddc8;border-radius:14px;min-height:52px;padding:9px 16px;font-size:17px;white-space:nowrap}.full{font-size:24px}.full span{font-size:17px;margin-left:6px}.sound-toggle span{font-size:24px;margin-right:5px}.sound-toggle.enabled{color:#50765d;background:#e8eedf;border-color:#a8bca4}
nav{display:flex;gap:14px;width:100%;max-width:1200px;justify-self:center}.tab{display:flex;gap:15px;align-items:center;text-align:left;flex:1;padding:10px 23px;border:2px solid #e4e0cc;border-radius:20px;background:#fffdf6;color:#898d78;font-size:clamp(18px,1.75vw,27px);line-height:1.25;transition:background .2s}.tab.active{background:#e1ead8;border-color:#91ab8e;color:#4e6f55;box-shadow:0 3px 0 #cdd9be}.tab-icon{font-size:35px;line-height:1}.tab small{display:block;font-size:12px;font-weight:500;margin-top:3px;letter-spacing:2px}.tab-num{margin-left:auto;font-size:14px;color:#9da98f}
.playboard{position:relative;display:grid;grid-template-columns:1.12fr 1fr;gap:clamp(20px,3vw,56px);background:#fffdf6;border:2px solid #e6e2cc;border-radius:30px;padding:20px clamp(20px,3vw,50px);min-height:0;box-shadow:0 7px 0 #e8e3ce66;overflow:hidden}.clock-area{display:flex;flex-direction:column;align-items:center;border-right:2px dashed #e3dfc9;padding-right:clamp(20px,3vw,50px);min-height:0}.section-label{font-size:19px;letter-spacing:2px;color:#8b957b;display:flex;align-items:center;gap:10px;flex-shrink:0;height:29px}.tiny-dot{width:9px;height:9px;background:#acbf94;border-radius:50%}.clock-wrap{position:relative;flex:1;min-height:0;width:100%;margin:6px 0}.clock{position:absolute;inset:0;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 5px 1px #54785f09)}.number text{font-size:36px;font-weight:800;fill:#465549}.number.clickable{cursor:pointer;touch-action:manipulation}.number.clickable:hover circle{fill:#d9e8ce}.clock-caption{font-size:11px;letter-spacing:5px;fill:#b7b9a3}.aim-mark{transition:fill .15s}.hour-spark{position:absolute;top:0;right:8%;color:#ccab62;font-size:36px;animation:spark .45s ease-out;pointer-events:none}.time-readout{font-size:clamp(28px,3.2vw,49px);letter-spacing:4px;font-weight:900;min-height:62px;line-height:1.3;margin-top:0;color:#577858;text-align:center;white-space:nowrap;flex-shrink:0}.hand-key{display:flex;gap:25px;align-items:center;justify-content:center;font-size:16px;color:#9b9e88;min-height:29px;flex-shrink:0}.hand-key span{display:flex;align-items:center;gap:8px}.hand-key .hour-key{color:#b97650;font-weight:700}.hand-key i{display:inline-block;border-radius:4px}.long-hand{height:25px;width:5px;background:#8b9d88}.short-hand{height:19px;width:9px;background:#d47c51}
aside{display:flex;flex-direction:column;justify-content:center;position:relative;min-height:0;min-width:0}.badge{font-size:14px;font-weight:700;letter-spacing:2px;background:#f1e6cb;color:#9b8050;padding:7px 12px;border-radius:7px;display:inline-block;align-self:flex-start}h2{font-size:clamp(24px,2.6vw,39px);letter-spacing:1px;margin:12px 0 8px;font-weight:850;line-height:1.3}.card-title p{font-size:clamp(16px,1.45vw,22px);color:#92917a;margin:0;line-height:1.6}.relation{display:flex;align-items:center;gap:18px;background:#f4f1e1;border-radius:18px;padding:12px 20px;margin-top:15px}.relation p{margin:0;line-height:1.75;font-size:clamp(16px,1.4vw,21px);color:#999982}.relation b{color:#ba7953;font-size:clamp(20px,1.9vw,28px)}.mini-hour{font-size:45px;color:#cf8b5e}.little-star{margin-left:auto;font-size:33px;color:#ccb681}.wheel-group{display:flex;align-items:center;justify-content:center;gap:clamp(10px,1.2vw,25px);margin:10px 0 4px;flex-shrink:1;min-height:0}.wheel{width:clamp(180px,27vh,310px);height:clamp(180px,27vh,310px);touch-action:none;cursor:grab;flex-shrink:0;position:relative}.wheel:active{cursor:grabbing}.wheel svg{width:100%;height:100%;display:block;pointer-events:none}.wheel-note{font-size:clamp(15px,1.3vw,20px);color:#7d9178;white-space:nowrap;font-weight:700}.hour-controls{display:flex;gap:12px;justify-content:center}.hour-controls button{font-size:clamp(15px,1.25vw,19px);background:#f1efdf;border:1px solid #dedec3;border-radius:12px;padding:9px 15px;min-height:52px;white-space:nowrap}.hint{font-size:clamp(15px,1.25vw,19px);text-align:center;margin:12px 0 0;color:#9c967c;min-height:25px;line-height:1.4}.hint.matched{color:#749067}
.game-top{display:flex;justify-content:space-between;align-items:center;gap:12px}.stars{letter-spacing:3px;color:#e2ddc5;font-size:clamp(22px,2vw,30px);white-space:nowrap}.stars .filled{color:#c8a255}.task-card{background:#f6edda;border:1px solid #e8ddc2;border-radius:22px;margin-top:10px;overflow:hidden;flex:1;min-height:170px;max-height:350px;display:flex;flex-direction:column}.task-heading{display:flex;justify-content:space-between;align-items:center;padding:13px 17px 0;gap:10px}.task-heading h2{font-size:clamp(23px,2vw,30px);margin:0}.task-heading strong{color:#b1744b;background:#fffaf0;border-radius:12px;padding:7px 15px;font-size:clamp(26px,2.9vw,44px);letter-spacing:2px;white-space:nowrap}.scene{width:100%;height:100%;min-height:0;display:block;flex:1}.game-operate{display:flex;align-items:center;justify-content:space-around;gap:18px;flex-shrink:0}.game .wheel-group{margin:4px 0 0;gap:0}.game .wheel{width:clamp(160px,23vh,250px);height:clamp(160px,23vh,250px)}.game .wheel-note{display:none}.submit-area{flex:1;max-width:290px}.submit-area p{font-size:clamp(16px,1.4vw,21px);color:#96917b;line-height:1.6;margin:0 0 12px}.primary{background:#648976;color:white;border-radius:16px;padding:14px 24px;min-height:64px;min-width:160px;font-size:clamp(21px,1.9vw,28px);font-weight:800;letter-spacing:2px;box-shadow:0 5px 0 #456c59}.primary:active{transform:translateY(2px);box-shadow:0 3px 0 #456c59}.feedback{font-size:clamp(15px,1.3vw,20px);min-height:28px;color:#a17f54;line-height:1.5;margin:5px 0 0;text-align:center;flex-shrink:0}.feedback.success{color:#60865b;font-weight:700}.confetti{position:absolute;top:14%;left:0;width:100%;font-size:32px;color:#c8a454;text-align:center;pointer-events:none;animation:confetti 1s ease-out both}.finish-note{background:#f2e7cc;border-radius:10px;text-align:center;font-size:19px;padding:8px;margin:4px 0}.wheel-group.disabled{pointer-events:none;opacity:.5}
.fox-heading{font-size:clamp(22px,2.1vw,33px);margin-top:14px}.fox-house{position:relative;flex:1;max-height:300px;min-height:140px;background:#f2efdc;border-radius:130px 130px 30px 30px;margin:10px 20px 15px;display:flex;justify-content:center;align-items:flex-end}.fox.big{height:100%;max-height:290px;width:auto;max-width:100%}.fox-guide{text-align:center}.fox-guide strong{font-size:clamp(20px,1.9vw,29px)}.fox-guide p{font-size:clamp(16px,1.4vw,21px);color:#93927a;margin:8px 0}.fox-warning{display:flex;align-items:center;gap:17px;justify-content:center;margin:6px 0 13px}.fox-warning b{font-size:31px;color:#a77f54;border:2px dashed #d6c8a4;width:62px;height:62px;border-radius:50%;display:grid;place-items:center}.fox-warning p{font-size:clamp(16px,1.4vw,21px);color:#9c8d71;line-height:1.6;margin:0}.secondary{align-self:center;background:#f3efdc;border:1px solid #dcd8be;padding:12px 27px;border-radius:14px;min-height:56px;font-size:22px}.plant{position:absolute;color:#bdc99e;font-size:42px;bottom:17px}.p1{left:20px}.p2{right:23px}
.overlay{position:fixed;inset:0;z-index:10;background:#394f43b3;backdrop-filter:blur(5px);display:grid;place-items:center;padding:20px}.fox-modal{background:#fff9e9;border:6px solid #dcdab9;border-radius:35px;text-align:center;padding:25px 60px;animation:pop .5s cubic-bezier(.2,.9,.2,1.2);max-height:95dvh;overflow:auto}.surprise{font-size:23px;color:#ae8d5c;letter-spacing:3px}.fox-modal .fox{height:220px;margin:8px auto -6px}.fox-modal h2{font-size:35px;margin:8px 0}.fox-modal p{font-size:47px;color:#bd7956;letter-spacing:5px;margin:8px 0 22px;font-weight:900}footer{display:flex;justify-content:space-between;align-items:center;font-size:12px;letter-spacing:1px;color:#aaa78d;padding:0 6px}footer i{display:inline-block;height:4px;width:4px;background:#c4c5ae;border-radius:50%;margin:0 10px}.decor{display:none}
@keyframes spark{from{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}@keyframes pop{from{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes confetti{from{transform:translateY(70px);opacity:0}50%{opacity:1}to{transform:translateY(-20px);opacity:0}}
@media(min-width:701px) and (max-height:800px){main{grid-template-rows:52px 64px minmax(0,1fr) 18px;gap:10px;padding:10px 16px 6px}.brand-mark{width:50px;height:50px;border-radius:16px}.brand-mark .fox{width:46px;height:48px}.eyebrow{font-size:10px}h1{font-size:25px}.tab{font-size:20px;padding:8px 20px}.tab small{font-size:10px}.playboard{padding:13px 25px;gap:25px}.clock-area{padding-right:25px}.section-label{font-size:16px;height:23px}.time-readout{min-height:45px;font-size:32px}.hand-key{font-size:13px;min-height:23px}.badge{font-size:12px;padding:5px 10px}h2{font-size:26px;margin-top:8px}.card-title p{font-size:16px}.relation{padding:7px 15px;margin-top:8px}.relation p{font-size:15px}.relation b{font-size:20px}.mini-hour{font-size:34px}.wheel{width:clamp(145px,26vh,190px);height:clamp(145px,26vh,190px)}.wheel-group{margin-top:5px}.hour-controls button{min-height:48px;font-size:15px;padding:8px 11px}.hint{font-size:14px;margin-top:8px;min-height:20px}.task-card{min-height:130px;max-height:240px}.task-heading{padding:9px 13px 0}.task-heading h2{font-size:22px}.task-heading strong{font-size:28px;padding:5px 11px}.game .wheel{width:clamp(130px,22vh,165px);height:clamp(130px,22vh,165px)}.submit-area p{font-size:15px;margin-bottom:7px}.primary{font-size:21px;min-height:52px;min-width:140px;padding:9px 17px}.feedback{font-size:14px;min-height:22px;margin-top:1px}.finish-note{font-size:15px;padding:4px}.fox-house{min-height:110px;margin:3px 30px 8px}.fox-heading{font-size:24px;margin:8px 0}.fox-guide strong{font-size:20px}.fox-guide p,.fox-warning p{font-size:15px}.fox-warning{margin-bottom:10px}.fox-warning b{width:48px;height:48px;font-size:25px}.secondary{font-size:19px;min-height:48px;padding:8px 22px}.fox-modal .fox{height:155px}.fox-modal p{font-size:35px}footer{font-size:10px}}
@media(min-width:701px) and (max-width:1050px){main{padding-left:14px;padding-right:14px}.header-actions{gap:8px}.full,.sound-toggle{padding:8px 12px;font-size:15px}.full{font-size:23px}.full span{display:none}.playboard{gap:23px;padding-left:22px;padding-right:22px}.clock-area{padding-right:22px}.section-label{font-size:17px}.hand-key{font-size:13px;gap:15px}.time-readout{font-size:31px;min-height:46px}.wheel{width:clamp(175px,27vh,225px);height:clamp(175px,27vh,225px)}.wheel-group{gap:9px}.wheel-note{font-size:14px}.hour-controls{gap:8px}.hour-controls button{font-size:14px;padding:9px 10px}.relation{padding:10px 14px;gap:12px}.relation b{font-size:21px}.relation p{font-size:16px}.little-star{font-size:26px}.task-heading{padding:10px 12px 0}.task-heading h2{font-size:22px}.task-heading strong{font-size:29px;padding:6px 10px}.game .wheel{width:clamp(155px,23vh,190px);height:clamp(155px,23vh,190px)}.game-operate{gap:12px}.submit-area p{font-size:16px}.primary{min-width:135px;padding:12px 17px;font-size:21px}.feedback{font-size:15px}.fox-heading{font-size:24px}.fox-guide strong{font-size:22px}.fox-guide p,.fox-warning p{font-size:17px}.hint{font-size:15px}.tab{font-size:21px;gap:10px;padding:10px 18px}.tab-num{display:none}}
@media(max-width:700px){main{height:auto;min-height:100dvh;grid-template-rows:54px 66px auto 26px;gap:12px;padding:12px 12px 7px}header{gap:8px}.brand{gap:8px}.brand-mark{width:43px;height:43px;border-radius:15px}.brand-mark .fox{width:40px;height:42px}.eyebrow{font-size:10px;letter-spacing:1px}h1{font-size:20px;letter-spacing:1px}.spark{display:none}.header-actions{gap:6px}.sound-toggle{font-size:0;min-height:44px;padding:7px 9px}.sound-toggle span{font-size:24px;margin:0}.sound-toggle:not(.enabled){opacity:.6}.full{font-size:23px;padding:7px 9px;min-height:44px}.full span{display:none}nav{gap:7px}.tab{padding:8px 9px;gap:7px;font-size:14px;min-height:60px;border-radius:14px}.tab-icon{font-size:24px}.tab small{font-size:9px;letter-spacing:0}.tab-num{display:none}.playboard{grid-template-columns:1fr;gap:20px;padding:18px;border-radius:23px;overflow:visible}.clock-area{padding:0 0 17px;border-right:0;border-bottom:2px dashed #e3dfc9}.section-label{font-size:16px;height:25px}.clock-wrap{height:310px;flex:none;max-width:380px}.time-readout{font-size:31px;min-height:45px}.hand-key{font-size:14px;gap:24px}.hour-spark{font-size:28px}aside{width:100%;max-width:440px;justify-self:center}.badge{font-size:12px}.card-title h2{font-size:29px}.card-title p{font-size:17px}.relation{padding:11px 16px;margin-top:13px}.relation b{font-size:23px}.relation p{font-size:17px}.wheel{width:220px;height:220px}.wheel-group{gap:15px}.wheel-note{font-size:14px}.hour-controls button{font-size:15px;padding:9px 12px;min-height:52px}.hint{font-size:15px}.task-card{flex:none;height:295px;margin-top:11px}.task-heading h2{font-size:25px}.task-heading strong{font-size:32px}.game .wheel{width:165px;height:165px}.game-operate{gap:13px}.submit-area p{font-size:16px}.primary{min-width:130px;min-height:56px;font-size:21px;padding:11px 14px}.feedback{font-size:16px}.fox-house{flex:none;height:230px;min-height:0;margin-left:12px;margin-right:12px}.fox-heading{font-size:24px}.fox-guide strong{font-size:23px}.fox-guide p,.fox-warning p{font-size:17px}.fox-modal{padding:23px 20px;width:min(100%,420px)}.fox-modal .fox{height:185px}.fox-modal h2{font-size:26px}.fox-modal p{font-size:37px}.surprise{font-size:19px}footer{font-size:9px;letter-spacing:0;padding:0}footer span:last-child{display:none}}
@media(prefers-reduced-motion:reduce){.hour-spark,.confetti,.fox-modal{animation:none}}

@media(min-width:701px) and (max-height:650px){.learn .relation{display:none}.learn .wheel{width:160px;height:160px}.learn .wheel-group{margin-top:8px}.game .wheel{width:130px;height:130px}.card-title p{font-size:15px}.game .submit-area p{font-size:14px}.game .primary{min-height:48px}}

/* One shared set of textured Japanese preschool illustrations. */
img.fox{display:block;object-fit:contain;object-position:center;flex-shrink:0;-webkit-user-drag:none;pointer-events:none}
.scene{object-fit:contain;object-position:center;padding:5px 14px 8px;pointer-events:none;-webkit-user-drag:none}
.tab-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:55px;height:55px}
.tab-icon .fox,.nav-art{width:55px;height:55px;object-fit:contain;pointer-events:none}
.nav-clock{width:49px;height:49px}
.fox-house{background:radial-gradient(ellipse at 50% 70%,#f3e8cc 0%,#f7f1e1 64%);align-items:center}
.fox-house .fox.big{padding:8px;height:100%;max-height:290px;width:100%;object-fit:contain}
.fox-modal .fox{width:220px;max-width:100%;object-fit:contain}
@media(max-width:1050px) and (min-width:701px){.tab-icon{width:43px;height:45px}.tab-icon .fox,.nav-art{width:43px;height:45px}.nav-clock{width:40px;height:40px}}
@media(max-width:700px){.tab-icon{width:30px;height:36px}.tab-icon .fox,.nav-art{width:30px;height:36px}.nav-clock{width:29px;height:29px}.scene{padding:6px 10px}.fox-modal .fox{width:185px}}

.brand-mark{overflow:hidden;transform:none;background:#fff3c9}.brand-icon{width:100%;height:100%;object-fit:contain;display:block;pointer-events:none}
