:root{--night:#161329;--surface:#211c3d;--surface2:#2d2654;--line:#3a3266;--hot:#ff5c8a;--mint:#3be0c8;--sunny:#ffc24b;--text:#ede9ff;--muted:#a79fd4;--ink:#1a1730}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{background:radial-gradient(1200px 600px at 15% -10%,#2a2154 0,transparent 55%),radial-gradient(1000px 500px at 100% 0,#23204a 0,transparent 50%),var(--night);color:var(--text);font-family:Nunito,system-ui,sans-serif;min-height:100%;overflow-x:hidden}button{font-family:inherit;cursor:pointer;border:none;background:none}a,button{color:inherit}a{text-decoration:none}.wrap{max-width:1180px;margin:0 auto;padding:28px 20px 60px}header.top{display:flex;align-items:center;gap:16px;margin-bottom:30px;flex-wrap:wrap}.logo{width:56px;height:56px;border-radius:16px;flex:none;background:linear-gradient(135deg,var(--hot),#ff8f6b);display:grid;place-items:center;font-size:30px;box-shadow:0 8px 24px rgba(255,92,138,.35),inset 0 2px 0 rgba(255,255,255,.3);transform:rotate(-4deg)}.title h1{font-family:Fredoka;font-weight:700;font-size:30px;line-height:1;letter-spacing:.3px}.title p{color:var(--muted);font-weight:600;font-size:14px;margin-top:4px}.spacer{flex:1 1}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:20px;gap:20px}.cart{position:relative;border-radius:20px;padding:0;overflow:hidden;background:var(--surface);border:1px solid var(--line);aspect-ratio:4/5;display:flex;flex-direction:column;text-align:left;transition:transform .18s ease,box-shadow .18s ease;box-shadow:0 6px 18px rgba(0,0,0,.25)}.cart:hover{transform:translateY(-6px) rotate(-1deg);box-shadow:0 16px 34px rgba(0,0,0,.4)}.cart:focus-visible{outline:3px solid var(--mint);outline-offset:3px}.cart .label{height:64%;display:grid;place-items:center;font-size:66px;position:relative;background:linear-gradient(160deg,var(--c1,#3a3170),var(--c2,#241f47))}.cart .grip{position:absolute;top:12px;left:16px;right:16px;height:8px;border-radius:6px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.14) 0 10px,transparent 10px 20px)}.cart .meta{padding:14px 16px 16px;flex:1 1;display:flex;flex-direction:column;gap:2px;justify-content:center}.cart .meta b{font-family:Fredoka;font-weight:600;font-size:17px;line-height:1.15}.cart .meta span{color:var(--muted);font-size:12px;font-weight:600}.cart .led{position:absolute;top:14px;right:16px;width:10px;height:10px;border-radius:50%;background:var(--mint);box-shadow:0 0 10px var(--mint);animation:pulse 1.8s infinite}@keyframes pulse{0%,to{opacity:.4}50%{opacity:1}}.cart.new{background:linear-gradient(160deg,rgba(255,92,138,.16),rgba(59,224,200,.1));border:2px dashed var(--hot);align-items:center;justify-content:center;text-align:center;color:var(--text);gap:10px}.cart.new .plus{font-size:52px;color:var(--hot);line-height:1}.cart.new .plus,.cart.new b{font-family:Fredoka;font-weight:600}.cart.new b{font-size:18px}.cart.new span{color:var(--muted);font-size:13px;font-weight:600;padding:0 18px}.cart.building .label{background:linear-gradient(160deg,#332a63,#241f47)}.cart.building .blocks{display:flex;gap:6px}.cart.building .blocks i{width:14px;height:14px;border-radius:4px;background:var(--sunny);animation:hop 1s infinite}.cart.building .blocks i:nth-child(2){background:var(--mint);animation-delay:.15s}.cart.building .blocks i:nth-child(3){background:var(--hot);animation-delay:.3s}@keyframes hop{0%,to{transform:translateY(0)}40%{transform:translateY(-12px)}}.empty{grid-column:1/-1;text-align:center;color:var(--muted);padding:20px 0 0;font-weight:600}.gbar{display:flex;align-items:center;gap:12px;margin-bottom:18px;flex-wrap:wrap}.btn{border-radius:12px;padding:10px 16px;font-weight:700;font-size:15px;background:var(--surface2);border:1px solid var(--line);color:var(--text);transition:transform .12s,background .12s}.btn:hover{transform:translateY(-2px)}.btn:focus-visible{outline:3px solid var(--mint);outline-offset:2px}.btn.primary{background:linear-gradient(135deg,var(--hot),#ff7a6b);border:none;color:#2a0f1c}.btn.mint{background:linear-gradient(135deg,var(--mint),#57e0b0);border:none;color:#0d2b25}.btn.ghost{background:transparent}.btn:disabled{opacity:.55;cursor:default;transform:none}.gtitle{font-family:Fredoka;font-weight:600;font-size:22px;display:flex;align-items:center;gap:10px}.gtitle .em{font-size:26px}.seg{display:flex;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:4px;gap:4px}.seg button{border-radius:9px;padding:8px 16px;font-weight:700;font-size:14px;color:var(--muted)}.seg button.on{background:var(--surface2);color:var(--text)}.stage{display:grid;grid-template-columns:minmax(0,1fr);grid-gap:18px;gap:18px}.stage.edit{grid-template-columns:360px minmax(0,1fr)}@media (max-width:820px){.stage.edit{grid-template-columns:1fr}.wrap.game-view:has(.stage.edit){height:auto;overflow:visible}}.frame-shell{background:#fff;border-radius:18px;overflow:hidden;border:1px solid var(--line);box-shadow:0 12px 40px rgba(0,0,0,.4);min-height:520px;position:relative}.frame-shell iframe{width:100%;height:100%;min-height:520px;border:0;display:block}.wrap.game-view{height:100dvh;display:flex;flex-direction:column;padding-bottom:20px;overflow:hidden}.game-view .gbar{flex:none}.game-view .stage{flex:1 1;min-height:0;grid-template-rows:minmax(0,1fr)}.game-view .chat,.game-view .frame-shell,.game-view .frame-shell iframe{height:100%;min-height:0}.chat{background:var(--surface);border:1px solid var(--line);border-radius:18px;display:flex;flex-direction:column;overflow:hidden;min-height:520px}.chat .log{flex:1 1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}.bubble{padding:11px 14px;border-radius:14px;font-weight:600;font-size:14px;line-height:1.45;max-width:92%}.bubble.jonas{align-self:flex-end;background:linear-gradient(135deg,var(--hot),#ff7a6b);color:#2a0f1c;border-bottom-right-radius:4px}.bubble.werk{align-self:flex-start;background:var(--surface2);border-bottom-left-radius:4px}.bubble.werk.think{color:var(--muted);display:flex;gap:8px;align-items:center}.dots{display:inline-flex;gap:4px}.dots i{width:7px;height:7px;border-radius:50%;background:var(--mint);animation:hop 1s infinite}.dots i:nth-child(2){animation-delay:.15s}.dots i:nth-child(3){animation-delay:.3s}.chat .compose{border-top:1px solid var(--line);padding:12px;display:flex;gap:8px}.chat textarea{flex:1 1;resize:none;background:var(--night);border:1px solid var(--line);border-radius:12px;color:var(--text);font-family:inherit;font-weight:600;font-size:14px;padding:10px 12px;min-height:46px;max-height:120px}.chat textarea:focus{outline:none;border-color:var(--mint)}.send{flex:none;align-self:stretch;padding:0 16px;border-radius:12px;font-weight:800;background:linear-gradient(135deg,var(--mint),#57e0b0);color:#0d2b25}.send:disabled{opacity:.5;cursor:default}.overlay{position:fixed;inset:0;background:rgba(12,10,26,.72);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;padding:20px;z-index:50}.modal{background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:26px;max-width:520px;width:100%;box-shadow:0 20px 60px rgba(0,0,0,.5)}.modal h2{font-family:Fredoka;font-weight:600;font-size:24px;margin-bottom:6px}.modal p{color:var(--muted);font-weight:600;font-size:14px;margin-bottom:16px}.modal textarea{width:100%;min-height:120px;resize:vertical;background:var(--night);border:1px solid var(--line);border-radius:14px;color:var(--text);font-family:inherit;font-weight:600;font-size:15px;padding:14px;line-height:1.5}.modal textarea:focus{outline:none;border-color:var(--mint)}.chips{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 18px}.chip{background:var(--surface2);border:1px solid var(--line);border-radius:20px;padding:7px 13px;font-weight:700;font-size:13px;color:var(--muted)}.chip:hover{color:var(--text);border-color:var(--mint)}.modal .row{display:flex;gap:10px;justify-content:flex-end}.err{background:rgba(255,92,138,.14);border:1px solid var(--hot);color:#ffd0dd;border-radius:12px;padding:10px 14px;font-size:13px;margin-top:12px}.err,.loading{font-weight:600}.loading{color:var(--muted);padding:40px 0;text-align:center}.buildbox{background:var(--surface);border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:0 12px 40px rgba(0,0,0,.35)}.build-head{display:flex;align-items:center;gap:14px;padding:18px 20px;border-bottom:1px solid var(--line);flex-wrap:wrap}.build-head .blocks{display:flex;gap:6px}.build-head .blocks i{width:14px;height:14px;border-radius:4px;background:var(--sunny);animation:hop 1s infinite}.build-head .blocks i:nth-child(2){background:var(--mint);animation-delay:.15s}.build-head .blocks i:nth-child(3){background:var(--hot);animation-delay:.3s}.build-status{font-family:Fredoka;font-weight:600;font-size:18px}.build-metric{font-weight:800;font-size:14px;color:var(--ink);background:var(--mint);border-radius:999px;padding:5px 12px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.build-code{margin:0;padding:16px 20px;height:320px;overflow:auto;background:var(--night);color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;line-height:1.5;white-space:pre-wrap;word-break:break-word}.build-hint{padding:14px 20px;color:var(--muted);font-weight:600;font-size:13px;border-top:1px solid var(--line)}.think-metric{margin-left:auto;font-weight:800;font-size:12px;color:var(--mint);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.login{min-height:100vh;display:grid;place-items:center;padding:20px}.login .modal{text-align:center}.login-logo{width:64px;height:64px;margin:0 auto 14px;border-radius:18px;background:linear-gradient(135deg,var(--hot),#ff8f6b);display:grid;place-items:center;font-size:34px;box-shadow:0 8px 24px rgba(255,92,138,.35),inset 0 2px 0 rgba(255,255,255,.3);transform:rotate(-4deg)}.login .modal .row{justify-content:center}.login-input{width:100%;margin-top:6px;background:var(--night);border:1px solid var(--line);border-radius:14px;color:var(--text);font-family:inherit;font-weight:700;font-size:18px;padding:14px 16px;text-align:center;letter-spacing:2px}.login-input:focus{outline:none;border-color:var(--mint)}.logout{color:var(--muted);font-weight:700;font-size:13px;padding:8px 12px;border-radius:10px}.logout:hover{color:var(--text);background:var(--surface2)}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}