@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.relative{position:relative}.start{inset-inline-start:var(--spacing)}.block{display:block}.flex{display:flex}.hidden{display:none}.table{display:table}.flex-col{flex-direction:column}.items-center{align-items:center}.gap-4{gap:calc(var(--spacing) * 4)}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.py-20{padding-block:calc(var(--spacing) * 20)}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}:root{--forest:#315c43;--grass:#75a94f;--light-grass:#a7c96d;--lake:#4f9fa2;--lake-dark:#32757d;--cream:#f4e3b5;--wood:#6a4932;--yellow:#f2c85b;--success:#79b84a;--fail:#c85a4a;--ink:#2f2119}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{overscroll-behavior:none;width:100%;min-height:100%;color:var(--ink);background:#1d3f36;margin:0;font-family:Courier New,Courier,monospace;overflow:hidden}body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}button,.game-frame{touch-action:none}button{font:inherit}.page-shell{background:linear-gradient(#1f493bbd,#153029e6),repeating-linear-gradient(45deg,#315c43 0 12px,#2b533e 12px 24px);place-items:center;display:grid;position:fixed;inset:0}.game-frame{isolation:isolate;background:var(--lake);cursor:default;width:min(100vw,56.25dvh,540px);height:min(100dvh,177.78vw,960px);min-height:520px;position:relative;overflow:hidden;box-shadow:0 0 0 4px #1f3228,0 18px 60px #04181273}.game-canvas{width:100%;height:100%;image-rendering:pixelated;image-rendering:crisp-edges;display:block;position:absolute;inset:0}.topbar{z-index:4;top:max(13px, env(safe-area-inset-top));pointer-events:none;grid-template-columns:48px 1fr 48px;align-items:center;gap:10px;display:grid;position:absolute;left:14px;right:14px}.topbar>*{pointer-events:auto}.pixel-icon,.title-plaque,.wood-button,.pixel-card,.status-chip{image-rendering:pixelated;border-radius:0}.pixel-icon{color:#fff0b8;text-shadow:2px 2px #322019;cursor:pointer;background:url(/assets/fishing/individual/icon-button-v2.png) 50%/100% 100% no-repeat;border:0;outline:0;place-items:center;width:46px;height:46px;padding:0;font-size:20px;font-weight:1000;line-height:1;display:grid;box-shadow:4px 5px #271b1573}.pixel-icon:active:not(:disabled),.wood-button:active{transform:translate(2px,3px);box-shadow:inset 0 3px #6c452b,1px 2px #271b15b8}.pixel-icon:disabled{opacity:.55;cursor:default}.title-plaque{color:#fff0b8;background:url(/assets/fishing/individual/title-plaque-v2.png) 50%/100% 100% no-repeat;border:0;outline:0;justify-content:center;justify-self:center;align-items:center;gap:8px;min-width:250px;min-height:66px;padding:9px 14px 10px;display:flex;box-shadow:5px 6px #2b1d1673}.title-plaque h1{letter-spacing:.12em;text-shadow:3px 3px #2f2119;white-space:nowrap;margin:0;font-size:clamp(21px,5vw,30px);font-weight:1000;line-height:1}.title-leaf{color:var(--light-grass);text-shadow:2px 2px #2f2119;font-size:11px}.bottom-action{z-index:5;left:50%;bottom:max(28px, calc(env(safe-area-inset-bottom) + 18px));flex-direction:column;align-items:center;gap:10px;width:min(78%,340px);display:flex;position:absolute;transform:translate(-50%)}.bottom-action p{color:#f7edcd;letter-spacing:.08em;text-shadow:2px 2px #274736;background:#274d3dc7;margin:0;padding:6px 12px;font-size:13px;font-weight:800}.wood-button{color:#fff0b8;letter-spacing:.12em;text-shadow:3px 3px #352219;cursor:pointer;background:url(/assets/fishing/individual/primary-button-v2.png) 50%/100% 100% no-repeat;border:0;outline:0;min-width:250px;min-height:63px;padding:12px 26px;font-size:21px;font-weight:1000;position:relative;box-shadow:inset 0 5px #f4c97138,6px 7px #271c14ab}.status-chip{z-index:5;left:50%;bottom:max(25px, calc(env(safe-area-inset-bottom) + 15px));color:#35271e;letter-spacing:.08em;text-align:center;pointer-events:none;background:url(/assets/fishing/individual/instruction-banner-v2.png) 50%/100% 100% no-repeat;border:0;outline:0;width:max-content;max-width:calc(100% - 36px);padding:11px 20px;font-size:clamp(14px,3.8vw,19px);font-weight:1000;position:absolute;transform:translate(-50%);box-shadow:5px 6px #2e251ba6}.status-chip.urgent{outline-color:var(--yellow);color:#a9392e;background:#fff0b8;border-color:#6d251e;font-size:22px;animation:.36s steps(2,jump-none) infinite urgent-bounce;bottom:18%}.modal-scrim{z-index:10;-webkit-backdrop-filter:none;backdrop-filter:none;background:#18382f94;place-items:center;padding:24px;display:grid;position:absolute;inset:0}.pixel-card{text-align:center;background:url(/assets/fishing/individual/result-card-v2.png) 50%/100% 100% no-repeat;border:0;outline:0;width:min(88%,370px);padding:42px 24px 26px;position:relative;box-shadow:10px 12px #1f2a206b}.pixel-card:before,.pixel-card:after{content:"";background:#b88a50;width:8px;height:8px;position:absolute;top:10px}.pixel-card:before{left:12px}.pixel-card:after{right:12px}.pixel-card h2{color:#3a291f;letter-spacing:.08em;margin:10px 0 8px;font-size:26px}.pixel-card p{color:#6a4932;max-width:260px;margin:12px auto 22px;font-size:14px;font-weight:700;line-height:1.7}.pixel-card .wood-button{min-width:180px;min-height:52px;font-size:18px}.ribbon{color:#fff7d7;letter-spacing:.12em;text-shadow:3px 3px #3b291e;border:4px solid #3b291e;min-width:190px;padding:10px 24px;font-size:23px;font-weight:1000;position:absolute;top:-25px;left:50%;transform:translate(-50%);box-shadow:4px 5px #3523187a}.success-ribbon{background:var(--success)}.fail-ribbon{background:var(--fail)}.fish-portrait{background-color:#d5dc86;border:5px solid #6a4932;width:154px;height:104px;margin:7px auto 0;position:relative;box-shadow:inset 0 0 0 5px #eef0b0}.fish-sheet{image-rendering:pixelated;background-position:50%;background-repeat:no-repeat;background-size:contain}.fish-sheet-0{background-image:url(/assets/fishing/individual/fish-crucian-v2.png)}.fish-sheet-1{background-image:url(/assets/fishing/individual/fish-perch-v2.png)}.fish-sheet-2{background-image:url(/assets/fishing/individual/fish-trout-v2.png)}.fish-sheet-0,.fish-sheet-1,.fish-sheet-2{background-position:50%;background-repeat:no-repeat;background-size:contain}.length-badge{color:#315c43;background:#fff3c7;border:3px solid #6a4932;padding:5px 12px;font-size:17px;font-weight:1000;display:inline-block}.empty-hook{color:#32757d;height:76px;font-family:Georgia,serif;font-size:82px;font-weight:900;line-height:.85;transform:rotate(26deg)}.tiny-label{color:#6a4932;font-size:13px;font-weight:800}.pause-card{padding-top:32px}.pause-card h2{margin-bottom:24px}.sparkles{z-index:12;color:#fff3a0;text-align:center;text-shadow:4px 4px #b6783e;width:92%;font-size:32px;font-weight:1000;animation:.8s steps(2,jump-none) infinite sparkle;position:absolute;top:18%;left:50%;transform:translate(-50%)}.result-card{animation:.38s steps(5,end) both card-in}.portrait-only{display:none}@keyframes urgent-bounce{50%{transform:translate(-50%,-8px)scale(1.04)}}@keyframes sparkle{50%{opacity:.45;transform:translate(-50%)scale(1.08)}}@keyframes card-in{0%{opacity:0;transform:translateY(28px)scale(.86)}to{opacity:1;transform:translateY(0)scale(1)}}@media (max-height:650px){.topbar{transform-origin:top;left:5px;right:5px;transform:scale(.86)}.status-chip{font-size:13px}.pixel-card{transform:scale(.88)}.result-card{animation:none}}@media (orientation:landscape) and (max-height:600px){.game-frame{width:100vw;max-width:none;height:100dvh}.game-frame>:not(.portrait-only){visibility:hidden}.portrait-only{z-index:50;color:#f4e3b5;text-align:center;background:#315c43;flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex;position:absolute;inset:0}.portrait-only strong{letter-spacing:.08em;font-size:24px}.portrait-only span{color:#b9d88a;font-size:13px}.rotate-phone{font-size:58px;animation:1.3s steps(3,end) infinite phone-rotate;transform:rotate(-90deg)}}@keyframes phone-rotate{50%{transform:rotate(0)}}@media (prefers-reduced-motion:reduce){*,:before,:after{animation-duration:.01ms!important;animation-iteration-count:1!important}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}
