:root{
  --bg:#0b0603;--bg-2:#120804;--panel:#180b05;--panel-2:#211008;--panel-3:#2b1508;
  --text:#fff6ea;--muted:#bca793;--muted-2:#806d5d;--accent:#e39a25;--accent-2:#ffbd3d;
  --border:#6d3d12;--border-soft:rgba(227,154,37,.28);--success:#95d36d;--warning:#ffd46b;
  --danger:#ff7b67;--shadow:rgba(0,0,0,.52);--header:64px;--nav:70px;--radius:20px;
  color-scheme:dark;
}
*{box-sizing:border-box}
html{min-height:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header) + 12px);background:var(--bg)}
body{margin:0;min-height:100vh;overflow-x:hidden;color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:radial-gradient(circle at 88% -10%,rgba(227,154,37,.15),transparent 34rem),linear-gradient(180deg,var(--bg-2),var(--bg) 48%,#080402);font-size:16px}
body::before{content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;background-image:linear-gradient(rgba(227,154,37,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(227,154,37,.035) 1px,transparent 1px);background-size:64px 64px;mask-image:linear-gradient(to bottom,black,transparent 90%)}
.grain{position:fixed;inset:0;z-index:1000;pointer-events:none;opacity:.018;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='3' stitchTiles='stitchTiles'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
a{color:inherit}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button,input,select,textarea{min-height:44px}textarea{resize:vertical}.skip-link{position:fixed;left:12px;top:-80px;z-index:2000;padding:12px 16px;background:var(--accent-2);color:#180b05;font-weight:900;border-radius:10px}.skip-link:focus{top:12px}
.app-header{position:sticky;top:0;z-index:90;height:var(--header);display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 12px;border-bottom:1px solid rgba(227,154,37,.36);background:rgba(11,6,3,.9);backdrop-filter:blur(18px) saturate(1.15)}
.brand{min-width:0;min-height:44px;display:flex;align-items:center;gap:10px;text-decoration:none}.brand-mark{width:40px;height:40px;display:grid;place-items:center;flex:none;border:1.2px solid var(--accent);border-radius:12px;color:var(--accent-2);background:var(--panel);box-shadow:inset 0 0 22px rgba(227,154,37,.09)}.brand>span:last-child{display:grid;gap:2px;line-height:1}.brand strong{font-size:13px;letter-spacing:.24em}.brand small{color:var(--accent);font-size:8px;font-weight:900;letter-spacing:.14em}
.header-actions{display:flex;align-items:center;gap:7px}.round-button,.avatar-button{position:relative;width:44px;height:44px;display:grid;place-items:center;padding:0;border:1.2px solid var(--border-soft);border-radius:50%;background:rgba(24,11,5,.88);color:var(--accent-2);font-weight:900}.avatar-button{border-color:var(--accent)}.notification-button b{position:absolute;right:-3px;top:-3px;min-width:19px;height:19px;display:grid;place-items:center;padding:0 4px;border:2px solid var(--bg);border-radius:999px;color:#180b05;background:var(--accent-2);font-size:10px}.notification-button b[hidden]{display:none}
.app-main{width:min(1120px,100%);margin:auto;padding:0 12px calc(var(--nav) + 34px)}.app-view[hidden]{display:none}.app-view.active{display:block}.hero-card{position:relative;min-height:370px;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;margin:0 -12px;padding:80px 18px 28px;border-bottom:1px solid var(--border-soft);background:radial-gradient(circle at 86% 18%,rgba(255,189,61,.2),transparent 20rem),linear-gradient(160deg,rgba(43,21,8,.92),rgba(11,6,3,.98))}.hero-card::after{content:"◆";position:absolute;right:-40px;top:28px;color:rgba(255,189,61,.08);font-size:240px;line-height:1;transform:rotate(16deg)}.eyebrow{margin:0 0 8px;color:var(--accent);font-family:inherit;font-size:11px;font-weight:850;letter-spacing:.12em;text-transform:uppercase}.hero-card h1,.view-intro h1{position:relative;z-index:1;margin:0 0 14px;font-family:inherit;font-size:clamp(44px,13vw,72px);font-weight:850;line-height:.96;letter-spacing:-.035em;text-wrap:balance}.hero-card h1 span{color:var(--accent-2)}.hero-card>p:last-of-type,.view-intro>p:last-child{max-width:580px;margin:0;color:var(--muted);font-size:16px;line-height:1.55}.hero-actions,.inline-actions,.dialog-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.view-intro{padding:34px 4px 8px}.view-intro h1{font-size:48px}.content-section{padding:34px 0 0}.compact-top{padding-top:18px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:14px}.section-heading h2{margin:0;font-family:inherit;font-size:32px;font-weight:850;line-height:1;letter-spacing:-.025em}.meta{color:var(--muted);font-family:inherit;font-size:12px;font-weight:750}
.primary-button,.secondary-button,.danger-button,.text-button{min-height:50px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;border-radius:16px;font-weight:900;text-decoration:none}.primary-button{border:1.2px solid var(--accent-2);color:#180b05;background:linear-gradient(180deg,#ffd36a,var(--accent-2));box-shadow:0 8px 24px rgba(227,154,37,.18)}.secondary-button{border:1.2px solid var(--border-soft);background:var(--panel);color:var(--text)}.danger-button{border:1.2px solid rgba(255,123,103,.55);background:rgba(81,24,16,.45);color:#ffc1b6}.text-button{min-height:44px;padding:6px 8px;border:0;background:transparent;color:var(--accent-2)}.full-width{width:100%}
.challenge-grid,.games-grid,.achievement-grid,.inventory-grid{display:grid;grid-template-columns:1fr;gap:12px}.challenge-card,.game-card,.achievement-card,.inventory-card,.notice-card,.profile-summary,.panel-form,.feed-card,.player-card,.leaderboard-row,.notification-card{border:1.2px solid var(--border-soft);border-radius:var(--radius);background:linear-gradient(145deg,rgba(35,16,6,.98),rgba(18,8,4,.98));box-shadow:0 12px 30px rgba(0,0,0,.16)}.challenge-card{display:grid;gap:12px;padding:18px}.challenge-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.challenge-card h3{margin:0;font-size:22px}.challenge-card p{margin:0;color:var(--muted);line-height:1.45}.challenge-card .challenge-meta{display:flex;justify-content:space-between;gap:8px;color:var(--accent-2);font-size:13px;font-weight:900}
.game-card{position:relative;min-height:112px;display:grid;grid-template-columns:64px minmax(0,1fr) 24px;align-items:center;gap:14px;padding:16px;text-decoration:none;overflow:hidden}.game-card:hover{border-color:rgba(255,189,61,.7)}.game-card-icon{width:64px;height:64px;display:grid;place-items:center;border:1px solid rgba(255,189,61,.55);border-radius:18px;color:var(--accent-2);background:rgba(11,6,3,.55);font-size:30px}.game-card-copy{min-width:0;display:grid;gap:4px}.game-card-copy small{color:var(--accent);font-size:10px;font-weight:900;letter-spacing:.13em}.game-card-copy strong{font-size:19px}.game-card-copy span{color:var(--muted);font-size:14px;line-height:1.35}.game-card>b{color:var(--accent-2);font-size:30px}
.profile-summary{display:flex;align-items:center;gap:14px;padding:18px;margin-bottom:12px}.large-avatar,.player-avatar,.leaderboard-avatar{display:grid;place-items:center;flex:none;border:1.2px solid var(--accent);border-radius:50%;color:var(--accent-2);background:radial-gradient(circle,rgba(227,154,37,.17),transparent 65%),var(--panel-2)}.large-avatar{width:72px;height:72px;font-size:28px}.profile-summary h3{margin:0;font-family:inherit;font-size:25px;font-weight:850}.profile-summary p{margin:4px 0 0;color:var(--muted)}.status-badge{display:inline-grid;place-items:center;min-height:30px;padding:4px 9px;border:1px solid var(--border);border-radius:999px;color:var(--accent-2);background:var(--panel);font-size:10px;font-weight:950;letter-spacing:.1em}.status-badge.verified{border-color:rgba(149,211,109,.6);color:var(--success)}.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.stats-grid article{min-height:94px;display:flex;flex-direction:column;justify-content:center;padding:14px;border:1.2px solid var(--border-soft);border-radius:16px;background:linear-gradient(145deg,var(--panel-2),var(--panel))}.stats-grid span{color:var(--muted);font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.07em}.stats-grid strong{margin-top:7px;color:var(--accent-2);font-family:inherit;font-size:27px;font-weight:900}.stats-grid b{font-weight:inherit}
.notice-card{padding:18px}.notice-card strong{font-size:20px}.notice-card p{color:var(--muted);line-height:1.5}.feed-list,.player-results,.leaderboard-list,.notification-list{display:grid;gap:10px}.feed-card{padding:15px}.feed-head{display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:10px}.player-avatar,.leaderboard-avatar{width:46px;height:46px}.feed-user{min-width:0}.feed-user strong,.feed-user span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.feed-user span{margin-top:2px;color:var(--muted);font-size:12px}.feed-time{color:var(--muted-2);font-size:11px}.feed-body{padding:13px 0 4px;color:var(--text);line-height:1.48}.feed-body strong{color:var(--accent-2)}.reaction-row{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.reaction-button{min-height:44px;padding:6px 10px;border:1px solid var(--border-soft);border-radius:999px;background:rgba(11,6,3,.54);color:var(--muted)}.reaction-button.active{border-color:var(--accent-2);color:var(--accent-2);background:rgba(227,154,37,.1)}
.search-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-bottom:12px}.search-form label{min-width:0}.search-form input{width:100%}.segmented{display:grid;grid-template-columns:repeat(2,1fr);gap:5px;margin:12px 0;padding:5px;border:1.2px solid var(--border-soft);border-radius:15px;background:var(--panel)}.segmented button{border:0;border-radius:11px;background:transparent;color:var(--muted);font-weight:900}.segmented button.active{color:#180b05;background:var(--accent-2)}.player-card{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:11px;padding:12px}.player-card button{min-height:44px}.player-copy{min-width:0}.player-copy strong,.player-copy span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-copy span{color:var(--muted);font-size:12px}.filter-grid,.form-grid,.account-grid,.avatar-options,.check-grid{display:grid;grid-template-columns:1fr;gap:12px}.filter-grid{margin-bottom:12px}.filter-grid label,.panel-form label{display:grid;gap:6px}.filter-grid label>span,.panel-form label>span{color:var(--muted);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}input,select,textarea{width:100%;border:1.2px solid var(--border-soft);border-radius:13px;background:#100704;padding:10px 12px}input:focus,select:focus,textarea:focus{border-color:var(--accent-2);outline:2px solid rgba(255,189,61,.22)}input[type="range"]{padding:8px 0;border:0;background:transparent}.leaderboard-row{display:grid;grid-template-columns:34px 42px minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px}.leaderboard-row.me{border-color:var(--accent-2)}.rank{color:var(--muted);font-weight:900}.leaderboard-user{min-width:0}.leaderboard-user strong,.leaderboard-user span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leaderboard-user span{color:var(--muted);font-size:12px}.leaderboard-score{color:var(--accent-2)}
.achievement-card,.inventory-card{padding:16px}.achievement-card.locked{opacity:.46;filter:saturate(.45)}.achievement-card h3,.inventory-card h3{margin:7px 0;font-size:18px}.achievement-card p,.inventory-card p{margin:0;color:var(--muted);font-size:14px;line-height:1.42}.achievement-card>strong,.inventory-card>strong{display:block;margin-top:12px;color:var(--accent-2);font-size:12px}.rarity{font-size:10px;font-weight:950;letter-spacing:.12em;color:var(--accent)}
.panel-form{display:grid;gap:14px;padding:18px}.panel-form h3{margin:0;font-size:22px}.panel-form>p{margin:0;color:var(--muted);line-height:1.5}.panel-form fieldset{display:grid;gap:12px;margin:0;padding:14px;border:1.2px solid var(--border-soft);border-radius:16px}.panel-form legend{padding:0 7px;color:var(--accent);font-size:12px;font-weight:900}.check-row{min-height:44px;display:flex!important;align-items:center;gap:9px}.check-row input{width:22px;min-height:22px;height:22px;flex:none}.check-row span{margin:0!important;color:var(--text)!important;font-size:14px!important;text-transform:none!important;letter-spacing:0!important}
.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:100;height:calc(var(--nav) + env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(4,1fr);padding:5px 7px env(safe-area-inset-bottom);border-top:1px solid rgba(227,154,37,.34);background:rgba(11,6,3,.94);backdrop-filter:blur(18px)}.bottom-nav button{min-width:0;display:grid;place-items:center;align-content:center;gap:3px;border:0;border-radius:13px;background:transparent;color:var(--muted)}.bottom-nav button span{font-size:18px}.bottom-nav button b{font-size:10px}.bottom-nav button.active{color:var(--accent-2);background:rgba(227,154,37,.09)}footer{width:min(1120px,calc(100% - 24px));margin:30px auto calc(var(--nav) + 16px);padding:20px 0;display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--border-soft);color:var(--muted-2);font-size:10px;letter-spacing:.08em;text-transform:uppercase}
.toast-region{position:fixed;z-index:300;right:12px;bottom:calc(var(--nav) + 14px);width:min(380px,calc(100% - 24px));display:grid;gap:8px}.toast{padding:13px 14px;border:1.2px solid var(--border);border-radius:13px;background:rgba(24,11,5,.98);box-shadow:0 16px 40px var(--shadow)}.toast.success{border-color:var(--success)}.toast.error{border-color:var(--danger)}
dialog{width:min(520px,calc(100% - 22px));max-height:calc(100vh - 22px);padding:0;border:1.2px solid var(--accent);border-radius:20px;background:var(--panel);color:var(--text);box-shadow:0 28px 80px var(--shadow)}dialog::backdrop{background:rgba(4,2,1,.8);backdrop-filter:blur(8px)}.dialog-card{display:grid;gap:14px;padding:18px}.wide-dialog{width:100%}.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.dialog-head h2,.dialog-card>h2{margin:0;font-family:inherit;font-size:30px;font-weight:850}.dialog-card>p{color:var(--muted);line-height:1.5}.dialog-card>strong{color:var(--accent-2)}.notification-card{padding:13px}.notification-card.unread{border-color:var(--accent)}.notification-card p{margin:0;line-height:1.4}.notification-card small{display:block;margin-top:5px;color:var(--muted)}.share-page{display:grid;place-items:center;padding:18px}.share-card{width:min(560px,100%);padding:30px;border:1.2px solid var(--accent);border-radius:24px;background:var(--panel);text-align:center}.share-card .brand-mark{margin:0 auto 18px}.share-card h1{font-family:inherit;font-size:38px;font-weight:850}.share-card p{color:var(--muted);line-height:1.5}
.loading,.empty{padding:18px;border:1.2px dashed var(--border-soft);border-radius:16px;color:var(--muted);text-align:center}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}:focus-visible{outline:3px solid var(--accent-2);outline-offset:3px}
.avatar-palette-forest{border-color:#6fbd78!important;color:#b7f3a1!important;background:#08140c!important}.avatar-palette-night{border-color:#7f91d8!important;color:#cad3ff!important;background:#070a14!important}.avatar-frame-ember{box-shadow:0 0 0 4px rgba(227,77,37,.15),0 0 22px rgba(227,77,37,.25)!important}.avatar-frame-silver{box-shadow:0 0 0 4px rgba(202,211,255,.12)!important}.avatar-effect-orbit{animation:avatarPulse 2.8s ease-in-out infinite}.avatar-effect-spark{animation:avatarSpark 1.8s ease-in-out infinite}@keyframes avatarPulse{50%{box-shadow:0 0 0 8px rgba(227,154,37,.04)}}@keyframes avatarSpark{50%{filter:brightness(1.25)}}
@media(min-width:700px){:root{--header:72px}.app-header{padding:0 max(18px,calc((100vw - 1120px)/2))}.app-main{padding-left:18px;padding-right:18px}.hero-card{min-height:500px;margin:0;padding:70px 5vw}.hero-card h1{font-size:86px}.challenge-grid,.games-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.achievement-grid,.inventory-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.filter-grid,.form-grid,.avatar-options,.check-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.account-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:760px}.wide-form{padding:24px}.bottom-nav{left:50%;right:auto;width:min(620px,calc(100% - 30px));transform:translateX(-50%);bottom:12px;border:1px solid var(--border-soft);border-radius:20px;padding:6px;box-shadow:0 18px 50px rgba(0,0,0,.4)}footer{margin-bottom:110px}.toast-region{bottom:100px}}
@media(min-width:1040px){.games-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.game-card{min-height:230px;grid-template-columns:1fr 24px;grid-template-rows:74px 1fr;align-items:start}.game-card-icon{grid-column:1/-1}.challenge-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.achievement-grid,.inventory-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.app-view[data-view="community"]:not([hidden]){display:grid;grid-template-columns:minmax(0,1.3fr) minmax(320px,.7fr);column-gap:26px}.app-view[data-view="community"]>.view-intro{grid-column:1/-1}.app-view[data-view="community"]>.content-section:nth-of-type(1){grid-column:1;grid-row:2/5}.app-view[data-view="community"]>.lexapyr-ad-slot{grid-column:1}.app-view[data-view="community"]>.content-section:nth-of-type(2),.app-view[data-view="community"]>.content-section:nth-of-type(3){grid-column:2}.bottom-nav{width:680px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.sub-form{display:grid;gap:12px;padding:14px;border:1.2px solid var(--border-soft);border-radius:16px;background:rgba(12,5,2,.45)}
.sub-form h3{margin:0;font-size:18px}
.session-list{display:grid;gap:8px}
.session-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px;border:1.2px solid var(--border-soft);border-radius:14px;background:rgba(8,3,1,.55)}
.session-card strong,.session-card span{display:block}
.session-card span{margin-top:3px;color:var(--muted);font-size:12px}

[hidden]{display:none!important}
.auth-shell{display:grid;gap:12px}
.auth-tabs{margin:0}
.auth-panel{width:100%}
.form-help{margin:-6px 0 0!important;color:var(--muted-2)!important;font-size:12px!important;line-height:1.45!important}
/* v0.3.5: päivä- ja monipeliviikkohaasteet */
.challenge-card.completed{border-color:rgba(149,211,109,.5)}
.weekly-challenge-card{grid-column:1/-1}
.weekly-progress{height:12px;overflow:hidden;border:1.2px solid rgba(230,155,40,.35);border-radius:999px;background:#160904}.weekly-progress>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#e69b28,#ffc554);transition:width .25s ease}
.weekly-challenge-items{display:grid;gap:8px}.weekly-challenge-item{width:100%;min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1.2px solid rgba(230,155,40,.3);border-radius:16px;color:var(--text,#fff7ec);background:rgba(24,10,5,.8);text-align:left;cursor:pointer}.weekly-challenge-item>span{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 8px;min-width:0}.weekly-challenge-item b{grid-row:1/3;color:#ffc554}.weekly-challenge-item strong{font-size:14px}.weekly-challenge-item small{color:var(--muted,#c4aa96);font-size:11px}.weekly-challenge-item em{flex:0 0 auto;color:#ffc554;font-size:12px;font-style:normal;font-weight:900}.weekly-challenge-item.completed{border-color:rgba(149,211,109,.45)}.weekly-challenge-item.completed em{color:#95d36d}

/* v0.3.5.1: portaalin 932 × 1790 mobile first -viitenäkymä. */
@media (max-width:1039px){
  :root{--header:96px;--nav:120px;--radius:20px}
  html{scroll-padding-top:112px}
  body{font-size:32px}
  .app-main{width:932px;max-width:100%;padding:0 16px calc(var(--nav) + 40px)}
  .hero-card{min-height:600px;margin:0 -16px;padding:110px 32px 40px}
  .hero-card h1{margin-bottom:24px;font-size:88px;line-height:.92}
  .hero-card>p:last-of-type,.view-intro>p:last-child{max-width:820px;font-size:32px;line-height:1.5}
  .hero-actions,.inline-actions,.dialog-actions{gap:16px;margin-top:24px}
  .view-intro{padding:48px 0 16px}
  .view-intro h1{margin-bottom:20px;font-size:64px;line-height:1}
  .content-section{padding-top:48px}
  .compact-top{padding-top:24px}
  .section-heading{gap:20px;margin-bottom:16px}
  .section-heading h2{font-size:44.8px;line-height:1}
  .eyebrow{margin-bottom:11.5px;font-size:26px;line-height:1.25;letter-spacing:.12em}
  .meta{font-size:26px;line-height:1.25}

  .primary-button,.secondary-button,.danger-button,.text-button{
    min-height:75.5px;padding:12px 24px;border-radius:16px;font-size:32px;line-height:1.15
  }
  .text-button{min-height:56px;padding:8px 12px}
  .round-button,.avatar-button{width:75.5px;height:75.5px;min-width:75.5px;min-height:75.5px;font-size:32px}

  .challenge-grid,.games-grid,.achievement-grid,.inventory-grid{gap:16px}
  .challenge-card{gap:16px;padding:24px}
  .challenge-card header{gap:16px}
  .challenge-card h3{font-size:32.5px}
  .challenge-card p{font-size:32px;line-height:1.5}
  .challenge-card .challenge-meta{font-size:26px;line-height:1.35}
  .weekly-progress{height:16px}
  .weekly-challenge-items{gap:11.5px}
  .weekly-challenge-item{min-height:94.4px;gap:16px;padding:14px 16px;border-radius:16px}
  .weekly-challenge-item strong{font-size:32px}
  .weekly-challenge-item small,.weekly-challenge-item em{font-size:26px}

  .game-card{min-height:176px;grid-template-columns:75.5px minmax(0,1fr) 40px;gap:16px;padding:16px}
  .game-card-icon{width:75.5px;height:75.5px;border-radius:16px;font-size:40px}
  .game-card-copy{gap:7px}
  .game-card-copy small{font-size:26px;line-height:1.2}
  .game-card-copy strong{font-size:32px;line-height:1.15}
  .game-card-copy span{font-size:26px;line-height:1.35}
  .game-card>b{font-size:40px}

  .profile-summary{gap:16px;padding:24px;margin-bottom:16px}
  .large-avatar{width:94.4px;height:94.4px;font-size:40px}
  .profile-summary h3{font-size:39.2px}
  .profile-summary p{font-size:26px;line-height:1.4}
  .status-badge{min-height:56px;padding:8px 14px;font-size:26px}
  .stats-grid{gap:8.8px;max-width:none}
  .stats-grid article{min-height:94.4px;padding:14px 10px;border-radius:16px;text-align:center}
  .stats-grid span{font-size:26px;line-height:1.2}
  .stats-grid strong{margin-top:8px;font-size:39.2px;line-height:1.1}

  .notice-card,.feed-card,.player-card,.leaderboard-row,.notification-card,.achievement-card,.inventory-card{padding:24px}
  .notice-card strong,.feed-user strong,.player-copy strong,.leaderboard-user strong{font-size:32px}
  .notice-card p,.feed-card p,.player-copy span,.leaderboard-user span,.notification-card p,.achievement-card p,.inventory-card p{font-size:26px;line-height:1.5}
  .feed-list,.player-results,.leaderboard-list,.notification-list{gap:11.5px}
  .feed-head{grid-template-columns:75.5px minmax(0,1fr) auto;gap:16px}
  .player-avatar,.leaderboard-avatar{width:75.5px;height:75.5px;font-size:32px}
  .player-card{grid-template-columns:75.5px minmax(0,1fr) auto;gap:16px}
  .leaderboard-row{grid-template-columns:53px 75.5px minmax(0,1fr) auto;gap:12px}
  .rank,.leaderboard-score{font-size:32px}
  .achievement-card h3,.inventory-card h3{font-size:32px}
  .achievement-card>strong,.inventory-card>strong,.rarity{font-size:26px}

  .filter-grid,.form-grid,.account-grid,.avatar-options,.check-grid{gap:16px}
  .filter-grid label>span,.panel-form label>span{font-size:26px;line-height:1.25}
  input,select,textarea{min-height:64px;padding:10px 16px;border-radius:12.8px;font-size:32px}
  .panel-form{gap:16px;padding:24px}
  .panel-form h3{font-size:32.5px}
  .panel-form>p,.form-help{font-size:26px!important;line-height:1.5!important}
  .panel-form fieldset{gap:16px;padding:16px;border-radius:16px}
  .panel-form legend{font-size:26px}
  .check-row{min-height:64px;gap:14px}
  .check-row input{width:32px;height:32px;min-height:32px}
  .check-row span{font-size:32px!important}
  .segmented{gap:8px;padding:8px;border-radius:16px}
  .segmented button{min-height:64px;padding:8px 14px;border-radius:12px;font-size:32px}
  .search-form{gap:8px}

  .bottom-nav{height:calc(var(--nav) + env(safe-area-inset-bottom));padding:8px 12px env(safe-area-inset-bottom)}
  .bottom-nav button{gap:6px;border-radius:16px}
  .bottom-nav button span{font-size:40px}
  .bottom-nav button b{font-size:26px}
  footer{width:calc(100% - 32px);margin-bottom:calc(var(--nav) + 24px);font-size:20px}

  dialog{width:849.3px;max-width:calc(100% - 32px);max-height:1086px;border-radius:20px}
  .dialog-card{gap:16px;padding:24px}
  .dialog-head h2,.dialog-card>h2{font-size:32.5px}
  .dialog-card>p,.dialog-card>strong,.notification-card small{font-size:32px;line-height:1.5}
  .dialog-head .round-button{width:75.5px;height:75.5px;min-width:75.5px;min-height:75.5px;font-size:48px;border-width:3px}
  .loading,.empty{padding:24px;border-radius:16px;font-size:32px;line-height:1.5}
  .toast-region{right:16px;bottom:calc(var(--nav) + 20px);width:min(849px,calc(100% - 32px));gap:11.5px}
  .toast{padding:16px 20px;border-radius:16px;font-size:32px}
}

/* v0.4.0: pehmeämpi palveluilme ja laajennettu saavutussivu. */
body,
button,input,select,textarea{
  font-family:ui-rounded,"SF Pro Rounded","Segoe UI Variable","Segoe UI",Inter,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;
}
.eyebrow,.meta,.game-card-copy small,.stats-grid span{
  font-family:inherit;
  letter-spacing:.11em;
}
.hero-card h1,.view-intro h1,.section-heading h2,.profile-summary h3,.stats-grid strong{
  font-family:inherit;
  font-weight:850;
  letter-spacing:-.035em;
}
html[data-homepage-polish="on"] body{
  background:
    radial-gradient(circle at 12% 2%,rgba(255,193,82,.08),transparent 28rem),
    radial-gradient(circle at 88% 8%,rgba(227,126,52,.13),transparent 34rem),
    linear-gradient(180deg,#130905 0,#0b0603 38%,#080402 100%);
}
html[data-homepage-polish="on"] body::before{
  background-image:
    radial-gradient(circle at 18% 22%,rgba(255,198,90,.06) 0 2px,transparent 3px),
    radial-gradient(circle at 76% 42%,rgba(255,198,90,.045) 0 1px,transparent 2px);
  background-size:58px 58px,88px 88px;
  animation:ambientDrift 26s linear infinite;
}
html[data-homepage-polish="on"] .hero-card{
  isolation:isolate;
  border-bottom:1px solid rgba(255,190,84,.32);
  border-radius:0 0 34px 34px;
  background:
    radial-gradient(circle at 82% 18%,rgba(255,198,90,.24),transparent 18rem),
    radial-gradient(circle at 18% 110%,rgba(186,76,40,.16),transparent 24rem),
    linear-gradient(145deg,rgba(59,29,12,.96),rgba(18,8,4,.98) 62%);
  box-shadow:0 24px 70px rgba(0,0,0,.28),inset 0 1px rgba(255,255,255,.035);
}
html[data-homepage-polish="on"] .hero-card::before{
  content:"";position:absolute;z-index:-1;right:9%;top:13%;width:180px;height:180px;border:1px solid rgba(255,198,90,.19);border-radius:42px;transform:rotate(18deg);background:linear-gradient(135deg,rgba(255,198,90,.08),transparent 60%);box-shadow:0 0 70px rgba(255,176,61,.08);animation:heroFloat 8s ease-in-out infinite;
}
html[data-homepage-polish="on"] .hero-card::after{
  right:7%;top:auto;bottom:11%;font-size:170px;color:rgba(255,205,112,.09);filter:drop-shadow(0 0 28px rgba(255,177,64,.12));animation:heroPulse 6s ease-in-out infinite;
}
html[data-homepage-polish="on"] .hero-card h1{
  max-width:880px;text-wrap:balance;text-shadow:0 10px 34px rgba(0,0,0,.3);
}
html[data-homepage-polish="on"] .hero-card h1 span{
  color:#ffc75e;background:linear-gradient(135deg,#ffe2a1,#ffb83f 68%,#e98a2e);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
html[data-homepage-polish="on"] .challenge-card,
html[data-homepage-polish="on"] .game-card,
html[data-homepage-polish="on"] .achievement-card,
html[data-homepage-polish="on"] .inventory-card,
html[data-homepage-polish="on"] .notice-card,
html[data-homepage-polish="on"] .profile-summary,
html[data-homepage-polish="on"] .panel-form,
html[data-homepage-polish="on"] .feed-card,
html[data-homepage-polish="on"] .leaderboard-row{
  border-color:rgba(240,163,54,.25);
  background:
    linear-gradient(145deg,rgba(54,25,10,.88),rgba(20,9,5,.94)),
    radial-gradient(circle at 100% 0,rgba(255,198,90,.08),transparent 55%);
  box-shadow:0 16px 42px rgba(0,0,0,.21),inset 0 1px rgba(255,255,255,.025);
}
html[data-homepage-polish="on"] .game-card{
  border-radius:24px;transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease;
}
html[data-homepage-polish="on"] .game-card::after{
  content:"";position:absolute;inset:auto -30% -70% 40%;height:120px;background:radial-gradient(circle,rgba(255,192,80,.11),transparent 68%);pointer-events:none;
}
html[data-homepage-polish="on"] .game-card:hover,
html[data-homepage-polish="on"] .game-card:focus-visible{
  transform:translateY(-3px);border-color:rgba(255,194,84,.62);box-shadow:0 22px 50px rgba(0,0,0,.3),0 0 32px rgba(227,154,37,.08);
}
html[data-homepage-polish="on"] .primary-button{
  background:linear-gradient(135deg,#ffe08c,#ffc34f 52%,#eda137);box-shadow:0 12px 32px rgba(236,151,39,.22),inset 0 1px rgba(255,255,255,.45);
}
html[data-homepage-polish="on"] .secondary-button,
html[data-homepage-polish="on"] .round-button{
  background:linear-gradient(145deg,rgba(52,24,10,.9),rgba(20,9,5,.94));box-shadow:inset 0 1px rgba(255,255,255,.03),0 8px 22px rgba(0,0,0,.18);
}
html[data-homepage-polish="on"] .content-section>.section-heading .eyebrow{
  display:inline-flex;align-items:center;gap:.5em;
}
html[data-homepage-polish="on"] .content-section>.section-heading .eyebrow::before{
  content:"";width:1.6em;height:2px;border-radius:99px;background:linear-gradient(90deg,#ffc65a,transparent);
}

.achievement-filters{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 12px;scrollbar-width:thin}
.achievement-filters button{flex:0 0 auto;min-height:48px;padding:8px 14px;border:1.2px solid var(--border-soft);border-radius:999px;background:rgba(18,8,4,.8);color:var(--muted);font-weight:850}
.achievement-filters button.active{border-color:var(--accent-2);color:#241005;background:linear-gradient(180deg,#ffda7b,#ffbd3d)}
.achievement-groups{display:grid;gap:26px}
.achievement-group{display:grid;gap:12px}
.achievement-group-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:9px;border-bottom:1px solid var(--border-soft)}
.achievement-group-heading h3{margin:0;font-size:24px}.achievement-group-heading span{color:var(--muted);font-weight:800}
.achievement-card{display:grid;align-content:start;gap:11px}
.achievement-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--muted);font-size:12px;font-weight:900}
.achievement-progress{height:10px;overflow:hidden;border-radius:999px;background:#0d0503;box-shadow:inset 0 0 0 1px rgba(227,154,37,.22)}
.achievement-progress>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#e69b28,#ffd36a);transition:width .28s ease}
.achievement-card.unlocked .achievement-progress>span{background:linear-gradient(90deg,#7daf59,#b5e985)}
.achievement-card.locked{opacity:.78}.achievement-card.locked:hover{opacity:1}
.loyalty-grid{display:grid;gap:18px}.loyalty-grid>div{display:grid;gap:10px}.loyalty-grid h3{margin:0;font-size:22px}
.invite-panel{display:grid;gap:18px;padding:22px;margin-top:16px;border:1.2px solid rgba(255,191,76,.4);border-radius:24px;background:radial-gradient(circle at 90% 10%,rgba(255,194,83,.13),transparent 45%),linear-gradient(145deg,rgba(52,24,9,.95),rgba(18,8,4,.98));box-shadow:0 18px 42px rgba(0,0,0,.22)}
.invite-copy h3{margin:0 0 8px;font-size:27px}.invite-copy p:last-child{margin:0;color:var(--muted);line-height:1.5}
.invite-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.invite-stats span{min-height:82px;display:grid;place-items:center;padding:10px;border:1px solid var(--border-soft);border-radius:16px;background:rgba(8,4,2,.38);text-align:center}.invite-stats b{color:var(--accent-2);font-size:28px}.invite-stats small{color:var(--muted);font-size:12px}
.share-page .share-card img{display:block;width:100%;height:auto;border-radius:20px;border:1px solid var(--border-soft);margin-bottom:18px}

@keyframes ambientDrift{to{background-position:58px 58px,-88px 88px}}
@keyframes heroFloat{50%{transform:translateY(14px) rotate(21deg)}}
@keyframes heroPulse{50%{opacity:.65;transform:scale(1.04) rotate(4deg)}}

@media(max-width:1039px){
  .achievement-filters{gap:12px;padding-bottom:16px}.achievement-filters button{min-height:64px;padding:10px 18px;font-size:26px}
  .achievement-groups{gap:36px}.achievement-group{gap:16px}.achievement-group-heading{padding-bottom:14px}.achievement-group-heading h3{font-size:32.5px}.achievement-group-heading span{font-size:26px}
  .achievement-card-top{font-size:26px}.achievement-progress{height:16px}.loyalty-grid{gap:24px}.loyalty-grid h3{font-size:32.5px}
  .invite-panel{gap:20px;padding:24px;border-radius:20px}.invite-copy h3{font-size:39.2px}.invite-copy p:last-child{font-size:32px}.invite-stats{gap:8.8px}.invite-stats span{min-height:94.4px}.invite-stats b{font-size:39.2px}.invite-stats small{font-size:26px}
  html[data-homepage-polish="on"] .hero-card{border-radius:0 0 36px 36px}
}
@media(min-width:760px){.loyalty-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){html[data-homepage-polish="on"] body::before,html[data-homepage-polish="on"] .hero-card::before,html[data-homepage-polish="on"] .hero-card::after{animation:none!important}}


/* v0.4.0: portaalin pehmeämpi viimeistely ja yhtenäisempi pintakieli. */
.app-header{
  box-shadow:0 10px 34px rgba(0,0,0,.24),inset 0 -1px rgba(255,198,90,.035);
}
.brand-mark,.round-button,.avatar-button,.game-card-icon{
  transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease,background .2s ease;
}
.brand-mark{
  background:radial-gradient(circle at 34% 28%,rgba(255,213,127,.16),transparent 38%),linear-gradient(145deg,#281208,#120704);
  box-shadow:inset 0 1px rgba(255,255,255,.04),0 8px 26px rgba(0,0,0,.22);
}
.brand strong{font-weight:900;letter-spacing:.18em}.brand small{font-weight:850;letter-spacing:.11em}
.hero-actions{position:relative;z-index:2}
.content-section{position:relative}
.challenge-card,.game-card,.achievement-card,.inventory-card,.notice-card,.profile-summary,.panel-form,.feed-card,.player-card,.leaderboard-row,.notification-card{
  overflow:hidden;
}
.challenge-card,.game-card{
  transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.challenge-card::before,.game-card::before{
  content:"";position:absolute;inset:0 0 auto;height:1px;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(255,220,151,.18),transparent);
}
.challenge-card{position:relative}
.game-card-icon{
  background:radial-gradient(circle at 36% 28%,rgba(255,221,151,.18),transparent 34%),linear-gradient(145deg,rgba(47,22,9,.96),rgba(13,6,3,.94));
  box-shadow:inset 0 1px rgba(255,255,255,.035),0 10px 28px rgba(0,0,0,.18);
}
.primary-button,.secondary-button,.danger-button,.text-button{
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,filter .16s ease;
}
.primary-button:hover,.primary-button:focus-visible,.secondary-button:hover,.secondary-button:focus-visible{transform:translateY(-2px)}
.primary-button:active,.secondary-button:active,.round-button:active,.avatar-button:active{transform:translateY(1px) scale(.985)}
.bottom-nav{
  background:rgba(14,7,4,.9);backdrop-filter:blur(20px) saturate(1.16);
  box-shadow:0 -14px 45px rgba(0,0,0,.28),inset 0 1px rgba(255,198,90,.035);
}
html[data-homepage-polish="on"] .hero-card::before{
  border-radius:46% 54% 58% 42% / 43% 42% 58% 57%;
}
html[data-homepage-polish="on"] .hero-card::after{
  content:"✦";
}
html[data-homepage-polish="on"] .challenge-card:hover,
html[data-homepage-polish="on"] .challenge-card:focus-within{
  transform:translateY(-2px);border-color:rgba(255,194,84,.5);box-shadow:0 22px 52px rgba(0,0,0,.28),0 0 28px rgba(227,154,37,.06);
}
@media(max-width:1039px){
  .hero-card h1{line-height:1.01;letter-spacing:-.025em}
  .brand strong{letter-spacing:.15em}.brand small{letter-spacing:.09em}
}
@media(prefers-reduced-motion:reduce){
  .brand-mark,.round-button,.avatar-button,.game-card-icon,.challenge-card,.game-card,.primary-button,.secondary-button,.danger-button,.text-button{transition:none!important}
}

/* v0.4.0 generated achievement cosmetic visuals */
.avatar-palette-reward-multigame-100-2{border-color:hsl(284 72% 62%)!important;color:hsl(284 90% 84%)!important;background:radial-gradient(circle,hsl(284 55% 24%),hsl(284 60% 8%))!important}
.avatar-palette-reward-multigame-100-3{border-color:hsl(321 72% 62%)!important;color:hsl(321 90% 84%)!important;background:radial-gradient(circle,hsl(321 55% 24%),hsl(321 60% 8%))!important}
.avatar-palette-reward-multigame-100-4{border-color:hsl(28 72% 62%)!important;color:hsl(28 90% 84%)!important;background:radial-gradient(circle,hsl(28 55% 24%),hsl(28 60% 8%))!important}
.avatar-palette-reward-multigame-100-5{border-color:hsl(65 72% 62%)!important;color:hsl(65 90% 84%)!important;background:radial-gradient(circle,hsl(65 55% 24%),hsl(65 60% 8%))!important}
.avatar-palette-reward-multigame-100-6{border-color:hsl(102 72% 62%)!important;color:hsl(102 90% 84%)!important;background:radial-gradient(circle,hsl(102 55% 24%),hsl(102 60% 8%))!important}
.avatar-palette-reward-multigame-100-7{border-color:hsl(139 72% 62%)!important;color:hsl(139 90% 84%)!important;background:radial-gradient(circle,hsl(139 55% 24%),hsl(139 60% 8%))!important}
.avatar-palette-reward-multigame-100-8{border-color:hsl(176 72% 62%)!important;color:hsl(176 90% 84%)!important;background:radial-gradient(circle,hsl(176 55% 24%),hsl(176 60% 8%))!important}
.avatar-palette-reward-multigame-200-2{border-color:hsl(213 72% 62%)!important;color:hsl(213 90% 84%)!important;background:radial-gradient(circle,hsl(213 55% 24%),hsl(213 60% 8%))!important}
.avatar-palette-reward-multigame-200-3{border-color:hsl(250 72% 62%)!important;color:hsl(250 90% 84%)!important;background:radial-gradient(circle,hsl(250 55% 24%),hsl(250 60% 8%))!important}
.avatar-palette-reward-multigame-200-4{border-color:hsl(287 72% 62%)!important;color:hsl(287 90% 84%)!important;background:radial-gradient(circle,hsl(287 55% 24%),hsl(287 60% 8%))!important}
.avatar-palette-reward-multigame-200-5{border-color:hsl(324 72% 62%)!important;color:hsl(324 90% 84%)!important;background:radial-gradient(circle,hsl(324 55% 24%),hsl(324 60% 8%))!important}
.avatar-palette-reward-multigame-200-6{border-color:hsl(31 72% 62%)!important;color:hsl(31 90% 84%)!important;background:radial-gradient(circle,hsl(31 55% 24%),hsl(31 60% 8%))!important}
.avatar-palette-reward-multigame-200-7{border-color:hsl(68 72% 62%)!important;color:hsl(68 90% 84%)!important;background:radial-gradient(circle,hsl(68 55% 24%),hsl(68 60% 8%))!important}
.avatar-palette-reward-multigame-200-8{border-color:hsl(105 72% 62%)!important;color:hsl(105 90% 84%)!important;background:radial-gradient(circle,hsl(105 55% 24%),hsl(105 60% 8%))!important}
.avatar-frame-reward-multigame-500-2{box-shadow:0 0 0 4px hsl(142 74% 60% / .25),0 0 24px hsl(142 80% 58% / .32)!important;}
.avatar-frame-reward-multigame-500-3{box-shadow:0 0 0 4px hsl(179 74% 60% / .25),0 0 24px hsl(179 80% 58% / .32)!important;}
.avatar-frame-reward-multigame-500-4{box-shadow:0 0 0 4px hsl(216 74% 60% / .25),0 0 24px hsl(216 80% 58% / .32)!important;}
.avatar-frame-reward-multigame-500-5{box-shadow:0 0 0 4px hsl(253 74% 60% / .25),0 0 24px hsl(253 80% 58% / .32)!important;}
.avatar-frame-reward-multigame-500-6{box-shadow:0 0 0 4px hsl(290 74% 60% / .25),0 0 24px hsl(290 80% 58% / .32)!important;}
.avatar-frame-reward-multigame-500-7{box-shadow:0 0 0 4px hsl(327 74% 60% / .25),0 0 24px hsl(327 80% 58% / .32)!important;}
.avatar-frame-reward-multigame-500-8{box-shadow:0 0 0 4px hsl(34 74% 60% / .25),0 0 24px hsl(34 80% 58% / .32)!important;}
.avatar-effect-reward-multigame-1000-2{animation:rewardEffect-28 2.2s ease-in-out infinite!important}@keyframes rewardEffect-28{50%{filter:brightness(1.25) drop-shadow(0 0 10px hsl(71 82% 62% / .75));transform:scale(1.045)}}
.avatar-effect-reward-multigame-1000-3{animation:rewardEffect-29 2.2s ease-in-out infinite!important}@keyframes rewardEffect-29{50%{filter:brightness(1.25) drop-shadow(0 0 10px hsl(108 82% 62% / .75));transform:scale(1.045)}}
.avatar-effect-reward-multigame-1000-4{animation:rewardEffect-30 2.2s ease-in-out infinite!important}@keyframes rewardEffect-30{50%{filter:brightness(1.25) drop-shadow(0 0 10px hsl(145 82% 62% / .75));transform:scale(1.045)}}
.avatar-effect-reward-multigame-1000-5{animation:rewardEffect-31 2.2s ease-in-out infinite!important}@keyframes rewardEffect-31{50%{filter:brightness(1.25) drop-shadow(0 0 10px hsl(182 82% 62% / .75));transform:scale(1.045)}}
.avatar-effect-reward-multigame-1000-6{animation:rewardEffect-32 2.2s ease-in-out infinite!important}@keyframes rewardEffect-32{50%{filter:brightness(1.25) drop-shadow(0 0 10px hsl(219 82% 62% / .75));transform:scale(1.045)}}
.avatar-effect-reward-multigame-1000-7{animation:rewardEffect-33 2.2s ease-in-out infinite!important}@keyframes rewardEffect-33{50%{filter:brightness(1.25) drop-shadow(0 0 10px hsl(256 82% 62% / .75));transform:scale(1.045)}}
.avatar-effect-reward-multigame-1000-8{animation:rewardEffect-34 2.2s ease-in-out infinite!important}@keyframes rewardEffect-34{50%{filter:brightness(1.25) drop-shadow(0 0 10px hsl(293 82% 62% / .75));transform:scale(1.045)}}
.avatar-frame-reward-multigame-2500-2{box-shadow:0 0 0 4px hsl(330 74% 60% / .25),0 0 24px hsl(330 80% 58% / .32)!important;animation:rewardFramePulse 2.8s ease-in-out infinite!important;}
.avatar-frame-reward-multigame-2500-3{box-shadow:0 0 0 4px hsl(37 74% 60% / .25),0 0 24px hsl(37 80% 58% / .32)!important;animation:rewardFramePulse 2.8s ease-in-out infinite!important;}
.avatar-frame-reward-multigame-2500-4{box-shadow:0 0 0 4px hsl(74 74% 60% / .25),0 0 24px hsl(74 80% 58% / .32)!important;animation:rewardFramePulse 2.8s ease-in-out infinite!important;}
.avatar-frame-reward-multigame-2500-5{box-shadow:0 0 0 4px hsl(111 74% 60% / .25),0 0 24px hsl(111 80% 58% / .32)!important;animation:rewardFramePulse 2.8s ease-in-out infinite!important;}
.avatar-frame-reward-multigame-2500-6{box-shadow:0 0 0 4px hsl(148 74% 60% / .25),0 0 24px hsl(148 80% 58% / .32)!important;animation:rewardFramePulse 2.8s ease-in-out infinite!important;}
.avatar-frame-reward-multigame-2500-7{box-shadow:0 0 0 4px hsl(185 74% 60% / .25),0 0 24px hsl(185 80% 58% / .32)!important;animation:rewardFramePulse 2.8s ease-in-out infinite!important;}
.avatar-frame-reward-multigame-2500-8{box-shadow:0 0 0 4px hsl(222 74% 60% / .25),0 0 24px hsl(222 80% 58% / .32)!important;animation:rewardFramePulse 2.8s ease-in-out infinite!important;}
.avatar-effect-reward-multigame-5000-2{animation:rewardEffect-42 2.2s ease-in-out infinite!important}@keyframes rewardEffect-42{50%{filter:brightness(1.25) drop-shadow(0 0 10px hsl(259 82% 62% / .75));transform:scale(1.045)}}
.avatar-effect-reward-multigame-5000-3{animation:rewardEffect-43 2.2s ease-in-out infinite!important}@keyframes rewardEffect-43{50%{filter:brightness(1.25) drop-shadow(0 0 10px hsl(296 82% 62% / .75));transform:scale(1.045)}}
.avatar-effect-reward-multigame-5000-4{animation:rewardEffect-44 2.2s ease-in-out infinite!important}@keyframes rewardEffect-44{50%{filter:brightness(1.25) drop-shadow(0 0 10px hsl(333 82% 62% / .75));transform:scale(1.045)}}
.avatar-effect-reward-multigame-5000-5{animation:rewardEffect-45 2.2s ease-in-out infinite!important}@keyframes rewardEffect-45{50%{filter:brightness(1.25) drop-shadow(0 0 10px hsl(40 82% 62% / .75));transform:scale(1.045)}}
.avatar-effect-reward-multigame-5000-6{animation:rewardEffect-46 2.2s ease-in-out infinite!important}@keyframes rewardEffect-46{50%{filter:brightness(1.25) drop-shadow(0 0 10px hsl(77 82% 62% / .75));transform:scale(1.045)}}
.avatar-effect-reward-multigame-5000-7{animation:rewardEffect-47 2.2s ease-in-out infinite!important}@keyframes rewardEffect-47{50%{filter:brightness(1.25) drop-shadow(0 0 10px hsl(114 82% 62% / .75));transform:scale(1.045)}}
.avatar-effect-reward-multigame-5000-8{animation:rewardEffect-48 2.2s ease-in-out infinite!important}@keyframes rewardEffect-48{50%{filter:brightness(1.25) drop-shadow(0 0 10px hsl(151 82% 62% / .75));transform:scale(1.045)}}
.avatar-palette-reward-daily-total-10{border-color:hsl(225 72% 62%)!important;color:hsl(225 90% 84%)!important;background:radial-gradient(circle,hsl(225 55% 24%),hsl(225 60% 8%))!important}
.avatar-palette-reward-daily-total-30{border-color:hsl(262 72% 62%)!important;color:hsl(262 90% 84%)!important;background:radial-gradient(circle,hsl(262 55% 24%),hsl(262 60% 8%))!important}
.avatar-frame-reward-daily-total-100{box-shadow:0 0 0 4px hsl(299 74% 60% / .25),0 0 24px hsl(299 80% 58% / .32)!important;}
.avatar-effect-reward-daily-total-250{animation:rewardEffect-53 2.2s ease-in-out infinite!important}@keyframes rewardEffect-53{50%{filter:brightness(1.25) drop-shadow(0 0 10px hsl(336 82% 62% / .75));transform:scale(1.045)}}
.avatar-frame-reward-daily-total-500{box-shadow:0 0 0 4px hsl(43 74% 60% / .25),0 0 24px hsl(43 80% 58% / .32)!important;animation:rewardFramePulse 2.8s ease-in-out infinite!important;}
.avatar-effect-reward-daily-total-1000{animation:rewardEffect-55 2.2s ease-in-out infinite!important}@keyframes rewardEffect-55{50%{filter:brightness(1.25) drop-shadow(0 0 10px hsl(80 82% 62% / .75));transform:scale(1.045)}}
.avatar-palette-reward-daily-streak-14{border-color:hsl(154 72% 62%)!important;color:hsl(154 90% 84%)!important;background:radial-gradient(circle,hsl(154 55% 24%),hsl(154 60% 8%))!important}
.avatar-palette-reward-daily-streak-28{border-color:hsl(191 72% 62%)!important;color:hsl(191 90% 84%)!important;background:radial-gradient(circle,hsl(191 55% 24%),hsl(191 60% 8%))!important}
.avatar-frame-reward-daily-streak-56{box-shadow:0 0 0 4px hsl(228 74% 60% / .25),0 0 24px hsl(228 80% 58% / .32)!important;}
.avatar-effect-reward-daily-streak-100{animation:rewardEffect-60 2.2s ease-in-out infinite!important}@keyframes rewardEffect-60{50%{filter:brightness(1.25) drop-shadow(0 0 10px hsl(265 82% 62% / .75));transform:scale(1.045)}}
.avatar-frame-reward-daily-streak-180{box-shadow:0 0 0 4px hsl(302 74% 60% / .25),0 0 24px hsl(302 80% 58% / .32)!important;animation:rewardFramePulse 2.8s ease-in-out infinite!important;}
.avatar-effect-reward-daily-streak-365{animation:rewardEffect-62 2.2s ease-in-out infinite!important}@keyframes rewardEffect-62{50%{filter:brightness(1.25) drop-shadow(0 0 10px hsl(339 82% 62% / .75));transform:scale(1.045)}}
.avatar-palette-reward-weekly-total-4{border-color:hsl(83 72% 62%)!important;color:hsl(83 90% 84%)!important;background:radial-gradient(circle,hsl(83 55% 24%),hsl(83 60% 8%))!important}
.avatar-palette-reward-weekly-total-12{border-color:hsl(120 72% 62%)!important;color:hsl(120 90% 84%)!important;background:radial-gradient(circle,hsl(120 55% 24%),hsl(120 60% 8%))!important}
.avatar-frame-reward-weekly-total-26{box-shadow:0 0 0 4px hsl(157 74% 60% / .25),0 0 24px hsl(157 80% 58% / .32)!important;}
.avatar-effect-reward-weekly-total-52{animation:rewardEffect-67 2.2s ease-in-out infinite!important}@keyframes rewardEffect-67{50%{filter:brightness(1.25) drop-shadow(0 0 10px hsl(194 82% 62% / .75));transform:scale(1.045)}}
.avatar-frame-reward-weekly-total-104{box-shadow:0 0 0 4px hsl(231 74% 60% / .25),0 0 24px hsl(231 80% 58% / .32)!important;animation:rewardFramePulse 2.8s ease-in-out infinite!important;}
.avatar-effect-reward-weekly-total-260{animation:rewardEffect-69 2.2s ease-in-out infinite!important}@keyframes rewardEffect-69{50%{filter:brightness(1.25) drop-shadow(0 0 10px hsl(268 82% 62% / .75));transform:scale(1.045)}}
.avatar-palette-reward-weekly-streak-4{border-color:hsl(342 72% 62%)!important;color:hsl(342 90% 84%)!important;background:radial-gradient(circle,hsl(342 55% 24%),hsl(342 60% 8%))!important}
.avatar-palette-reward-weekly-streak-8{border-color:hsl(49 72% 62%)!important;color:hsl(49 90% 84%)!important;background:radial-gradient(circle,hsl(49 55% 24%),hsl(49 60% 8%))!important}
.avatar-frame-reward-weekly-streak-13{box-shadow:0 0 0 4px hsl(86 74% 60% / .25),0 0 24px hsl(86 80% 58% / .32)!important;}
.avatar-effect-reward-weekly-streak-26{animation:rewardEffect-74 2.2s ease-in-out infinite!important}@keyframes rewardEffect-74{50%{filter:brightness(1.25) drop-shadow(0 0 10px hsl(123 82% 62% / .75));transform:scale(1.045)}}
.avatar-frame-reward-weekly-streak-52{box-shadow:0 0 0 4px hsl(160 74% 60% / .25),0 0 24px hsl(160 80% 58% / .32)!important;animation:rewardFramePulse 2.8s ease-in-out infinite!important;}
.avatar-effect-reward-weekly-streak-104{animation:rewardEffect-76 2.2s ease-in-out infinite!important}@keyframes rewardEffect-76{50%{filter:brightness(1.25) drop-shadow(0 0 10px hsl(197 82% 62% / .75));transform:scale(1.045)}}
.avatar-palette-reward-active-days-14{border-color:hsl(308 72% 62%)!important;color:hsl(308 90% 84%)!important;background:radial-gradient(circle,hsl(308 55% 24%),hsl(308 60% 8%))!important}
.avatar-palette-reward-active-days-30{border-color:hsl(345 72% 62%)!important;color:hsl(345 90% 84%)!important;background:radial-gradient(circle,hsl(345 55% 24%),hsl(345 60% 8%))!important}
.avatar-frame-reward-active-days-60{box-shadow:0 0 0 4px hsl(52 74% 60% / .25),0 0 24px hsl(52 80% 58% / .32)!important;}
.avatar-frame-reward-active-days-100{box-shadow:0 0 0 4px hsl(89 74% 60% / .25),0 0 24px hsl(89 80% 58% / .32)!important;}
.avatar-effect-reward-active-days-180{animation:rewardEffect-83 2.2s ease-in-out infinite!important}@keyframes rewardEffect-83{50%{filter:brightness(1.25) drop-shadow(0 0 10px hsl(126 82% 62% / .75));transform:scale(1.045)}}
.avatar-effect-reward-active-days-365{animation:rewardEffect-84 2.2s ease-in-out infinite!important}@keyframes rewardEffect-84{50%{filter:brightness(1.25) drop-shadow(0 0 10px hsl(163 82% 62% / .75));transform:scale(1.045)}}
.avatar-frame-reward-active-days-500{box-shadow:0 0 0 4px hsl(200 74% 60% / .25),0 0 24px hsl(200 80% 58% / .32)!important;animation:rewardFramePulse 2.8s ease-in-out infinite!important;}
.avatar-frame-reward-active-days-730{box-shadow:0 0 0 4px hsl(237 74% 60% / .25),0 0 24px hsl(237 80% 58% / .32)!important;animation:rewardFramePulse 2.8s ease-in-out infinite!important;}
.avatar-effect-reward-active-days-1000{animation:rewardEffect-87 2.2s ease-in-out infinite!important}@keyframes rewardEffect-87{50%{filter:brightness(1.25) drop-shadow(0 0 10px hsl(274 82% 62% / .75));transform:scale(1.045)}}
.avatar-palette-reward-invites-5{border-color:hsl(348 72% 62%)!important;color:hsl(348 90% 84%)!important;background:radial-gradient(circle,hsl(348 55% 24%),hsl(348 60% 8%))!important}
.avatar-frame-reward-invites-10{box-shadow:0 0 0 4px hsl(55 74% 60% / .25),0 0 24px hsl(55 80% 58% / .32)!important;}
.avatar-effect-reward-invites-25{animation:rewardEffect-91 2.2s ease-in-out infinite!important}@keyframes rewardEffect-91{50%{filter:brightness(1.25) drop-shadow(0 0 10px hsl(92 82% 62% / .75));transform:scale(1.045)}}
.avatar-frame-reward-invites-50{box-shadow:0 0 0 4px hsl(129 74% 60% / .25),0 0 24px hsl(129 80% 58% / .32)!important;animation:rewardFramePulse 2.8s ease-in-out infinite!important;}
@keyframes rewardFramePulse{50%{filter:brightness(1.2)}}

/* v0.4.1: päivähaastekortit pysyvät yhden sarakkeen mobiilin 932 px viitenäkymässä. */
.daily-challenge-card header>div{min-width:0;display:grid;gap:7px}
.daily-challenge-card time{color:var(--muted);font-size:14px;font-weight:750}
.daily-challenge-card .status-badge{flex:0 0 auto;max-width:42%;white-space:nowrap}
.challenge-card header>div{min-width:0}
.challenge-card .challenge-meta{flex-wrap:wrap}
.challenge-card .challenge-meta>span{min-width:0}
@media (max-width:1039px){
  .challenge-grid{grid-template-columns:1fr!important}
  .daily-challenge-card time{font-size:26px;line-height:1.3}
  .daily-challenge-card .status-badge{max-width:none}
  .challenge-card header{align-items:flex-start}
  .challenge-card .challenge-meta>span{flex:1 1 280px}
}

/* v0.5.0 RC1: beta-, laki- ja palautekäyttöliittymä. */
.beta-badge{
  flex:0 0 auto;margin-right:auto;display:inline-grid;place-items:center;min-height:38px;padding:4px 14px;
  border:1.2px solid rgba(255,196,77,.72);border-radius:999px;color:#241005;
  background:linear-gradient(180deg,#ffe18c,#ffbd3d);font-size:22px;font-weight:950;letter-spacing:.12em;
  box-shadow:0 8px 24px rgba(230,155,40,.18);
}
.legal-checks{display:grid;gap:12px;padding:18px;border:1.2px solid var(--border-soft);border-radius:18px;background:rgba(8,4,2,.35)}
.legal-checks .check-row{align-items:flex-start}.legal-checks a,.legal-links a,.site-footer a,.site-footer button{color:var(--accent-2);font-weight:850}
.legal-gate{position:fixed;z-index:2200;inset:0;display:grid;place-items:center;padding:24px;background:rgba(5,2,1,.9);backdrop-filter:blur(14px)}
.legal-gate[hidden]{display:none!important}.legal-gate-card{width:min(849.3px,100%);display:grid;gap:22px;padding:32px;border:1.2px solid var(--accent);border-radius:20px;background:linear-gradient(145deg,#32170b,#120704);box-shadow:0 28px 90px rgba(0,0,0,.48)}
.legal-gate-card h2{margin:0;font-size:44.8px}.legal-gate-card p{margin:0;font-size:32px;line-height:1.5}.legal-links{display:flex;flex-wrap:wrap;gap:12px 22px;font-size:26px}
.app-dialog.feedback-dialog{width:min(849.3px,calc(100% - 32px));max-height:calc(100vh - 48px);padding:24px;border:1.2px solid var(--accent);border-radius:20px;background:#160a05;color:var(--text);overflow:auto}
.feedback-dialog::backdrop{background:rgba(5,2,1,.82);backdrop-filter:blur(10px)}.feedback-dialog form{display:grid;gap:18px}.feedback-dialog textarea{resize:vertical}
.site-footer{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:20px 36px;padding:28px 24px calc(132px + env(safe-area-inset-bottom));border-top:1.2px solid var(--border-soft);background:rgba(8,4,2,.88)}
.site-footer>div{display:grid;gap:5px}.site-footer>div strong{font-size:26px}.site-footer>div span{color:var(--muted);font-size:22px}.site-footer nav{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:12px 22px}.site-footer a,.site-footer button{min-height:44px;display:inline-flex;align-items:center;padding:0;border:0;background:none;text-decoration:underline;text-underline-offset:4px;font:inherit;cursor:pointer}
.legal-page{margin:0;min-height:100vh;color:#fff7ec;background:radial-gradient(circle at 80% 0,rgba(230,155,40,.13),transparent 34rem),#0b0603;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.legal-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:18px;padding:16px max(20px,env(safe-area-inset-right)) 16px max(20px,env(safe-area-inset-left));border-bottom:1px solid rgba(230,155,40,.3);background:rgba(10,5,3,.94);backdrop-filter:blur(16px)}
.legal-header>a{margin-right:auto;color:#fff7ec;text-decoration:none;font-weight:950;letter-spacing:.16em}.legal-header .beta-badge{margin:0;min-height:32px;font-size:14px}
.legal-main{width:min(820px,calc(100% - 32px));margin:0 auto;padding:56px 0 90px}.legal-main h1{margin:.15em 0 .35em;font-size:clamp(2.4rem,8vw,4.6rem);line-height:1}.legal-lead{margin:0 0 42px;color:#d4b9a5;font-size:1.2rem;line-height:1.6}.legal-main section{padding:26px 0;border-top:1px solid rgba(230,155,40,.22)}.legal-main section h2{margin:0 0 10px;font-size:1.55rem}.legal-main section p{margin:0;color:#d4c0b1;font-size:1.05rem;line-height:1.72}.legal-main a{color:#ffc75e}.legal-nav{display:flex;flex-wrap:wrap;gap:12px 22px;margin:34px 0}.legal-main>.primary-button{display:inline-flex;width:auto;text-decoration:none;color:#241005}
@media(max-width:1039px){
  .beta-badge{min-height:46px;padding:6px 16px;font-size:26px}
  .site-footer{grid-template-columns:1fr;padding:32px 24px calc(150px + env(safe-area-inset-bottom))}.site-footer nav{justify-content:flex-start}.site-footer>div strong{font-size:32px}.site-footer>div span,.site-footer a,.site-footer button{font-size:26px}
}

/* Beta RC1: palvelutietojen löydettävyys */
.legal-account-links .legal-link-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.legal-account-links .legal-link-grid > a,
.legal-account-links .legal-link-grid > button { min-height:112px; padding:20px; border:1.2px solid var(--line,rgba(244,174,61,.32)); border-radius:20px; background:rgba(30,14,7,.68); color:inherit; text-align:left; text-decoration:none; display:flex; flex-direction:column; justify-content:center; gap:8px; font:inherit; cursor:pointer; }
.legal-account-links .legal-link-grid strong { font-size:32px; font-weight:900; }
.legal-account-links .legal-link-grid span { font-size:26px; color:var(--muted,#c7b6a4); }
.legal-account-links .legal-link-grid > :is(a,button):focus-visible { outline:4px solid var(--accent,#ffc65a); outline-offset:4px; }
@media (max-width:620px) { .legal-account-links .legal-link-grid { grid-template-columns:1fr; } }

/* v0.5.1 RC1: kaverit, pelaajakortit ja viiden kohteen mobiilinavigaatio. */
.bottom-nav{grid-template-columns:repeat(5,minmax(0,1fr))}
.bottom-nav .nav-icon{display:grid;place-items:center;line-height:1}
.bottom-nav .nav-icon>[data-icon-image]{display:block;width:1em;height:1em;object-fit:contain}
.bottom-nav .nav-icon>[data-icon-image][hidden]{display:none}
.clickable-player{cursor:pointer}
.clickable-player:hover{border-color:rgba(255,189,61,.75)}
.player-dialog-profile{display:grid;grid-template-columns:180px minmax(0,1fr);align-items:center;gap:24px;margin-bottom:24px}
.player-dialog-avatar{width:180px;height:180px;display:grid;place-items:center;border:4px solid var(--accent);border-radius:50%;font-size:72px;background:radial-gradient(circle,rgba(227,154,37,.22),transparent 66%),var(--panel-2)}
.player-dialog-profile h3{margin:0 0 8px;font-size:44px}.player-dialog-profile p{margin:5px 0;color:var(--muted)}
.public-profile-page{width:min(932px,100%);margin:auto;padding:48px 16px 120px}
.public-profile-card{display:grid;grid-template-columns:220px minmax(0,1fr);align-items:center;gap:28px;padding:32px;border:1.2px solid var(--border-soft);border-radius:28px;background:linear-gradient(145deg,var(--panel-2),var(--panel))}
.public-profile-avatar{width:220px;height:220px;display:grid;place-items:center;border:4px solid var(--accent);border-radius:50%;font-size:88px;background:radial-gradient(circle,rgba(227,154,37,.22),transparent 66%),var(--panel-2)}
.public-profile-card h1{margin:0;font-size:64px}.public-profile-username{color:var(--muted)}.public-profile-stats{margin:24px 0}
.weekly-challenge-item:disabled{cursor:default;opacity:.72}
.lexapyr-challenge-exit{margin-inline-start:8px}
@media(max-width:1039px){
  :root{--header:168px;--nav:136px}
  html{scroll-padding-top:184px}
  .app-header{height:168px}
  .bottom-nav button b{font-size:22px}
  .player-dialog-profile{grid-template-columns:220px minmax(0,1fr)}
  .player-dialog-avatar{width:220px;height:220px;font-size:88px}
}
