:root{color:#f8fcff;background:#06151c;font-family:Inter,Noto Sans TC,Microsoft JhengHei,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;overflow:hidden}button{border:0;border-radius:6px;padding:13px 22px;color:#08202a;background:#ffdf66;font:inherit;font-weight:800;cursor:pointer;box-shadow:0 10px 28px #00000040}button:hover{background:#ffe88e}.gameShell,.gameCanvas{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.gameCanvas{display:block}.hud{position:fixed;z-index:10;top:18px;left:22px;right:22px;pointer-events:none}.topBar{display:flex;justify-content:space-between;align-items:flex-start;gap:24px}.kicker,.eyebrow{color:#ffffffad;font-size:12px;font-weight:800;letter-spacing:0;text-transform:uppercase}.score{margin-top:2px;font-size:clamp(34px,5vh,58px);font-weight:900;line-height:.95;text-shadow:0 4px 20px rgba(0,0,0,.3)}.stats{display:flex;align-items:center;gap:16px;padding-top:2px}.meter{width:min(24vw,190px)}.meterLabel{display:flex;justify-content:space-between;margin-bottom:6px;color:#ffffffd1;font-size:12px;font-weight:800}.meterTrack{height:8px;overflow:hidden;border-radius:999px;background:#ffffff38}.meterFill{height:100%;border-radius:inherit;background:#74f7e0;transition:width .12s linear}.meterFill.danger{background:#ff645a}.attempts{display:grid;grid-template-columns:auto auto auto;align-items:baseline;gap:5px;min-width:92px;text-align:right}.attempts span{color:#ffffffc2;font-size:12px;font-weight:900}.attempts strong{font-size:38px;line-height:.9}.skinPicker{position:fixed;top:86px;left:22px;z-index:13;display:flex;gap:8px;pointer-events:auto}.skinButton{display:flex;flex-direction:column;align-items:center;gap:5px;padding:6px;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#ffffffd1;background:#04141c8a;box-shadow:0 10px 30px #00000038;font-size:12px;font-weight:900;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.skinButton:hover,.skinButton.active{color:#08202a;background:#ffe88ef0}.skinPreview{position:relative;width:74px;height:42px;overflow:hidden;border-radius:6px;background:url(/assets/rod-skins-D7ALSY0d.png) 0 50% / 300% 100% no-repeat,linear-gradient(90deg,#342017,#9a6a34 45%,#f0c26c 48%,#9a6a34 52%,#342017);box-shadow:inset 0 1px 2px #ffffff61,0 2px 8px #0000004d}.skinButton.lacquer .skinPreview{background:url(/assets/rod-skins-D7ALSY0d.png) 50% 50% / 300% 100% no-repeat,linear-gradient(90deg,#260b0b,#b3201d 42%,#f2c568 46%,#8d1716 52%,#260b0b)}.skinButton.carbon .skinPreview{background:url(/assets/rod-skins-D7ALSY0d.png) 100% 50% / 300% 100% no-repeat,repeating-linear-gradient(45deg,rgba(255,255,255,.08) 0 3px,transparent 3px 6px),linear-gradient(90deg,#071016,#243746 42%,#78d8ff 48%,#1a2c38 56%,#071016)}.message{position:fixed;left:50%;bottom:30px;max-width:min(760px,calc(100vw - 44px));transform:translate(-50%);padding:11px 16px;border-radius:6px;color:#f8fcff;background:#04141c94;font-weight:800;text-align:center;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.eventDialog{position:fixed;left:50%;top:19%;z-index:14;transform:translate(-50%);max-width:min(560px,calc(100vw - 48px));padding:15px 20px;border:1px solid rgba(255,255,255,.36);border-radius:8px;color:#10242a;background:#fffae5f0;box-shadow:0 18px 60px #00000047;font-size:clamp(20px,3vw,34px);font-weight:900;line-height:1.25;text-align:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:dialogPop .18s ease-out}.eventDialog.info{background:#e6fbfff0}.eventDialog.warn{background:#fff5cdf5}.eventDialog.danger{color:#fff7ef;background:#bd362ded}.eventDialog.success{background:#daffe2f2}@keyframes dialogPop{0%{opacity:0;transform:translate(-50%) translateY(12px) scale(.96)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}.debugPanel{position:fixed;top:104px;left:22px;display:flex;gap:12px;padding:8px 10px;border-radius:6px;background:#00000073;font-family:Cascadia Mono,Consolas,monospace;font-size:12px}.cameraPanel{position:fixed;right:16px;bottom:16px;z-index:12;width:240px;overflow:hidden;border:1px solid rgba(255,255,255,.22);border-radius:8px;background:#041218c7;box-shadow:0 18px 60px #00000052}.cameraFrame{position:relative;width:240px;height:135px;background:#021016}.cameraFrame video,.cameraFrame canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:240px;height:135px}.cameraFrame video{object-fit:cover;transform:scaleX(-1)}.cameraStatus{display:flex;justify-content:space-between;gap:8px;padding:7px 9px;color:#ffffffc2;font-size:11px;font-weight:700}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;align-items:center;padding:9vh 7vw;pointer-events:auto}.resultOverlay{align-items:stretch;overflow:auto;padding:5vh 5vw}.resultPanel{width:min(1080px,94vw);margin:auto;padding:26px;border:1px solid rgba(255,255,255,.18);border-radius:8px;background:#05161bc7;box-shadow:0 24px 80px #0000005c;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.resultHeader{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:18px}.resultHeader h1{margin:4px 0 0;font-size:clamp(36px,7vw,76px);line-height:.95}.resultScore{display:grid;gap:3px;justify-items:end;min-width:120px}.resultScore span{color:#ffffffb8;font-weight:800}.resultScore strong{font-size:clamp(30px,5vw,56px);line-height:1}.fishDex{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px;margin:18px 0 22px}.fishDexCard{display:grid;grid-template-columns:112px 1fr;gap:13px;align-items:center;min-height:132px;padding:12px;border:1px solid rgba(255,255,255,.16);border-radius:8px;background:#ffffff14}.fishDexSprite{width:104px;height:76px;background-image:url(/assets/catch-sprites-DjxfkyW0.png);background-repeat:no-repeat;background-size:435% 325%;filter:saturate(.86) contrast(.96) drop-shadow(0 8px 12px rgba(0,0,0,.34))}.fishDexCard h2{margin:0 0 5px;font-size:22px;line-height:1.1}.fishDexCard p,.emptyDex{margin:0;color:#ffffffc2;font-size:13px;line-height:1.45}.fishDexMeta{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px}.fishDexMeta span{padding:4px 8px;border-radius:999px;color:#10242a;background:#ffe680eb;font-size:12px;font-weight:900}.emptyDex{max-width:620px;margin:16px 0 24px;font-size:17px}.titleBlock{width:min(620px,92vw)}.titleBlock.small{width:min(520px,92vw)}.titleBlock h1{margin:8px 0 14px;font-size:clamp(54px,11vw,118px);line-height:.9;letter-spacing:0;text-shadow:0 12px 50px rgba(0,0,0,.35)}.titleBlock.small h1{font-size:clamp(44px,8vw,86px)}.titleBlock p{max-width:500px;margin:0 0 24px;color:#ffffffd1;font-size:clamp(16px,2vw,21px);line-height:1.55;font-weight:650}@media (max-width: 720px){.hud{top:12px;left:12px;right:12px}.topBar{gap:12px}.stats{flex-direction:column;align-items:flex-end;gap:8px}.meter{width:132px}.attempts strong{font-size:30px}.skinPicker{top:auto;bottom:232px;left:12px;flex-direction:column;gap:6px}.skinButton{padding:6px 8px}.cameraPanel{width:168px}.cameraFrame,.cameraFrame video,.cameraFrame canvas{width:168px;height:94px}.cameraStatus{font-size:10px}.message{bottom:126px;font-size:13px}.eventDialog{top:22%;font-size:20px;padding:12px 14px}.resultOverlay{padding:18px 12px}.resultPanel{padding:16px}.resultHeader{align-items:flex-start}.fishDexCard{grid-template-columns:88px 1fr}.fishDexSprite{width:88px;height:60px}}@media (orientation: landscape) and (max-height: 540px){.hud{top:calc(8px + env(safe-area-inset-top,0px));left:calc(10px + env(safe-area-inset-left,0px));right:calc(10px + env(safe-area-inset-right,0px))}.topBar{gap:12px}.score{font-size:clamp(22px,7vh,34px)}.stats{gap:10px}.meter{width:108px}.attempts strong{font-size:24px}.skinPicker{top:auto;bottom:calc(10px + env(safe-area-inset-bottom,0px));left:calc(10px + env(safe-area-inset-left,0px));flex-direction:row;gap:6px}.skinPreview{width:46px;height:26px}.skinButton{padding:4px 6px;font-size:10px}.cameraPanel{width:132px;right:calc(8px + env(safe-area-inset-right,0px));bottom:calc(8px + env(safe-area-inset-bottom,0px))}.cameraFrame,.cameraFrame video,.cameraFrame canvas{width:132px;height:74px}.cameraStatus{font-size:9px;padding:4px 6px}.message{bottom:calc(10px + env(safe-area-inset-bottom,0px));max-width:min(58vw,520px);font-size:12px;padding:8px 12px}.eventDialog{top:14%;font-size:clamp(16px,3.4vh,24px);padding:10px 14px}.titleBlock h1,.titleBlock.small h1{font-size:clamp(32px,9vh,58px);margin:4px 0 8px}.titleBlock p{font-size:13px;margin-bottom:12px}.overlay{padding:4vh 6vw}.resultOverlay{padding:3vh 5vw}.resultPanel{padding:14px}}
