/* Standalone splash; game styles remain separate. */
#tirds-splash {
  --t2-ink:#49321b; --t2-muted:#96744c; --t2-tile:clamp(48px,16.5vw,86px); --t2-gap:clamp(6px,1.8vw,11px);
  position:fixed; inset:0; z-index:110; overflow:hidden; isolation:isolate;
  color:var(--t2-ink); font-family:var(--body,"DM Sans",sans-serif); -webkit-tap-highlight-color:transparent;
  background:radial-gradient(ellipse at 50% 35%,#fffdf3 0%,#fff5de 37%,#f9e4bb 73%,#f0d09c 100%);
  animation:t2-arrive .2s ease-out both;
}
#tirds-splash *,#tirds-splash *::before,#tirds-splash *::after { box-sizing:border-box; }
#tirds-splash button { -webkit-appearance:none; appearance:none; font-family:inherit; cursor:pointer; touch-action:manipulation; }
#tirds-splash button:focus-visible { outline:3px solid #3a7cbc; outline-offset:6px; }
#tirds-splash .t2-play:focus-visible { outline:none; }
#tirds-splash.t2-keyboard .t2-play:focus-visible { outline:3px solid #45752e;outline-offset:6px; }
#tirds-splash .t2-sr { position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap; }
#tirds-splash .t2-wash { position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 93%,#efb85b24,transparent 45%); }
#tirds-splash .t2-field { position:absolute;inset:0;width:min(100%,1120px);margin:auto;pointer-events:none; }
#tirds-splash .t2-fidget {
  --size:clamp(126px,24vmin,218px); position:absolute;width:var(--size);height:var(--size);border:0;padding:0;background:none;
  color:#a380453b; pointer-events:auto;touch-action:none;user-select:none;cursor:grab;outline-offset:9px;
}
#tirds-splash .t2-fidget:active { cursor:grabbing; }
#tirds-splash .t2-fidget-face {
  display:grid;place-items:center;width:100%;height:100%;border-radius:22%;
  font:600 calc(var(--size)*.66)/1 var(--display,"Fredoka",sans-serif);
  background:linear-gradient(150deg,#fffdf1b3,#f8e1b780);border:1.5px solid #d6b77842;
  box-shadow:inset 1px 2px 1px #ffffffb0,inset -1px -2px 1px #dabc7420,0 5px 0 #cba56630,0 17px 30px -20px #8e63294a;
  transition:color .2s,background .25s,box-shadow .25s;will-change:transform;
}
#tirds-splash .t2-fidget:hover .t2-fidget-face,#tirds-splash .t2-fidget:focus-visible .t2-fidget-face { color:#a47b4d74;background:linear-gradient(150deg,#fffdf0e6,#f8e0b1b3); }
#tirds-splash .t2-fidget.found .t2-fidget-face { color:#62874f8c;background:linear-gradient(150deg,#eaf4cfdb,#d6e5b99c); }
#tirds-splash .t2-main {
  position:relative;z-index:2;min-height:100%;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:64px 20px 96px;gap:27px;pointer-events:none;
}
#tirds-splash .t2-main button { pointer-events:auto; }
#tirds-splash .t2-logo { width:calc(var(--t2-tile)*5 + var(--t2-gap)*4);height:244px;position:relative;margin-bottom:2px; }
#tirds-splash .t2-letter {
  position:absolute;left:calc(var(--column)*(var(--t2-tile) + var(--t2-gap)));top:calc(50% - var(--t2-tile)/2);
  width:var(--t2-tile);height:var(--t2-tile);border:0;padding:0;background:transparent;
  font:600 calc(var(--t2-tile)*.62)/1 var(--display,"Fredoka",sans-serif);color:var(--t2-ink);user-select:none;
}
#tirds-splash .t2-letter[hidden] { display:none; }
#tirds-splash .t2-letter-face {
  position:relative;display:grid;place-items:center;width:100%;height:100%;border-radius:19%;
  background:linear-gradient(155deg,#fffcef 0%,#ffefc8 39%,#f6d48c 100%);border:1.5px solid #c99d535e;
  box-shadow:inset 0 2px 0 #fffef8,inset 0 -2px 0 #ffe9ac,0 6px 0 #caa25d,0 8px 0 #a7834433,0 20px 24px -16px #81551e8c;
  text-shadow:0 1px 0 #fff6d880;will-change:transform;
}
#tirds-splash .t2-letter-face::before { content:"";position:absolute;inset:3px 4px auto;height:35%;border-radius:12px 12px 40% 40%;background:linear-gradient(#ffffff80,#ffffff00);pointer-events:none; }
#tirds-splash .t2-plus { position:absolute;top:50%;left:50%;translate:-50% -50%;font:500 32px/1 var(--display,"Fredoka",sans-serif);color:#bc995d; }
#tirds-splash .t2-subtitle { position:absolute;top:calc(50% + var(--t2-tile)/2 + 24px);left:0;right:0;text-align:center;font:500 26px/1.2 var(--display,"Fredoka",sans-serif);letter-spacing:.1em;color:#95744c;opacity:0; }
#tirds-splash .t2-subtitle span { color:#b19463;margin:0 4px;font-weight:400; }
#tirds-splash .t2-play {
  position:relative;display:flex;align-items:center;justify-content:center;gap:23px;width:288px;height:92px;padding:0 25px 3px;
  border:2.5px solid #356028;border-radius:29px;color:#fffefa;
  background:linear-gradient(175deg,#a5e86f 0%,#77d34b 18%,#51b937 61%,#369c2c 100%);
  box-shadow:inset 0 3px 0 #d6fcb18c,inset 0 -3px 0 #469323,0 7px 0 #2a7028,0 9px 0 #285327,0 22px 27px -16px #6b702870;
  transition:transform .12s,box-shadow .12s,filter .15s;overflow:hidden;
}
#tirds-splash .t2-play::before { content:"";position:absolute;left:8px;right:8px;top:5px;height:38%;border-radius:21px 21px 45% 45%;background:linear-gradient(#dcffa25c,#c7fb8812);pointer-events:none; }
#tirds-splash .t2-play-text { position:relative;font:700 49px/.95 var(--display,"Fredoka",sans-serif);letter-spacing:.035em;paint-order:stroke fill;-webkit-text-stroke:2.6px #2d6b2a;text-shadow:0 3px 0 #31692a; }
#tirds-splash .t2-play svg { position:relative;width:31px;height:35px;filter:drop-shadow(0 2px 0 #31692a); }
#tirds-splash .t2-play:hover { filter:brightness(1.05);transform:translateY(-2px); }
#tirds-splash .t2-play:active { transform:translateY(6px);box-shadow:inset 0 3px 0 #d6fcb18c,inset 0 -2px 0 #469323,0 1px 0 #2a7028,0 3px 0 #285327,0 10px 15px -12px #6b702870; }
#tirds-splash .t2-play-shine { pointer-events:none;position:absolute;inset:-50% auto -50% -50%;width:27%;rotate:22deg;background:linear-gradient(90deg,transparent,#fff9,transparent);opacity:0; }
#tirds-splash .t2-secondary { display:flex;gap:14px;align-items:center;margin-top:1px; }
#tirds-splash .t2-soft { display:flex;align-items:center;justify-content:center;gap:9px;height:49px;padding:0 20px;border:1.5px solid #c5a77773;border-radius:18px;background:linear-gradient(#fffdf1,#f9e9c9);color:#82603b;font-size:15px;font-weight:700;box-shadow:inset 0 1px 0 #fff,0 3px 0 #d7b67c75,0 9px 12px -10px #986c3455;transition:transform .18s,box-shadow .18s,filter .18s; }
#tirds-splash .t2-soft:focus-visible { transform:translateY(-2px);filter:brightness(1.04); }
@media(hover:hover) and (pointer:fine) {
 #tirds-splash .t2-soft:hover { transform:translateY(-3px);filter:brightness(1.05);box-shadow:inset 0 1px 0 #fff,0 5px 0 #d7b67c90,0 13px 17px -10px #986c3466; }
 #tirds-splash .t2-help:hover svg { transform:rotate(-9deg) scale(1.08); }
 #tirds-splash .t2-progress:hover svg { transform:rotate(8deg) scale(1.1); }
}
#tirds-splash .t2-soft:active { transform:translateY(2px); }
#tirds-splash .t2-soft svg { width:21px;height:21px;transition:transform .24s cubic-bezier(.2,1.5,.5,1); }
#tirds-splash .t2-progress { width:49px;padding:0; }
#tirds-splash .t2-corner { position:absolute;z-index:4;bottom:max(22px,env(safe-area-inset-bottom));width:46px;height:46px;border:1.5px solid #b5936166;border-radius:50%;display:grid;place-items:center;background:linear-gradient(#fff9e9db,#f2d9aad9);color:#86613e;box-shadow:inset 0 1px 0 #fff,0 3px 0 #c3a2727d;transition:transform .12s; }
#tirds-splash .t2-corner:active { transform:translateY(2px); }
#tirds-splash .t2-corner[hidden] { display:none; }
#tirds-splash .t2-corner svg { width:21px;height:21px; }
#tirds-splash .t2-replay { left:22px; }
#tirds-splash .t2-original { right:22px;font:600 24px var(--display,"Fredoka",sans-serif); }
#tirds-splash .t2-puff { position:absolute;pointer-events:none;left:50%;top:50%;width:8px;height:8px;border-radius:2px;background:#f4bd43; }
#tirds-splash.t2-leaving { opacity:0;transition:opacity .16s ease;pointer-events:none; }
@keyframes t2-arrive { from { opacity:0; } to { opacity:1; } }
@media(max-width:600px) {
 #tirds-splash .t2-main { padding:50px 18px 92px;gap:24px; }
 #tirds-splash .t2-logo { height:190px;margin-bottom:2px; }
 #tirds-splash .t2-subtitle { font-size:23px;top:calc(50% + var(--t2-tile)/2 + 20px); }
 #tirds-splash .t2-play { width:254px;height:83px;border-radius:26px;gap:20px; }
 #tirds-splash .t2-play-text { font-size:44px; }
 #tirds-splash .t2-play svg { width:27px;height:30px; }
 #tirds-splash .t2-fidget { --size:clamp(118px,33vw,170px); }
     }
@media(max-height:600px) and (min-width:601px) {
 #tirds-splash { --t2-tile:62px;--t2-gap:8px; }
 #tirds-splash .t2-main { padding:20px 18px 44px;gap:17px; }
 #tirds-splash .t2-logo { height:176px;margin-bottom:4px; }
 #tirds-splash .t2-play { height:72px;width:250px; }
 #tirds-splash .t2-play-text { font-size:41px; }
 #tirds-splash .t2-secondary { margin:0; }
}
@media(max-height:620px) and (max-width:600px) {
 #tirds-splash .t2-main { padding:18px 16px 62px;gap:20px; }
 #tirds-splash .t2-logo { height:174px; }
 #tirds-splash .t2-play { height:75px; }
 #tirds-splash .t2-soft { height:44px; }
}
@media(max-height:460px) and (min-width:560px) {
 #tirds-splash { --t2-tile:clamp(44px,8vw,60px);--t2-gap:8px; }
 #tirds-splash .t2-main { display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;align-content:center;justify-content:center;gap:22px 28px;padding:18px 22px 48px; }
 #tirds-splash .t2-logo { grid-column:1;grid-row:1 / 3;height:198px;margin:0; }
 #tirds-splash .t2-play { grid-column:2;grid-row:1;align-self:end;width:224px;height:76px; }
 #tirds-splash .t2-secondary { grid-column:2;grid-row:2;align-self:start;justify-self:center;margin:0; }
 }
@media(prefers-reduced-motion:reduce) {
 #tirds-splash,#tirds-splash * { animation:none!important;transition:none!important; }
 #tirds-splash .t2-letter-face,#tirds-splash .t2-fidget-face { will-change:auto; }
}

/* Current TIRDS editorial finish; retained title animation and loose tile motion. */
#tirds-splash{position:relative;min-height:100svh;overflow:hidden;background:radial-gradient(ellipse at 50% 18%,#fffaf0 0%,#fbefd9 53%,#f5dbae 100%)}
#tirds-splash .t2-main{display:flex;position:relative;min-height:100svh;padding:100px 24px 48px;gap:22px;pointer-events:none}
#tirds-splash a{pointer-events:auto;text-decoration:none}
#tirds-splash .t2-letter-face{font-family:var(--display);font-weight:600;color:#493b29;text-shadow:none;-webkit-text-stroke:0;background:linear-gradient(150deg,#fffcf0,#ffe7b4 65%,#f1cc81)}
#tirds-splash .t2-play{width:min(300px,100%);height:72px;gap:13px;padding:0 20px;border:2px solid #4a7637;border-radius:18px;background:linear-gradient(145deg,#a5dc79,#65b748);box-shadow:inset 0 2px #efffcb99,0 5px #4c8535,0 12px 20px -12px #6c753e77}
#tirds-splash .t2-play::before{display:none}
#tirds-splash .t2-play-text{font:500 31px/1 var(--display);letter-spacing:0;-webkit-text-stroke:0;text-shadow:0 2px #53843d}
#tirds-splash .t2-play svg{width:23px;height:25px;filter:none}
#tirds-splash .t2-play svg path{stroke:none}
#tirds-splash .t2-play:active{transform:translateY(4px);box-shadow:inset 0 2px #efffcb66,0 1px #4c8535}
#tirds-splash .splash-infinite{display:flex;align-items:center;justify-content:center;gap:16px;width:min(260px,100%);min-height:54px;border:1px solid #c7b28c;border-radius:15px;background:#fff7e6;color:#796242;box-shadow:inset 0 1px #fff,0 3px #d6c09b;font:500 20px var(--display)}
#tirds-splash .splash-infinite span{font-size:27px;color:#9a8159}
#tirds-splash .splash-infinite:hover{background:#fffbed}
#tirds-splash .splash-infinite:active{translate:0 2px;box-shadow:0 1px #d6c09b}
#tirds-splash .t2-help{display:flex;align-items:center;justify-content:center;font-size:13px;min-height:40px;padding:8px 12px;background:transparent;border:0;box-shadow:none}
#tirds-splash .splash-nav{position:absolute;top:20px;right:max(24px,env(safe-area-inset-right));z-index:5;font-size:12px;color:#887455}
#tirds-splash .splash-nav a{color:inherit;display:block;padding:10px}
#tirds-splash .splash-footer{margin-top:20px;font-size:10px;color:#ac9876;pointer-events:auto}
#tirds-splash .splash-footer a{margin-left:10px;color:inherit;text-decoration:underline;text-underline-offset:4px}
#tirds-splash :is(a,button):focus-visible{outline:2px solid #94764b;outline-offset:5px}
#tirds-splash .t2-logo{flex:none}
@media(max-width:600px){#tirds-splash .t2-main{padding:90px 24px 40px;gap:20px}#tirds-splash .t2-play-text{font-size:29px}}

/* Center the visible cluster independently of the bottom navigation. */
#tirds-splash{display:flex;flex-direction:column;min-height:100svh}
#tirds-splash .t2-main{flex:1;min-height:0;padding:48px 24px;gap:clamp(20px,4svh,40px);justify-content:center}
#tirds-splash .t2-logo{height:calc(var(--t2-tile) + 60px);margin:0}
#tirds-splash .t2-letter{top:0}
#tirds-splash .t2-plus{top:calc(var(--t2-tile)/2)}
#tirds-splash .t2-subtitle{top:calc(var(--t2-tile) + 22px)}
#tirds-splash .t2-main>a{flex-shrink:0}
#tirds-splash .splash-footer{position:relative;z-index:3;display:flex;align-items:center;justify-content:center;gap:clamp(8px,2vw,18px);margin:0;padding:8px 12px max(14px,env(safe-area-inset-bottom));white-space:nowrap}
#tirds-splash .splash-footer .footer-links{margin:0;gap:clamp(6px,2vw,16px);flex-wrap:nowrap}
#tirds-splash .t2-replay{top:max(14px,env(safe-area-inset-top));bottom:auto;left:14px;width:36px;height:36px}
#tirds-splash .t2-field{bottom:60px}
@media(max-width:600px){
 #tirds-splash .t2-main{padding:48px 20px 32px;gap:clamp(20px,4svh,34px)}
 #tirds-splash .t2-fidget{--size:clamp(94px,27vw,150px)}
 #tirds-splash .t2-subtitle{font-size:23px}
}
@media(max-height:620px){
 #tirds-splash{--t2-tile:clamp(40px,min(16vw,12svh),64px)}
 #tirds-splash .t2-main{padding:26px 20px;gap:18px}
 #tirds-splash .t2-logo{height:calc(var(--t2-tile) + 48px)}
 #tirds-splash .t2-subtitle{top:calc(var(--t2-tile) + 16px)}
 #tirds-splash .t2-play{height:62px}
}
@media(max-height:460px){
 #tirds-splash{--t2-tile:40px;--t2-gap:7px}
 #tirds-splash .t2-main{padding:8px 20px;gap:8px}
 #tirds-splash .t2-logo{height:66px}
 #tirds-splash .t2-subtitle{top:48px;font-size:17px}
 #tirds-splash .t2-play{height:50px}
 #tirds-splash .mode-infinite{min-height:44px;padding:4px 16px}
 #tirds-splash .guidebutton{min-height:36px;padding:4px 16px}
 #tirds-splash .splash-footer{padding-top:4px;padding-bottom:max(8px,env(safe-area-inset-bottom))}
}

/* Player quote, below the splash actions. */

#tirds-splash .t2-main{gap:24px;padding-top:48px;padding-bottom:30px}
#tirds-splash .splash-quote{box-sizing:border-box;pointer-events:auto;width:min(440px,100%);margin:16px 0 0;padding:24px 30px 22px;text-align:center;border:1px solid #d8c7a5;border-radius:22px;background:#fffaf0e8;box-shadow:0 3px 0 #dfcba52b,inset 0 1px #fff;}
.splash-quote .quote-stars{color:#bf913c;font:18px/1 var(--body);letter-spacing:5px;margin-bottom:15px}
.splash-quote blockquote{margin:0;font:400 18px/1.55 var(--body);color:#78664d;text-wrap:pretty}
.splash-quote strong{font-weight:700;color:#493d2b}
.splash-quote figcaption{margin-top:15px;font:500 12px/1.4 var(--body);color:#968164}
@media(max-width:600px){#tirds-splash .t2-main{gap:22px;padding-top:50px;padding-bottom:26px}#tirds-splash .splash-quote{margin-top:8px;padding:22px 22px 20px}.splash-quote blockquote{font-size:16px}}

.splash-quote .quote-stars{display:flex;justify-content:center;gap:6px;letter-spacing:0;margin-bottom:19px}
.splash-quote .quote-stars span{display:grid;place-items:center;width:29px;height:30px;border-radius:6px;border:1px solid #c99d535e;color:#70532b;font-size:19px;line-height:1;background:linear-gradient(150deg,#fffcf0,#ffe7b4 65%,#f1cc81);box-shadow:inset 0 1px #fffef8,inset 0 -1px #ffe9ac,0 3px #caa25d,0 5px 7px -4px #81551e66}
.splash-quote .quote-stars span:nth-child(1){transform:rotate(-5deg)}
.splash-quote .quote-stars span:nth-child(2){transform:rotate(1deg)}
.splash-quote .quote-stars span:nth-child(3){transform:rotate(-2deg)}
.splash-quote .quote-stars span:nth-child(4){transform:rotate(2deg)}
.splash-quote .quote-stars span:nth-child(5){transform:rotate(5deg)}

#tirds-splash .t2-play + .infinite-invitation{margin-top:6px}

/* The opening TILES row rises above the settled logo; reserve its full travel. */
@media(max-width:600px){
 #tirds-splash .t2-main{padding-top:calc(140px + env(safe-area-inset-top,0px));justify-content:flex-start}
 #tirds-splash .splash-quote{flex-shrink:0}
}

/* Reserve the whole two-row introduction, including its arrival overshoot. */
#tirds-splash .t2-main{justify-content:flex-start;padding-top:calc(48px + env(safe-area-inset-top,0px));gap:24px}
#tirds-splash .t2-logo{--intro-row:calc(var(--t2-tile)*.72 + 15px);--logo-top:calc(var(--intro-row) + 24px);height:calc(var(--logo-top) + var(--t2-tile) + var(--intro-row) + 24px);flex-shrink:0}
#tirds-splash .t2-letter{top:var(--logo-top)}
#tirds-splash .t2-plus{top:calc(var(--logo-top) + var(--t2-tile)/2)}
#tirds-splash .t2-subtitle{top:calc(var(--logo-top) + var(--t2-tile) + 22px)}
#tirds-splash[data-intro="full"] .infinite-invitation,#tirds-splash[data-intro="full"] .t2-main>.guidebutton{animation:splash-controls-arrive .25s ease-out .7s backwards}
@keyframes splash-controls-arrive{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:600px){#tirds-splash .t2-main{padding-top:calc(40px + env(safe-area-inset-top,0px));gap:24px}}
@media(prefers-reduced-motion:reduce){#tirds-splash[data-intro] .infinite-invitation,#tirds-splash[data-intro] .t2-main>.guidebutton{animation:none}}

/* One steady, single-colour plus while the two rows are paired. */
#tirds-splash .t2-plus{z-index:2;display:grid;place-items:center;width:25px;height:25px;color:#967c50;pointer-events:none}
#tirds-splash .t2-plus svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round}

/* Reserve the complete button while the first edition check resolves. */
#tirds-splash .t2-play[data-label-pending]>*{visibility:hidden}
