:root{--bg:#e8eef5;--ink:#131923;--muted:#6b7786;--line:rgba(19,25,35,.14);--accent:#f26f4a;--accent-rgb:242,111,74;--accent-ink:#fff;--panel:rgba(255,255,255,.58);--panel-2:rgba(241,246,252,.7);--blue:#3868ed;--green:#3c7d51;--ease:cubic-bezier(.16,1,.3,1);--spring:cubic-bezier(.22,1.45,.4,1);--mono:ui-monospace,SFMono-Regular,Consolas,monospace;--radius:24px}
*{box-sizing:border-box}body,h1,h2,p{margin:0}button,input,a{-webkit-tap-highlight-color:transparent}html{min-width:320px;background:var(--bg)}body{font:14px/1.5 "Segoe UI",Arial,"PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--bg);min-width:320px;transition:background .45s,color .45s}button,input{font:inherit;color:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button{border:0;background:none}a{color:inherit;text-decoration:none}button:disabled{cursor:default}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--blue);outline-offset:5px}svg{display:block;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}[hidden]{display:none!important}::selection{background:rgba(var(--accent-rgb),.3)}.svg-defs{position:absolute;width:0;height:0;overflow:hidden}.ambient{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:0}.ambient-orb{position:absolute;width:68vw;height:68vw;right:-22vw;top:-20vw;background:radial-gradient(circle,rgba(var(--accent-rgb),.12),transparent 64%);animation:orb-drift 18s ease-in-out infinite alternate}.field-lines{position:absolute;inset:0;width:100%;height:100%;color:var(--ink);opacity:.065;animation:line-drift 24s ease-in-out infinite alternate}.ambient-plus{position:absolute;font:36px var(--mono);color:var(--muted);opacity:.3}.plus-one{top:29%;left:2%}.plus-two{bottom:12%;right:3%}.topbar,.page{position:relative;z-index:1}.topbar{max-width:1560px;margin:auto;height:88px;padding:0 48px;display:flex;justify-content:space-between;align-items:center;gap:24px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:baseline;font-size:31px;font-weight:850;letter-spacing:-2px;gap:4px}.brand-dot{width:7px;height:7px;background:var(--accent);border-radius:50%}.brand-section{font:11px var(--mono);color:var(--muted);letter-spacing:1px;margin-left:14px}.topnav{display:flex;align-items:center;gap:4px;border:1px solid var(--line);padding:4px;border-radius:30px;background:var(--panel);backdrop-filter:blur(16px)}.topnav a{display:flex;align-items:center;gap:9px;padding:9px 19px;border-radius:22px;font-size:12px;transition:background .25s,transform .3s}.topnav a:hover{transform:translateY(-2px)}.topnav [aria-current]{background:var(--ink);color:var(--bg)}.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);flex-shrink:0}.top-actions{display:flex;align-items:center;gap:10px}.icon-button{position:relative;display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--line);border-radius:50%;transition:transform .35s var(--spring),background .2s}.icon-button:hover{background:var(--panel);transform:rotate(-8deg)}.icon-button svg{width:17px;height:17px}.sound-slash{position:absolute;width:23px;height:1px;transform:rotate(-48deg);background:var(--ink);box-shadow:0 0 0 2px var(--bg)}[aria-pressed=true]>.sound-slash{display:none}.theme-button{display:flex;align-items:center;gap:8px;font-size:11px;padding:10px 13px;border:1px solid var(--line);border-radius:24px;background:var(--panel)}.theme-button svg{width:16px;height:16px;transition:transform .6s}.theme-button:hover svg{transform:rotate(90deg)}.home-button{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--accent);color:var(--accent-ink)}.home-button svg{transform:rotate(-45deg)}.page{max-width:1464px;margin:auto;padding:34px 48px 0}.hero{display:flex;justify-content:space-between;align-items:center;gap:30px;margin-bottom:32px}.hero-copy{min-width:0;flex:1}.eyebrow{display:flex;gap:10px;align-items:center;font:10px var(--mono);letter-spacing:1.5px}.edition{margin-left:18px;color:var(--muted);letter-spacing:.5px}h1{font-family:"Arial Black","Segoe UI",sans-serif;font-size:clamp(42px,6.1vw,87px);font-weight:900;line-height:.99;letter-spacing:-.075em;margin:19px 0 22px}.hero-fixed,.typing-line{display:block}.hero-fixed{color:var(--muted);opacity:.5}.typing-line{min-height:1.05em;white-space:nowrap;padding-right:.12em}.type-caret{display:inline-block;width:.035em;height:.79em;margin-left:.07em;background:var(--accent);animation:caret 1s steps(1) infinite;vertical-align:-.02em}.hero-bottom{display:flex;align-items:center;gap:38px}.hero-bottom p{font-size:13px;line-height:1.8}.hero-bottom p span{color:var(--muted);font-size:12px}.random-button{display:flex;align-items:center;gap:10px;font-size:12px;padding:13px 17px;border-radius:25px;background:var(--ink);color:var(--bg);transition:transform .3s var(--spring),box-shadow .3s}.random-button svg{width:17px;height:17px}.random-button>span{margin-left:20px}.random-button:hover{transform:translateY(-4px);box-shadow:0 10px 24px #0002}.random-button:active{transform:scale(.95)}.hero-note{width:180px;display:grid;gap:13px;justify-items:start;transform:rotate(6deg);margin-right:20px;border-left:1px solid var(--line);padding-left:26px}.note-orbit{font-size:65px;line-height:1;color:var(--accent);animation:slow-spin 32s linear infinite}.hero-note>span:nth-child(2){font:600 15px/1.15 var(--mono);letter-spacing:-.8px}.hero-note small{color:var(--muted);font-size:11px;line-height:1.7}.play-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:25px;align-items:start}.collection{min-width:0}.collection-toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:17px}.filter-tabs{display:flex;align-items:center;gap:3px;flex-wrap:wrap}.filter{font-size:11px;white-space:nowrap;padding:9px 13px;border:1px solid transparent;border-radius:22px;transition:background .25s,transform .25s}.filter:hover{background:var(--panel)}.filter.active{border-color:var(--line);background:var(--panel);box-shadow:0 3px 8px #00000004}.filter>span:not(.favorite-filter span){font:9px var(--mono);margin-left:5px;color:var(--muted)}.favorite-filter{display:flex;align-items:center;gap:5px}.favorite-filter svg{width:13px;height:13px}.search{display:flex;align-items:center;gap:6px;max-width:160px;border-bottom:1px solid var(--line);padding:8px 0;color:var(--muted)}.search svg{width:15px;height:15px}.search input{min-width:0;width:100%;border:0;background:none;font-size:11px;outline:none}.search input::placeholder{color:var(--muted)}.game-grid{display:grid;grid-template-columns:1.08fr 1fr;gap:16px}.game-card{position:relative;min-width:0;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--panel);transition:transform .45s var(--ease),box-shadow .45s,border-color .4s}.game-card:hover{transform:translateY(-5px);box-shadow:0 18px 38px rgba(0,0,0,.08);border-color:rgba(var(--accent-rgb),.45)}.game-launch{display:flex;flex-direction:column;width:100%;height:100%;padding:0;text-align:left}.featured{grid-row:span 2;background:#f57b58;color:#2b201c;isolation:isolate}.featured:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 40% 20%,#ffab8333,transparent 60%);pointer-events:none}.favorite-button{position:absolute;right:15px;top:13px;z-index:3;width:31px;height:31px;display:grid;place-items:center;border-radius:50%;border:1px solid currentColor;background:var(--panel);color:var(--ink);opacity:.8;transition:transform .3s var(--spring),opacity .3s}.favorite-button svg{width:14px;height:14px}.favorite-button:hover{transform:rotate(-12deg) scale(1.1);opacity:1}.favorite-button[aria-pressed=true] svg{fill:var(--accent);stroke:var(--accent)}.feature-top{display:flex;align-items:center;justify-content:space-between;width:100%;padding:22px 61px 0 24px}.card-tag{font:9px var(--mono);letter-spacing:1px}.game-number{font:10px var(--mono);opacity:.6}.feature-art{position:relative;width:100%;flex:1;min-height:245px;display:grid;place-items:center;perspective:650px}.hero-tile{position:relative;width:142px;height:159px;border:1px solid #ffffff66;border-radius:27px;background:linear-gradient(145deg,#fff9eb,#f8d3ac);box-shadow:9px 13px 0 #aa43213b,20px 30px 50px #82341d24,inset 0 2px 1px #fffb;display:grid;place-items:center;transform:rotate(-13deg) rotateY(-12deg);animation:tile-float 6s ease-in-out infinite}.hero-tile>span{font:900 65px/.83 "Arial Black",sans-serif;letter-spacing:-5px;color:#a8442b;position:relative}.tile-spark{position:absolute;right:-23px;bottom:-5px;font-size:31px;color:#de6844}.tile-orbit{position:absolute;inset:30px 12%;border:1px solid #6c281d26;border-radius:50%;transform:rotate(-25deg)}.orbit-two{inset:11px 22%;transform:rotate(35deg)}.float-number{position:absolute;display:grid;place-items:center;width:46px;height:46px;border-radius:12px;background:#fff2d8;color:#a8442b;font:700 21px var(--mono);box-shadow:4px 6px 0 #9f472d25;animation:small-float 5s ease-in-out infinite}.number-small{top:32px;left:18%;transform:rotate(-8deg);background:#f9b294}.number-mid{right:12%;top:47px;transform:rotate(16deg);animation-delay:-2s}.number-bottom{bottom:17px;right:19%;transform:rotate(9deg);width:56px;animation-delay:-3s}.art-plus{position:absolute;left:12%;bottom:30px;font:36px var(--mono);opacity:.3}.card-info{display:flex;align-items:flex-end;justify-content:space-between;width:100%;padding:12px 24px 24px;gap:12px}.micro-label{font:8px var(--mono);letter-spacing:1px;color:var(--muted)}.featured .micro-label{color:#7f3a2d}.card-info h2{font-size:40px;letter-spacing:-2px;line-height:1.2;margin:7px 0 4px}.feature-title-note{display:block;font-size:16px;letter-spacing:0;margin:7px 0}.card-info p{font-size:11px;opacity:.7}.card-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:16px;font-size:9px;color:var(--muted)}.card-meta>span+span:before{content:"·";margin-right:6px}.featured .card-meta{color:#7f3a2d}.play-circle{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:#2b201c;color:#fff1e3;flex-shrink:0;transition:transform .35s var(--spring)}.featured:hover .play-circle{transform:rotate(-35deg)}.mini-art{position:relative;height:132px;width:100%;overflow:hidden}.mini-index{position:absolute;top:18px;left:19px;font:8px var(--mono);letter-spacing:1px;z-index:1;opacity:.6}.snake-art{color:#254c36;background:linear-gradient(120deg,#d7e9d5,#e7f0d6)}.snake-art svg{width:100%;height:100%;stroke:none}.snake-path{fill:none;stroke:#43634b;stroke-width:22;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:240;stroke-dashoffset:0}.snake-card:hover .snake-path{animation:snake-draw .8s var(--ease)}.snake-food{animation:food-pulse 2.8s ease-in-out infinite}.mini-card-info{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 19px 0}.mini-card-info h2{font-size:18px;font-weight:650;letter-spacing:-.5px;margin:4px 0}.mini-card-info h2>span{font:8px var(--mono);color:var(--muted);margin-left:6px;letter-spacing:1px}.mini-card-info p{font-size:10px;color:var(--muted)}.small-arrow{display:grid;place-items:center;border:1px solid var(--line);width:30px;height:30px;border-radius:50%;font-size:18px;transition:transform .3s var(--spring)}.game-card:hover .small-arrow{transform:rotate(45deg)}.game-launch>.card-meta{padding:0 19px 17px;margin-top:10px}.memory-art{background:linear-gradient(130deg,#d8d6ef,#e9e3f3)}.memory-stack{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding-top:22px}.memory-stack>span{display:grid;place-items:center;width:60px;height:78px;border-radius:10px;color:#6555a0;border:1px solid #fff8;background:#f7f2ff;font-size:35px;box-shadow:3px 6px 9px #44386c20;transform:rotate(-17deg);transition:transform .6s var(--spring)}.memory-stack>span+span{margin-left:-10px}.memory-stack>span:nth-child(2){transform:rotate(3deg) translateY(-5px);background:#8574bc;color:#e3dbee;font:bold 31px Georgia,serif}.memory-stack>span:nth-child(3){transform:rotate(18deg)}.memory-card:hover .memory-stack>span:first-child{transform:rotate(-26deg) translateX(-8px)}.memory-card:hover .memory-stack>span:nth-child(3){transform:rotate(28deg) translateX(8px)}.reaction-card{grid-column:span 2}.reaction-card .game-launch{position:relative;min-height:132px;justify-content:center;padding:10px 160px 10px 0}.reaction-card .mini-card-info{padding-top:8px}.reaction-card .card-meta{margin-top:8px;padding-bottom:8px}.reaction-art{position:absolute;inset:0 0 0 auto;width:160px;background:linear-gradient(105deg,transparent,rgba(var(--accent-rgb),.1))}.reaction-art .mini-index{display:none}.radar{position:absolute;inset:0;display:grid;place-items:center;color:var(--accent)}.radar i{position:absolute;width:90px;height:90px;border:1px solid currentColor;opacity:.13;border-radius:50%;animation:radar-ring 4s ease-out infinite}.radar i:nth-child(2){width:65px;height:65px;animation-delay:1s}.radar i:nth-child(3){width:40px;height:40px;animation-delay:2s}.radar>span{font-size:46px;transform:rotate(12deg)}.side-panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);padding:21px;backdrop-filter:blur(18px);margin-top:54px}.side-heading{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:600}.side-heading svg{width:19px;height:19px;color:var(--muted)}.session-time{padding:22px 0 18px;border-bottom:1px solid var(--line);display:flex;flex-direction:column}.session-time>.micro-label{font-size:7px;letter-spacing:.5px}.session-time strong{font:500 48px/1.3 var(--mono);letter-spacing:-4px;font-variant-numeric:tabular-nums}.session-time>span:last-child{font-size:9px;color:var(--muted)}.side-section{margin-top:21px}.side-section h2{font-size:11px;font-weight:550;display:flex;align-items:center;gap:7px;margin:0 0 13px}.side-section h2 svg{width:13px;height:13px;color:var(--muted)}.side-empty{font-size:11px;color:var(--muted);line-height:1.9;padding:4px 0}.recent-list{display:grid;gap:8px}.recent-game{display:flex;align-items:center;gap:10px;text-align:left;width:100%;padding:6px 0;border-radius:10px;transition:transform .3s}.recent-game:hover{transform:translateX(4px)}.recent-icon{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;font-size:15px;font-weight:700;background:rgba(var(--accent-rgb),.15);color:var(--accent)}.recent-game>span:nth-child(2){flex:1;font-size:11px}.recent-game small{display:block;font-size:8px;color:var(--muted);margin-top:1px}.recent-game>span:last-child{font-size:17px;color:var(--muted)}.record-list{display:grid;gap:10px}.record-line{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);gap:10px}.record-line strong{font:500 10px var(--mono);color:var(--ink)}.local-note{margin-top:14px;color:var(--muted);font-size:9px}.side-surprise{display:flex;align-items:center;width:100%;border-top:1px solid var(--line);margin-top:22px;padding:17px 0 0;gap:10px;text-align:left;font-size:10px}.surprise-icon{font-size:30px;line-height:1;color:var(--accent)}.side-surprise>span:nth-child(2){flex:1}.side-surprise small{display:block;font-size:8px;color:var(--muted);margin-top:3px}.side-surprise svg{width:15px;height:15px}.footer{display:flex;justify-content:space-between;align-items:center;gap:15px;border-top:1px solid var(--line);margin-top:28px;padding:20px 0 23px;font-size:9px;color:var(--muted)}.footer>span:first-child{display:flex;align-items:center;gap:7px}.footer>span:nth-child(2){font:8px var(--mono);letter-spacing:1px}.footer a:hover{color:var(--accent)}.empty-state{text-align:center;padding:80px 20px;min-height:340px;border:1px dashed var(--line);border-radius:var(--radius)}.empty-state>svg{margin:0 auto 20px;width:40px;height:40px;color:var(--muted)}.empty-state h2{font-size:20px;margin-bottom:8px}.empty-state p{color:var(--muted);font-size:12px}.text-button{margin-top:20px;color:var(--accent);font-size:12px}
.game-dialog{padding:0;width:min(650px,calc(100vw - 24px));max-height:calc(100dvh - 24px);border:1px solid var(--line);border-radius:26px;color:var(--ink);background:var(--bg);box-shadow:0 35px 140px #0005;overflow:auto;overscroll-behavior:contain}.game-dialog::backdrop{background:rgba(12,18,27,.53);backdrop-filter:blur(12px)}.game-dialog[open]{animation:dialog-in .4s var(--ease)}body.game-open{overflow:hidden}.game-window{padding:21px 26px}.game-window-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:17px;border-bottom:1px solid var(--line)}.game-window-title{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.game-window-title h2{font-size:20px;letter-spacing:-.7px}.game-window-title .micro-label{font-size:8px}.window-actions{display:flex;gap:7px}.close-game:hover{background:rgba(var(--accent-rgb),.2)}.game-status-bar{display:flex;align-items:center;gap:25px;padding:17px 0}.game-status-bar>div{display:flex;flex-direction:column;gap:2px}.game-status-bar span{font-size:9px;color:var(--muted)}.game-status-bar strong{font:600 24px var(--mono);letter-spacing:-1px}.restart-button{margin-left:auto;font-size:11px;padding:10px 14px;border:1px solid var(--line);border-radius:20px;transition:background .2s}.restart-button:hover{background:var(--panel)}.game-stage{width:min(100%,398px);margin:0 auto;position:relative;touch-action:none}.game-message{min-height:43px;display:flex;align-items:center;justify-content:center;text-align:center;font-size:12px;font-weight:550;gap:10px;padding:10px 0}.game-message.win{color:var(--green)}.game-help{display:flex;justify-content:space-between;gap:15px;align-items:start;border-top:1px solid var(--line);padding-top:14px;font-size:9px;color:var(--muted)}.game-help p{max-width:75%;line-height:1.7}.game-help>span{white-space:nowrap}kbd{font:9px var(--mono);border:1px solid var(--line);padding:2px 4px;border-radius:4px}.game-dialog:fullscreen{width:100vw;max-height:100dvh;border-radius:0;display:grid;place-items:center}.game-dialog:fullscreen .game-window{width:min(650px,100vw)}.board-2048{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;padding:9px;background:var(--line);border-radius:17px;aspect-ratio:1;outline:none}.cell-2048{display:grid;place-items:center;border-radius:11px;background:var(--panel);font:750 clamp(22px,5vw,33px)/1 var(--mono);letter-spacing:-2px;color:var(--ink);font-variant-numeric:tabular-nums;min-width:0}.cell-2048.filled{background:var(--tile-bg);color:var(--tile-ink,#493429)}.cell-2048.spawn{animation:tile-spawn .23s var(--spring)}.cell-2048.merge{animation:tile-merge .25s var(--spring)}.board-controls{display:flex;justify-content:center;gap:8px;margin-top:13px}.board-controls button{border:1px solid var(--line);border-radius:12px;width:45px;height:35px;font-size:19px;background:var(--panel)}.board-controls button:hover{background:rgba(var(--accent-rgb),.15)}.snake-board{display:block;width:100%;aspect-ratio:1;border:1px solid var(--line);border-radius:15px;background:var(--panel);outline:none}.snake-tools{display:flex;justify-content:space-between;align-items:center;margin-top:10px;gap:10px}.snake-tools>button{padding:8px 14px;border:1px solid var(--line);border-radius:16px;font-size:10px}.snake-tools .board-controls{margin:0;gap:4px}.snake-tools .board-controls button{width:34px;height:31px;border-radius:9px}.memory-board{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;aspect-ratio:1}.memory-tile{position:relative;perspective:500px;padding:0;min-width:0;aspect-ratio:1}.memory-tile-inner{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .42s var(--ease)}.memory-tile.flipped .memory-tile-inner,.memory-tile.matched .memory-tile-inner{transform:rotateY(180deg)}.memory-front,.memory-back{display:grid;place-items:center;position:absolute;inset:0;border:1px solid var(--line);border-radius:13px;backface-visibility:hidden}.memory-back{background:var(--panel);font:italic 30px Georgia,serif;color:var(--muted)}.memory-front{transform:rotateY(180deg);background:rgba(var(--accent-rgb),.14);font-size:32px;color:var(--accent)}.memory-tile.matched .memory-front{background:var(--panel);color:var(--green);border-color:var(--green)}.memory-tile.matched{animation:match-pop .4s var(--spring)}.reaction-target{width:100%;aspect-ratio:1;border-radius:22px;border:1px solid var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:var(--panel);text-align:center;user-select:none;touch-action:manipulation;transition:transform .15s}.reaction-target .reaction-symbol{font-size:78px;line-height:1;color:var(--accent)}.reaction-target strong{font-size:27px;letter-spacing:-1px}.reaction-target small{font-size:11px;color:var(--muted);padding:0 20px}.reaction-target.waiting{background:#8c3330;color:#fff}.reaction-target.waiting .reaction-symbol,.reaction-target.ready .reaction-symbol{color:inherit}.reaction-target.waiting small,.reaction-target.ready small{color:inherit;opacity:.8}.reaction-target.ready{background:#487d49;color:#fff;transition:none}.reaction-target.early{background:rgba(var(--accent-rgb),.18)}.toast{position:fixed;z-index:500;top:20px;left:50%;padding:13px 20px;border:1px solid var(--line);border-radius:35px;background:var(--panel);backdrop-filter:blur(22px);box-shadow:0 10px 40px #0002;display:flex;align-items:center;gap:9px;font-size:12px;max-width:calc(100vw - 28px);width:max-content;transform:translate(-50%,-100px) scale(.8);opacity:0;pointer-events:none;transition:transform .5s var(--spring),opacity .25s}.toast.visible{opacity:1;transform:translate(-50%,0) scale(1)}.toast-dot{width:6px;height:6px;background:var(--accent);border-radius:50%;flex-shrink:0}.opening{display:none;position:fixed;inset:0;z-index:800;pointer-events:none;grid-template-columns:repeat(3,1fr)}.opening.running{display:grid}.opening-panel{background:var(--bg);border-right:1px solid var(--line);animation:curtain-exit .75s var(--ease) .65s both}.opening-panel:nth-child(2){animation-delay:.76s}.opening-panel:nth-child(3){animation-delay:.85s}.opening-copy{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;animation:opening-text 1s var(--ease) both}.opening-copy>span{font:10px var(--mono);letter-spacing:2px;color:var(--muted)}.opening-copy strong{font:900 clamp(40px,10vw,120px) "Arial Black",sans-serif;letter-spacing:-.07em;line-height:1.5}.opening-copy strong span{color:var(--accent);display:inline-block;animation:slow-spin 5s linear infinite;margin-left:.2em}.opening-copy small{font-size:12px;color:var(--muted);letter-spacing:3px}.motion-ready .reveal{animation:reveal-in .8s var(--ease) both;animation-delay:calc(.7s + var(--card-order,0)*.09s)}.game-grid.is-filtered .featured{grid-row:auto}.game-grid.is-filtered .reaction-card{grid-column:auto}.game-grid.is-filtered .feature-art{min-height:200px}.noscript-note{position:fixed;z-index:900;bottom:20px;left:20px;padding:20px;background:var(--bg);border:1px solid var(--line)}.noscript-note a{color:var(--accent);margin-left:10px}.game-message.burst:before{content:"✦";display:inline-block;color:var(--accent);animation:match-pop .5s var(--spring)}
[data-theme=night] .featured{background:#dc7252;color:#241813}[data-theme=night] .snake-art{background:linear-gradient(120deg,#1d3b30,#293d28);color:#d6e9d0}[data-theme=night] .snake-path{stroke:#a5c78d}[data-theme=night] .memory-art{background:linear-gradient(130deg,#302a48,#413957)}[data-theme=paper] .featured{background:#df8e64}[data-theme=paper] .snake-art{background:linear-gradient(120deg,#d5d8b9,#e7e5c9)}[data-theme=paper] .memory-art{background:linear-gradient(130deg,#dad0db,#e9dfe3)}
.game-open .ambient *,.game-open .game-grid *,.game-open .note-orbit{animation-play-state:paused!important}
@keyframes caret{50%{opacity:0}}@keyframes slow-spin{to{transform:rotate(360deg)}}@keyframes orb-drift{to{transform:translate(-8%,15%)}}@keyframes line-drift{to{transform:translate(-20px,20px)}}@keyframes tile-float{50%{transform:translateY(-11px) rotate(-8deg) rotateY(8deg)}}@keyframes small-float{50%{translate:0 -8px}}@keyframes food-pulse{50%{opacity:.55}}@keyframes snake-draw{from{stroke-dashoffset:240}to{stroke-dashoffset:0}}@keyframes radar-ring{0%{transform:scale(.75);opacity:.25}100%{transform:scale(1.5);opacity:0}}@keyframes reveal-in{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes dialog-in{from{opacity:0;transform:translateY(28px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes tile-spawn{from{transform:scale(.3);opacity:.2}to{transform:scale(1);opacity:1}}@keyframes tile-merge{50%{transform:scale(1.12)}}@keyframes match-pop{50%{transform:scale(1.08)}}@keyframes curtain-exit{to{transform:translateY(-101%)}}@keyframes opening-text{0%{opacity:0;transform:translateY(15px)}25%,55%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-35px)}}
@media(min-width:1500px){.page{padding-top:42px}.hero{margin-bottom:40px}.feature-art{min-height:300px}.mini-art{height:157px}.hero-tile{width:164px;height:184px}.hero-tile>span{font-size:76px}.reaction-card .game-launch{min-height:145px}}
@media(max-width:1150px){.topbar{padding:0 28px}.page{padding:28px 28px 0}.play-layout{grid-template-columns:minmax(0,1fr) 215px;gap:19px}.side-panel{padding:17px}.collection-toolbar{flex-wrap:wrap;gap:8px}.search{max-width:135px}.filter{padding:7px 9px}.hero-note{width:140px;margin-right:0;padding-left:20px}.topnav a{padding:8px 13px}.feature-title-note{font-size:14px}.featured .card-info{padding:12px 18px 20px}.feature-top{padding-left:18px}.feature-art{min-height:236px}.mini-card-info h2>span{display:none}.mini-art{height:125px}.side-panel{margin-top:83px}}
@media(max-width:880px){.topnav{display:none}.hero-note{display:none}.hero{margin-bottom:27px}h1{font-size:clamp(40px,9vw,77px)}.play-layout{grid-template-columns:minmax(0,1fr)}.collection-toolbar{flex-wrap:nowrap}.side-panel{margin-top:0;display:grid;grid-template-columns:1fr 1fr 1fr;gap:17px;padding:20px}.side-heading,.side-surprise{display:none}.session-time{padding:0;border-bottom:0;border-right:1px solid var(--line)}.side-section{margin-top:0}.records-section{border-left:1px solid var(--line);padding-left:17px}.side-empty{font-size:10px}.footer>span:nth-child(2){display:none}.feature-art{min-height:265px}.mini-art{height:140px}.mini-card-info h2>span{display:inline}.side-panel .recent-game:nth-child(n+3){display:none}}
@media(max-width:540px){.topbar{height:72px;padding:0 18px;gap:10px}.brand{font-size:28px}.brand-section{font-size:9px;margin-left:8px}.top-actions{gap:6px}.theme-button{padding:9px}.theme-button>span{display:none}.icon-button,.home-button{width:32px;height:32px}.page{padding:25px 18px 0}.eyebrow{font-size:8px;letter-spacing:1px}.edition{font-size:7px;margin-left:auto;letter-spacing:0}h1{font-size:clamp(35px,10vw,54px);margin:20px 0}.hero-bottom{gap:10px;justify-content:space-between}.hero-bottom p{font-size:12px}.hero-bottom p span{font-size:10px}.random-button{font-size:10px;padding:11px 13px;gap:6px}.random-button>span{margin-left:0}.random-button svg{width:14px;height:14px}.collection-toolbar{flex-wrap:wrap;margin-bottom:13px}.filter-tabs{width:100%;justify-content:space-between;gap:0}.filter{padding:8px 10px;font-size:10px}.search{max-width:100%;width:100%;padding:7px 3px}.game-grid{gap:12px;grid-template-columns:1fr 1fr}.featured{grid-column:span 2;grid-row:auto}.featured .game-launch{min-height:225px;display:block;position:relative}.feature-top{width:54%;padding:20px 0 0 20px}.feature-top .game-number{display:none}.card-tag{font-size:8px;letter-spacing:0}.feature-art{position:absolute;right:0;top:15px;width:48%;height:200px;min-height:0;pointer-events:none}.hero-tile{width:97px;height:112px;border-radius:20px}.hero-tile>span{font-size:46px;letter-spacing:-4px}.tile-spark{font-size:22px;right:-14px;bottom:-6px}.float-number{width:29px;height:29px;font-size:13px;border-radius:7px}.number-small{left:3%;top:28px}.number-mid{right:5%;top:25px}.number-bottom{width:36px;right:12%;bottom:6px}.art-plus{font-size:23px;left:0;bottom:19px}.featured .card-info{width:60%;padding:20px;min-height:190px}.card-info h2{font-size:33px}.feature-title-note{font-size:12px;letter-spacing:-.2px}.card-info p{font-size:9px}.featured .play-circle{position:absolute;bottom:19px;right:19px;width:29px;height:29px}.play-circle svg{width:16px;height:16px}.featured .card-meta{font-size:8px;gap:4px;max-width:170px}.featured .card-meta>span+span:before{margin-right:4px}.favorite-button{right:11px;top:10px;width:27px;height:27px}.mini-art{height:122px}.mini-index{font-size:7px;top:15px;left:13px}.mini-card-info{padding:13px 12px 0;gap:4px}.mini-card-info h2{font-size:15px;margin:4px 0}.mini-card-info h2>span{display:none}.mini-card-info .micro-label{font-size:6px;letter-spacing:.25px}.mini-card-info p{font-size:9px}.small-arrow{width:24px;height:24px;font-size:15px;flex-shrink:0}.game-launch>.card-meta{font-size:8px;padding:0 12px 13px;gap:4px}.memory-stack>span{width:41px;height:57px;font-size:26px;border-radius:7px}.memory-stack>span:nth-child(2){font-size:24px}.reaction-card .game-launch{min-height:123px;padding-right:105px}.reaction-art{width:110px}.radar i{width:75px;height:75px}.radar i:nth-child(2){width:55px;height:55px}.radar>span{font-size:38px}.side-panel{padding:17px;gap:16px;grid-template-columns:1fr 1.2fr}.side-section:not(.records-section){grid-column:span 2;border-top:1px solid var(--line);padding-top:15px;order:3}.records-section{padding-left:16px}.side-panel .recent-list{grid-template-columns:1fr 1fr;gap:15px}.side-panel .recent-game:nth-child(n+3){display:none}.session-time strong{font-size:41px}.session-time>.micro-label{font-size:6px}.session-time>span:last-child{font-size:8px}.record-line{font-size:9px}.local-note{font-size:8px;margin-top:9px}.footer{padding:17px 0;margin-top:22px;font-size:8px}.game-window{padding:17px}.game-window-title{gap:7px}.game-window-title>.micro-label{display:none}.game-window-title h2{font-size:18px}.game-status-bar{gap:20px;padding:14px 0}.game-status-bar strong{font-size:21px}.restart-button{font-size:10px;padding:8px 11px}.board-2048{gap:7px;padding:7px}.cell-2048{font-size:27px}.memory-board{gap:8px}.memory-front{font-size:28px}.game-help{font-size:8px;gap:8px}.game-help p{max-width:70%}.game-dialog{max-height:calc(100dvh - 16px)}.reaction-target strong{font-size:24px}.game-grid.is-filtered .featured{grid-column:span 2}.game-grid.is-filtered .feature-art{min-height:0}.game-grid.is-filtered .reaction-card{grid-column:span 2}}
@media(max-height:760px) and (min-width:541px){.game-window{padding:14px 23px}.game-window-header{padding-bottom:10px}.game-status-bar{padding:12px 0}.game-stage{max-width:min(360px,calc(100dvh - 235px))}.game-help{padding-top:8px}.game-message{min-height:33px;padding:7px 0}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.opening{display:none!important}.motion-ready .reveal{opacity:1;transform:none}.type-caret{opacity:1}}

/* 2048: independent sliding tiles, impact faces and a transient effects layer. */
.board-2048 {
  --board-gap: 9px;
  position: relative;
  isolation: isolate;
  grid-template-rows: repeat(4, minmax(0, 1fr));
  gap: var(--board-gap);
  padding: var(--board-gap);
  overflow: visible;
}
.board-2048:focus-visible {
  outline: 2px solid var(--blue);
  outline-offset: 5px;
}
.board-2048 > .cell-2048 { min-height: 0; }
.tile-layer-2048, .effect-layer-2048 {
  position: absolute;
  inset: 0;
  pointer-events: none;
  border-radius: inherit;
}
.tile-layer-2048 { z-index: 1; }
.effect-layer-2048 { z-index: 5; }
.tile-2048 {
  position: absolute;
  width: calc((100% - var(--board-gap) * 5) / 4);
  height: calc((100% - var(--board-gap) * 5) / 4);
  left: calc(var(--board-gap) + var(--tile-col) * (100% - var(--board-gap)) / 4);
  top: calc(var(--board-gap) + var(--tile-row) * (100% - var(--board-gap)) / 4);
  transform-origin: center;
}
.tile-face-2048 {
  position: relative;
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  border-radius: 11px;
  background: var(--tile-bg);
  color: var(--tile-ink);
  box-shadow: inset 0 1px 0 #ffffff54, 0 2px 2px #00000007;
  font: 750 clamp(22px, 5vw, 33px)/1 var(--mono);
  font-variant-numeric: tabular-nums;
  letter-spacing: -2px;
  transform-origin: center;
}
.tile-face-2048::before {
  content: "";
  position: absolute;
  inset: 0;
  border: 1px solid #ffffff28;
  border-radius: inherit;
  background: linear-gradient(150deg, #ffffff22, transparent 55%);
  pointer-events: none;
}
.tile-digit-2048 { display: inline-block; position: relative; }
.tile-2048.large-number .tile-face-2048 { font-size: 24px; }
.tile-2048.huge-number .tile-face-2048 { font-size: 20px; }
.tile-trail-2048 {
  position: absolute;
  border-radius: 11px;
  background: var(--tile-bg);
  z-index: -1;
}
.merge-ring-2048 {
  position: absolute;
  border: 2px solid var(--tile-glow);
  border-radius: 24%;
  box-shadow: 0 0 0 1px #ffffff24;
}
.merge-points-2048 {
  position: absolute;
  z-index: 3;
  width: max-content;
  color: var(--ink);
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 3px 8px;
  font: 700 12px/1.25 var(--mono);
  letter-spacing: -.5px;
  box-shadow: 0 4px 12px #00000014;
}
.merge-spark-2048 {
  position: absolute;
  width: var(--spark-size, 5px);
  height: var(--spark-size, 5px);
  border-radius: 2px;
  background: var(--tile-glow);
  box-shadow: 0 0 5px #ffffff45;
}
.merge-spark-2048.spark-star {
  width: auto;
  height: auto;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: var(--tile-glow);
  font-size: 15px;
  line-height: 1;
}
.merge-banner-2048 {
  position: absolute;
  z-index: 6;
  width: max-content;
  max-width: calc(100% - 20px);
  overflow: hidden;
  padding: 7px 13px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: var(--ink);
  color: var(--bg);
  box-shadow: 0 6px 16px #0002;
  text-align: center;
  font: 600 10px/1.3 var(--mono);
  letter-spacing: .3px;
}
.score-panel-2048 { position: relative; }
.score-panel-2048 > strong { display: inline-block; transform-origin: left center; }
.game-status-bar .score-bonus-2048 {
  position: absolute;
  left: 3px;
  top: 0;
  z-index: 6;
  width: max-content;
  color: var(--accent);
  font: 750 15px/1 var(--mono);
  text-shadow: 0 1px 8px var(--bg);
  pointer-events: none;
}
.undo-2048 {
  display: block;
  margin: 9px auto 0;
  font-size: 10px;
  transition: opacity .2s;
}
.undo-2048:disabled { opacity: .4; }
@media (max-width: 540px) {
  .board-2048 { --board-gap: 7px; }
  .tile-face-2048 { font-size: 27px; }
  .merge-points-2048 { font-size: 10px; padding: 2px 6px; }
  .merge-banner-2048 { font-size: 8px; padding: 6px 10px; }
}
@media (prefers-reduced-motion: reduce) {
  .effect-layer-2048 { display: none; }
}
