/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@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{.relative{position:relative}.start{inset-inline-start:var(--spacing)}.table{display:table}}:root{--ink:#31271f;--coral:#d67d5c;--board:#bdb1a1;--gap:clamp(7px, 2vw, 11px)}*{box-sizing:border-box}html,body{min-height:100%}body{color:var(--ink);overscroll-behavior:none;background:#f8ead7;margin:0;font-family:Trebuchet MS,PingFang SC,Microsoft YaHei,sans-serif}button{font:inherit}.game-shell{isolation:isolate;background:#f8ead7 url(/assets/paper-collage-bg.png) 50%/cover fixed;min-height:100svh;position:relative;overflow:hidden}.paper-noise{z-index:-1;pointer-events:none;opacity:.24;mix-blend-mode:multiply;background-image:repeating-linear-gradient(0deg,#7754380d 0 1px,#0000 1px 5px),repeating-linear-gradient(90deg,#77543809 0 1px,#0000 1px 7px);position:fixed;inset:0}.game{width:min(100%,500px);min-height:100svh;padding:max(20px, env(safe-area-inset-top)) 14px max(22px, env(safe-area-inset-bottom));flex-direction:column;margin:0 auto;display:flex}.topbar{justify-content:space-between;align-items:center;gap:12px;padding:0 2px;display:flex}.brand{align-items:center;gap:11px;min-width:0;display:flex}.brand h1{white-space:nowrap;letter-spacing:-2px;text-shadow:0 1px #ffffffb3;margin:0;font-size:clamp(25px,7vw,35px);font-weight:950}.brand-mark{border-radius:14px;flex:none;grid-template-columns:1fr 1fr;width:66px;height:66px;display:grid;overflow:hidden;transform:rotate(-1deg);box-shadow:0 4px #533a271f}.brand-mark span{color:#fff8ec;text-shadow:1px 2px #673b21;background:#f47712;place-items:center;font-family:Georgia,serif;font-size:28px;font-weight:900;line-height:1;display:grid}.brand-mark span:nth-child(2),.brand-mark span:nth-child(3){color:#633c24;text-shadow:1px 1px #fff4dc;background:#e4d8c8}.scores{flex:1;grid-template-columns:repeat(2,minmax(82px,1fr));gap:9px;max-width:230px;display:grid}.score-box{text-align:center;color:#fff8ef;background:var(--coral);border-radius:13px;min-width:0;padding:7px 8px 6px;box-shadow:inset 0 1px #fff3}.score-box span{margin-bottom:4px;font-size:clamp(13px,3.6vw,18px);line-height:1;display:block}.score-box strong{color:#7d3f30;background:#fff8eb;border-radius:10px;min-height:31px;padding:4px 3px 2px;font-size:clamp(19px,5.5vw,28px);font-weight:500;line-height:1;display:block;overflow:hidden}.toolbar{justify-content:space-between;align-items:center;margin:16px 3px 13px;display:flex}.back-button,.tool{cursor:pointer;touch-action:manipulation;border:4px solid #fff9ee;transition:transform .13s,filter .13s;position:relative;box-shadow:0 6px #52473d4d,0 9px 15px #6b4e3521}.back-button:active,.tool:active{transform:translateY(4px);box-shadow:0 2px #52473d4d}.back-button{background:#d17f60;border:0;border-radius:11px;width:54px;height:54px;box-shadow:0 5px #a39486,0 8px 14px #533c2b24}.back-button i{border-bottom:7px solid #fff;border-left:7px solid #fff;border-radius:3px;width:23px;height:23px;position:absolute;top:14px;left:17px;transform:rotate(45deg)}.tools{gap:13px;display:flex}.tool{background:#b1624d;border-radius:13px;width:58px;height:58px}.tool:disabled{opacity:.42;cursor:not-allowed;filter:grayscale(.4)}.tool.wand{background:#d08a08}.tool.hammer{background:#f04b31}.tool.active{outline-offset:2px;filter:saturate(1.2)brightness(1.08);outline:4px solid #7836ca;transform:translateY(3px);box-shadow:0 3px #52473d4d,0 0 0 7px #7836ca21}.tool-state{color:#fff;background:#7836ca;border:2px solid #fff9ee;border-radius:999px;place-items:center;min-width:20px;height:20px;font-size:11px;font-weight:900;line-height:1;display:none;position:absolute;top:-10px;right:-9px;box-shadow:0 2px 4px #3d234840}.tool.active .tool-state{display:grid}.undo i{border:7px solid #eadccf;border-color:#eadccf #eadccf #0000 #0000;border-radius:50%;width:25px;height:21px;position:absolute;top:18px;left:18px;transform:rotate(-30deg)}.undo i:before{content:"";border-top:9px solid #0000;border-bottom:9px solid #0000;border-right:14px solid #eadccf;width:0;height:0;position:absolute;top:-7px;left:-12px;transform:rotate(-28deg)}.wand i{border:2px solid #fff;border-radius:3px;width:37px;height:8px;position:absolute;top:29px;left:10px;transform:rotate(45deg)}.wand b,.wand em{background:#fff;width:8px;height:8px;position:absolute;transform:rotate(45deg)}.wand b{top:12px;left:14px}.wand em{width:5px;height:5px;top:13px;right:10px}.hammer i{background:#fff;border-radius:5px;width:28px;height:17px;position:absolute;top:12px;left:10px;transform:rotate(-38deg)}.hammer b{background:#fff;border-radius:4px;width:10px;height:33px;position:absolute;top:19px;left:29px;transform:rotate(-38deg)}.board{--size:min(calc(100vw - 28px), 472px);width:var(--size);height:var(--size);padding:var(--gap);background:var(--board);touch-action:none;-webkit-user-select:none;user-select:none;border-radius:3px;align-self:center;position:relative;box-shadow:0 9px 22px #513c2c26}.board-grid{inset:var(--gap);gap:var(--gap);grid-template-columns:repeat(4,1fr);display:grid;position:absolute}.cell{background:#ddd3c6b8;border-radius:9px;box-shadow:inset 0 1px #ffffff38}.tile{--cell:calc((var(--size) - var(--gap) * 5) / 4);z-index:2;width:var(--cell);height:var(--cell);left:calc(var(--gap) + var(--col) * (var(--cell) + var(--gap)));top:calc(var(--gap) + var(--row) * (var(--cell) + var(--gap)));color:#6f665d;background:#eee7dd;border:0;border-radius:9px;place-items:center;font-size:clamp(34px,12vw,61px);font-weight:850;line-height:1;transition:left .115s ease-out,top .115s ease-out,filter .12s;display:grid;position:absolute;box-shadow:inset 0 1px #ffffff73,0 2px 2px #59483814}.board.hammer-mode{box-shadow:0 0 0 5px #7836ca38,0 9px 22px #513c2c26}.board.hammer-mode .cell{filter:brightness(.95)}.board.hammer-mode .tile{cursor:crosshair;outline-offset:-5px;outline:3px solid #ffffffe6;animation:.7s ease-in-out infinite alternate selectable}.hammer-prompt{z-index:6;pointer-events:none;color:#fff;background:#5d2f7de0;border:2px solid #ffffffe6;border-radius:999px;width:max-content;max-width:calc(100% - 28px);padding:7px 13px;font-size:13px;font-weight:800;animation:.18s ease-out prompt-in;position:absolute;bottom:14px;left:50%;transform:translate(-50%);box-shadow:0 5px 13px #472d483d}.tile.fresh{animation:.18s cubic-bezier(.2,.8,.25,1.3) spawn}.tile.merged{z-index:3;animation:.23s cubic-bezier(.18,.85,.28,1.35) merge}.tile.value-4{color:#7c5540;background:#e8d9c4}.tile.value-8{color:#fff9ee;background:#efad73}.tile.value-16{color:#fff;background:#ed9365}.tile.value-32{color:#fff;background:#f16e50}.tile.value-64{color:#fff;background:#e84e35}.tile.value-128{color:#fff;background:#e6b24c;font-size:clamp(29px,10vw,52px)}.tile.value-256{color:#fff;background:#dda032;font-size:clamp(29px,10vw,52px)}.tile.value-512{color:#fff;background:#cf8d24;font-size:clamp(29px,10vw,52px)}.tile.value-1024{color:#fff;background:#a96e33;font-size:clamp(24px,8.5vw,44px)}.tile.value-2048,.tile.value-super{color:#fff;background:linear-gradient(145deg,#8740bf,#e14e7c);font-size:clamp(24px,8.5vw,44px);box-shadow:0 0 19px #cd496f8c}.status{justify-content:center;min-height:28px;margin:13px 0 5px;display:flex}.status span{color:#755341;background:#fff9eebd;border-radius:999px;align-items:center;min-height:27px;padding:4px 13px;font-size:14px;display:inline-flex;box-shadow:0 2px 9px #63473314}.instructions{color:#806a59;border-top:1px dashed #65463045;gap:10px;margin-top:auto;padding:11px 14px;font-size:13px;line-height:1.5;display:flex}.instructions b{color:#be603f;flex:none}.modal-backdrop{z-index:20;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#45312375;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal{text-align:center;background:#fff6e8;border:5px solid #ffffffd9;border-radius:24px;width:min(100%,350px);padding:28px 24px 22px;animation:.22s ease-out modal-in;box-shadow:0 20px 60px #3e2a1c47}.modal-mark{color:#fff;background:#ed7654;border:4px solid #fff8ee;border-radius:18px;place-items:center;width:72px;height:72px;margin:-53px auto 11px;font-size:20px;font-weight:900;display:grid;transform:rotate(-3deg);box-shadow:0 7px #533c2b2e}.modal h2{margin:10px 0 7px;font-size:28px}.modal p{color:#756251;margin:0 0 19px;line-height:1.55}.modal-actions{justify-content:center;gap:10px;display:flex}.modal-actions button{cursor:pointer;border:0;border-radius:12px;flex:1;min-height:44px;font-weight:800}.modal-actions .secondary{color:#8d634e;background:#eadfd2}.modal-actions .primary{color:#fff;background:#dc7655;box-shadow:0 4px #a6533c}@keyframes spawn{0%{opacity:0;transform:scale(.18)}to{opacity:1;transform:scale(1)}}@keyframes merge{0%{transform:scale(.6)}60%{transform:scale(1.18)}to{transform:scale(1)}}@keyframes selectable{to{filter:brightness(1.12);transform:scale(.965)}}@keyframes prompt-in{0%{opacity:0;transform:translate(-50%,8px)scale(.94)}}@keyframes modal-in{0%{opacity:0;transform:translateY(18px)scale(.94)}}@media (width<=390px){.game{padding-left:10px;padding-right:10px}.brand-mark{border-radius:11px;width:55px;height:55px}.brand-mark span{font-size:23px}.brand h1{font-size:25px}.scores{gap:6px}.score-box{padding-left:5px;padding-right:5px}.board{--size:calc(100vw - 20px)}.toolbar{margin-top:12px;margin-bottom:10px}.tool{width:52px;height:52px}.tools{gap:8px}}@media (width>=700px){.game-shell{padding:22px 0}.game{background:#fff9ef52;border:1px solid #815b3f1f;border-radius:28px;min-height:calc(100svh - 44px);padding:25px 20px;box-shadow:0 24px 80px #61432d1f}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
