:root{font-family:"BIZ UDPGothic","Hiragino Kaku Gothic ProN","Yu Gothic",system-ui,sans-serif;color:#40392f;background:#fff1c9;font-synthesis:none;-webkit-text-size-adjust:100%}*{box-sizing:border-box}body{min-height:100vh;min-height:100dvh;margin:0;background:linear-gradient(#dff5ff 0 55%,#d8edb0 55% 72%,#786957 72% 75%,#fff1c9 75%)}button,select,input{font:inherit}button{touch-action:manipulation}[hidden]{display:none!important}.app-shell{min-height:100vh;min-height:100dvh}.screen{width:min(100%,1000px);min-height:100vh;min-height:100dvh;margin:auto;padding:max(30px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(35px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left))}.back-link{position:fixed;z-index:10;top:max(10px,env(safe-area-inset-top));left:max(10px,env(safe-area-inset-left));padding:8px 12px;border:2px solid #a99168;border-radius:99px;color:#554735;background:#ffffffdf;font-size:.8rem;font-weight:900;text-decoration:none}.home-screen,.result-screen{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center}.corner-voice{position:absolute;top:10px;right:15px;display:flex;gap:5px;align-items:center;font-size:.68rem;opacity:.75}.corner-voice select{max-width:130px;min-height:34px;border:1px solid #a99168;border-radius:8px;background:#ffffffcf;font-size:16px}.train-mark{display:flex;align-items:center;justify-content:center;gap:7px;width:250px;height:112px;margin-top:20px;border-radius:28px;background:#efb73e;box-shadow:0 8px 0 #bd7d28;font-size:3.4rem}.train-mark span{display:grid;place-items:center;width:58px;height:58px;border:3px solid #785b34;border-radius:12px;background:white;font-size:2.6rem}.eyebrow{margin:22px 0 5px;color:#9b551d;font-weight:900;letter-spacing:.08em}h1,h2{margin:0;color:#49392d;line-height:1.15}h1{font-size:clamp(2.7rem,9vw,5rem)}.home-copy{margin:14px 0 22px;font-size:clamp(1rem,3vw,1.3rem);font-weight:800;line-height:1.7}fieldset{width:100%;margin:0;padding:0;border:0}legend{margin:0 auto 12px;font-weight:900}.level-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.level-card{position:relative;display:grid;place-items:center;min-height:128px;padding:10px;border:3px solid #c4a775;border-radius:22px;background:#ffffffdc;cursor:pointer}.level-card input{position:absolute;opacity:0}.level-card span{font-size:2.4rem}.level-card small{font-size:.75rem}.level-card.selected{border-color:#d66c32;box-shadow:0 5px 0 #e8a36f;transform:translateY(-3px)}.game-header{display:grid;grid-template-columns:58px 1fr auto;align-items:center;gap:14px}.round-button{width:54px;height:54px;border:3px solid #aa9168;border-radius:50%;background:white;font-size:1.7rem}.game-header p{margin:0 0 4px;font-weight:900}.progress-track{height:14px;overflow:hidden;border:2px solid #90764d;border-radius:99px;background:white}.progress-track span{display:block;width:0;height:100%;background:#edb735;transition:width .3s}.level-badge{padding:9px 12px;border-radius:99px;background:white;font-weight:900}.game-screen h2{text-align:center;margin:20px 0 12px}.train{display:flex;align-items:end;justify-content:flex-start;min-height:108px;padding:10px;overflow-x:auto;border-bottom:8px double #51483f}.train-car{position:relative;display:grid;place-items:center;flex:0 0 118px;height:88px;margin-left:-3px;border-radius:14px;background:#e9523d;transform:translateX(45px);opacity:0}.train-car.coupled,.train-car.engine{transform:none;opacity:1;transition:.55s ease}.train-car i{position:absolute;inset:auto 0 -13px;font-size:5.8rem;line-height:1;text-align:center}.train-car b,.train-car small{position:relative;z-index:2}.train-car b{font-size:2.1rem}.train-car small{padding:1px 5px;border-radius:6px;background:#fff}.question{display:flex;align-items:center;justify-content:center;gap:18px;margin:18px auto 8px}.previous-card{display:grid;place-items:center;min-width:150px;min-height:120px;border:4px solid #9d8258;border-radius:22px;background:white;box-shadow:0 6px 0 #d7bb8e}.previous-card span{font-size:4rem}.previous-card small{color:#675a49}.link-hint{min-width:120px;padding:12px;border:4px dashed #d66c32;border-radius:18px;background:#fff8dc;font-size:1.2rem;font-weight:900}.instruction{text-align:center;font-size:1.3rem;font-weight:900}.choices{display:flex;flex-wrap:wrap;justify-content:center;gap:14px}.word-choice{display:grid;place-items:center;width:clamp(100px,17vw,135px);min-height:125px;border:4px solid #a68b64;border-radius:22px;background:white;box-shadow:0 6px 0 #d7bc91}.word-choice span{font-size:4rem}.word-choice b{font-size:1rem}.word-choice.wrong{opacity:.35;transform:translateY(6px)}.word-choice.correct{border-color:#3f8d59;background:#e0f4df}.feedback{min-height:2em;text-align:center;color:#714616;font-size:1.15rem;font-weight:900}.result-screen{justify-content:center}.result-train{font-size:clamp(2.8rem,10vw,6rem);animation:depart 2s ease both}.result-screen h2{font-size:clamp(2rem,7vw,4rem)}.primary-button{min-width:210px;min-height:62px;margin-top:20px;border:4px solid #8f4c22;border-radius:99px;color:white;background:#dd6c32;box-shadow:0 6px 0 #9e4924;font-size:1.25rem;font-weight:900}.text-button{margin-top:18px;padding:12px;border:0;background:transparent;font-weight:800;text-decoration:underline}@keyframes depart{0%{transform:translateX(-60vw)}35%,65%{transform:translateX(0)}100%{transform:translateX(65vw)}}button:focus-visible,a:focus-visible{outline:5px solid #175fc0;outline-offset:4px}@media(max-width:620px){.screen{padding-top:max(20px,env(safe-area-inset-top))}.train-mark{margin-top:34px}.level-grid{grid-template-columns:repeat(2,1fr)}.level-card{min-height:108px}.game-header{grid-template-columns:52px 1fr}.level-badge{grid-column:1/-1;justify-self:center}.train{min-height:96px}.train-car{flex-basis:105px;height:78px}.train-car i{font-size:5rem}.question{margin-top:10px}.previous-card{min-width:125px;min-height:105px}.previous-card span{font-size:3.4rem}.link-hint{min-width:105px}.word-choice{flex:0 1 calc(33.333% - 10px);min-width:88px;min-height:108px}.word-choice span{font-size:3.3rem}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.train-car{transform:none;opacity:1}.level-card.selected{transform:none}}
