@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Libre+Caslon+Display&display=swap";:root{color:#f0eee1;font-synthesis:none;background:#102e28;font-family:DM Sans,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(at 45% 20%,#204e40 0,#102e28 75%);min-width:0;min-height:100vh;margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;touch-action:manipulation}button:disabled{cursor:default}button:focus-visible,a:focus-visible{outline-offset:3px;outline:3px solid #ffdc87}main{max-width:1250px;margin:auto;padding:0 48px}header{border-bottom:1px solid #ffffff20;justify-content:space-between;align-items:center;height:94px;display:flex}.brand{color:inherit;letter-spacing:-1.4px;font-size:27px;font-weight:700;text-decoration:none}.eyebrow{letter-spacing:2px;color:#b5c1ac;font-size:10px;font-weight:600}.intro{justify-content:space-between;align-items:center;padding:36px 0 30px;display:flex}h1,h2{letter-spacing:-.7px;margin:8px 0 0;font-family:Libre Caslon Display,Georgia,serif;font-size:56px;font-weight:400}.new-game{color:#203c31;background:#e9d6a6;border:1px solid #e1c98e;border-radius:6px;min-height:44px;padding:12px 20px;font-weight:600}.table{--card-height:clamp(80px, 12vw, 170px);--overlap:32px;background:radial-gradient(at 50% 40%,#32644d70,#123e3255),#174a3b;border:1px solid #82987755;border-radius:18px;padding:30px;box-shadow:inset 0 0 50px #001d2244,0 16px 35px #001a1725}.upper,.tableau{grid-template-columns:repeat(7,minmax(0,1fr));gap:16px;display:grid}.upper{margin-bottom:35px}.card{width:100%;height:var(--card-height);color:#1d302a;-webkit-user-select:none;user-select:none;background:#f5f2e7;border:1px solid #d2d0bd;border-radius:7px;padding:0;position:relative;box-shadow:0 3px 5px #051f2840}.card.back{background:repeating-linear-gradient(45deg,#294f43 0 3px,#365e4d 3px 4px,#294f43 4px 7px);border:5px solid #e9e5d5;box-shadow:inset 0 0 0 1px #8fa48b,0 3px 5px #051f2840}.seal{aspect-ratio:1;color:#d2d4af;border:1px solid #9fb193;border-radius:50%;outline:4px double #789879;place-items:center;width:45%;margin:auto;font:32px Georgia,serif;display:grid}.card.empty{color:#acc6aa65;box-shadow:none;background:#0f382d35;border:1px solid #a6bfa350;place-items:center;font:28px Georgia,serif;display:grid}.foundation span{border:1px solid #a6bfa335;border-radius:50%;padding:4px 9px;font-size:24px}.corner{gap:3px;font:22px/1 Georgia,serif;display:flex;position:absolute;top:6px;left:7px}.suit{font:54px Georgia,serif;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.corner.bottom{inset:auto 7px 6px auto;transform:rotate(180deg)}.column{min-width:0;position:relative}.column .card{position:absolute;left:0}.card.selected{outline-offset:-2px;background:#fff4cb;outline:3px solid #efce79}.overlay{z-index:5;background:#061b16c9;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.dialog{background:#204a3d;border:1px solid #a8b38a70;border-radius:14px;width:min(100%,470px);padding:35px;box-shadow:0 20px 80px #0006}.dialog h2{font-size:40px}.dialog p{color:#d2d9c7;line-height:1.6}.dialog-actions{flex-wrap:wrap;gap:12px;margin-top:24px;display:flex}@media (width<=700px){main{padding:0 12px}header{height:66px}.intro{gap:12px;padding:24px 0}.eyebrow{letter-spacing:1px;font-size:8px}h1{font-size:36px}.new-game{padding:10px 12px;font-size:12px}.table{--card-height:clamp(68px, 18vw, 120px);--overlap:28px;border-radius:10px;padding:12px 8px}.upper,.tableau{gap:5px}.upper{margin-bottom:24px}.card{border-radius:4px}.card.back{border-width:3px}.corner{gap:1px;font-size:16px;top:4px;left:3px}.corner.bottom{bottom:4px;right:3px}.suit{font-size:30px}.seal{font-size:18px}}@media (width<=360px){main{padding:0 6px}.table{padding:10px 4px}.upper,.tableau{gap:3px}.corner{font-size:14px;left:2px}.suit{font-size:25px}h1{font-size:30px}}.card:not(:disabled):not(.empty):not(.stock){touch-action:none;cursor:grab}.card.dragging{pointer-events:none;cursor:grabbing;box-shadow:0 12px 22px #001a1766}.column .card:not(:last-child) .suit,.column .card:not(:last-child) .bottom{visibility:hidden}.dialog-actions>button:first-child{min-height:44px;color:inherit;background:0 0;border:1px solid #91ab9066;border-radius:5px;padding:8px 12px}.table{margin-bottom:30px}main{isolation:isolate;color:color-mix(in srgb, #bdeaff var(--interface), #f0eee1)}.cosmos{z-index:-1;pointer-events:none;opacity:var(--cosmos);background:radial-gradient(at 75% 20%,#65194955,#0000 55%),radial-gradient(at 20% 65%,#124e7855,#0000 60%),#040918;position:fixed;inset:0}.cosmos:after{content:"";background-image:radial-gradient(circle,#b5eaff90 0 1px,#0000 1.5px),radial-gradient(circle,#f494d970 0 1px,#0000 1.5px);background-position:25px 41px,89px 12px;background-size:137px 173px,211px 127px;position:absolute;inset:0}.table{isolation:isolate;background:radial-gradient(ellipse at 50% 40%, color-mix(in srgb, #123557 var(--cosmos), #32644d), color-mix(in srgb, #050a1c var(--cosmos), #174a3b));border-color:color-mix(in srgb, #64daff90 var(--rails), #82987755);position:relative}.table:before{content:"";z-index:-1;pointer-events:none;opacity:var(--rails);background:radial-gradient(circle at 0 0,#94efff 0 2px,#0000 3px) 0 0/14.2857% 100%,linear-gradient(90deg,#42cfff20 1px,#0000 1px) 0 0/14.2857% 100%,linear-gradient(#b64dd815 1px,#0000 1px) 0 0/100% 42px;border-block:1px solid #69dfff60;border-radius:8px;position:absolute;inset:15px}.card{isolation:isolate;background:var(--face);color:var(--ink);border-color:color-mix(in srgb, #67d9ed var(--cards), #d2d0bd);overflow:hidden}.card.red{color:var(--red-ink)}.card.back{background:repeating-linear-gradient(45deg, color-mix(in srgb, #0a152f var(--cards), #294f43) 0 3px, color-mix(in srgb, #214566 var(--cards), #365e4d) 3px 4px, color-mix(in srgb, #0a152f var(--cards), #294f43) 4px 7px);border-color:color-mix(in srgb, #254665 var(--cards), #e9e5d5)}.card:not(.back):not(.empty):after{content:"";pointer-events:none;clip-path:polygon(0 0,25% 0,25% 2%,2% 2%,2% 25%,0 25%,0 0,100% 100%,75% 100%,75% 98%,98% 98%,98% 75%,100% 75%,100% 100%);opacity:var(--cards);border:1px solid #64ddff40;position:absolute;inset:4px}.card.empty{background:color-mix(in srgb, #070e24 var(--rails), #0f382d35);border-color:color-mix(in srgb, #78dfff80 var(--rails), #a6bfa350);color:color-mix(in srgb, #8dcceba0 var(--rails), #acc6aa65)}.card.selected{background:var(--selected-face);outline-color:color-mix(in srgb, #cc94ff var(--cards), #efce79)}.seal{color:color-mix(in srgb, #9bf0ff var(--cards), #d2d4af);border-color:color-mix(in srgb, #81ddff var(--cards), #9fb193);outline-color:color-mix(in srgb, #47749e var(--cards), #789879)}header{border-color:color-mix(in srgb, #62d8ff60 var(--interface), #ffffff20)}.brand{text-shadow:0 0 14px color-mix(in srgb, #5fe1ff80 var(--interface), transparent)}.new-game{background:var(--control-face);color:var(--control-ink);border-color:color-mix(in srgb, #63d8ff var(--interface), #e1c98e)}.new-game:hover{background:var(--control-hover)}.dialog{background:color-mix(in srgb, #101c35 var(--interface), #204a3d)}.dialog p{color:color-mix(in srgb, #c8ddf2 var(--interface), #d2d9c7)}.header-actions{align-items:center;gap:10px;display:flex}.mute{min-height:44px;color:inherit;background:0 0;border:1px solid;border-radius:6px;padding:10px 14px}.mute[aria-pressed=true]{background:var(--control-face);color:var(--control-ink)}.continue-game{color:#c7f5ff;background:#112740;border:1px solid #75def1;border-radius:6px;min-height:44px;padding:11px 24px;font-weight:600;box-shadow:0 0 20px #65e3ff1f}.continue-game:hover{background:#183650;box-shadow:0 0 28px #65e3ff35}.glitched-game{color:#fff;letter-spacing:.5px;text-shadow:1px 1px #39127e,-1px 0 #008baf;cursor:default;opacity:1;background:linear-gradient(115deg,#07dffc,#7438f5 42%,#ff3eb5 75%,#ffdf6b);border:1px solid #f38dff;border-radius:6px;min-height:46px;padding:11px 19px;font-weight:800;animation:1.8s steps(2,jump-none) infinite glitched-button;position:relative;overflow:hidden;transform:rotate(-1deg);box-shadow:0 0 12px #62eaff99,0 0 30px #e742ca66,inset 0 0 12px #fff7}.glitched-game:before{content:"";background:repeating-linear-gradient(100deg,#0000 0 9px,#fff7 10px 11px,#0000 12px 22px);animation:2.4s linear infinite glitch-scan;position:absolute;inset:-40%;transform:translate(-45%)}.glitched-game span{position:relative}@keyframes glitched-button{0%,92%,to{filter:hue-rotate();transform:rotate(-1deg)translate(0)}94%{filter:hue-rotate(35deg);transform:rotate(1deg)translate(2px,-1px)}97%{transform:rotate(-2deg)translate(-2px,1px)}}@keyframes glitch-scan{to{transform:translate(45%)}}header{z-index:6;position:relative}@media (width<=360px){.header-actions{gap:6px}.mute{padding-inline:9px}}@media (width<=700px){.glitched-game{padding-inline:10px;font-size:11px}}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.completion{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.completion-status{margin:0;font-size:13px}.completion-status:not(:empty),.completion-progress,.completion-actions{margin-bottom:18px}.completion-status:empty{display:none}.completion-progress{gap:8px;font-size:13px;display:grid}.completion-progress progress{accent-color:#89e6f5;width:min(100%,310px);height:5px}.completion-actions{gap:10px;display:flex}.completing .upper [data-drop-zone=foundation] .card{animation:.16s ease-out foundation-arrival}@keyframes foundation-arrival{0%{opacity:.5;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.breach{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:radial-gradient(at 50% 55%,#24205255,#0000 60%),#040918dc}.breach-dialog{isolation:isolate;text-align:center;background:radial-gradient(at 50% 25%,#16233a,#090f20 75%);border-color:#87dcff30;width:min(100%,420px);max-height:calc(100dvh - 40px);padding:30px 24px;transition:box-shadow 1.8s,border-color 1.8s;position:relative;overflow:hidden auto;box-shadow:0 24px 100px #0009,0 0 65px #67dfff09}.breach-beat-2 .breach-dialog{border-color:#98b8ed55;box-shadow:0 24px 100px #0009,-25px 0 85px #55d9ff15,25px 0 85px #d070e91c}.breach-dialog h2{margin-top:4px;font-size:46px}.breach-message{flex-direction:column;justify-content:center;min-height:88px;margin:12px 0 22px;display:flex}.breach-dialog .unknown-signal{color:#8be8ff;letter-spacing:2.5px;margin:6px 0;font-size:9px;animation:.9s ease-out breach-appear}.unknown-signal span{color:#e8a6ef;margin-left:10px}.breach-dialog .breach-preview{color:#e5d9f9;margin:10px 0 0;font:22px/1.35 Libre Caslon Display,Georgia,serif;animation:1.2s ease-out breach-appear}.breach-aperture{height:92px;margin-bottom:16px;position:relative}.breach-aperture span{background:#a5ebf1;width:52px;height:1px;transition:transform 1.8s,width 1.8s,box-shadow 1.8s,opacity 1.8s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 12px #6be8ff66}.breach-aperture span+span{opacity:0}.breach-beat-1 .breach-aperture span:first-child{width:70px;transform:translate(-50%,-50%)rotate(-55deg);box-shadow:0 0 20px #6be8ff99}.breach-beat-2 .breach-aperture span:first-child{width:86px;transform:translate(-50%,-50%)rotate(-68deg);box-shadow:0 0 25px #6be8ffcc,0 0 55px #6be8ff88}.breach-beat-2 .breach-aperture span:nth-child(2){opacity:.65;background:#e3a4ee;width:66px;transform:translate(calc(9px - 50%),-50%)rotate(-68deg);box-shadow:0 0 25px #e478ee99}.breach-beat-2 .breach-aperture span:nth-child(3){opacity:.25;width:42px;transform:translate(calc(-50% - 8px),-50%)rotate(-68deg)}@keyframes breach-appear{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (width<=700px){.breach-dialog{padding:24px 18px}.breach-dialog h2{font-size:40px}.completion-actions{width:100%}}.evolving-title{flex-wrap:wrap;column-gap:.18em;font-size:clamp(30px,4.2vw,50px);display:flex}.title-fragment{height:1.2em;color:color-mix(in srgb, #8be8ff var(--word-tint), #f0eee1);transition:color 1.8s,width 1.2s;display:inline-block;position:relative}.title-fragment.magenta{color:color-mix(in srgb, #e3a4ee var(--word-tint), #f0eee1)}.title-fragment>span{white-space:nowrap;opacity:0;pointer-events:none;transition:opacity 1.2s;position:absolute;left:0}.title-fragment>.visible{opacity:1}@media (prefers-reduced-motion:reduce){.completing .upper [data-drop-zone=foundation] .card,.breach-preview,.breach-dialog .unknown-signal{animation:none}.breach-aperture span,.breach-dialog,.title-fragment,.title-fragment>span{transition:none}.glitched-game,.glitched-game:before{animation:none}}
