:root{--bg: #121a2e;--bg-soft: #243447;--panel: #243556;--panel-2: #2f4a70;--ink: #f2f7ff;--muted: #a8b8d8;--green: #7ed957;--green-dark: #3d7a28;--gold: #ffd24a;--wood: #8b6914;--wood-dark: #5a4010;--pink: #ff8fab;--sky: #7de2ff;--danger: #e85d5d;--border: #3d5578;--shadow: rgba(10, 16, 28, .45);--glow: 0 0 18px rgba(240, 192, 64, .35);--font-display: "Press Start 2P", ui-monospace, monospace;--font-body: "Segoe UI", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;--radius: 18px;--radius-lg: 28px;--ease-bounce: cubic-bezier(.34, 1.45, .64, 1)}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{color:var(--ink);font-family:var(--font-body);font-size:17px;line-height:1.7;background-color:var(--bg);background-image:linear-gradient(180deg,#0a122873,#0a12288c),url(/bg-terraria-night.png);background-size:cover,cover;background-position:center,center top;background-attachment:fixed,fixed}a{color:var(--green);text-decoration:none}a:hover{color:var(--gold)}button,input,select,textarea{font:inherit;color:inherit}.container{width:min(1100px,calc(100% - 1.5rem));margin:0 auto}.site-header{position:sticky;top:0;z-index:30;border-bottom:3px solid rgba(74,98,120,.65);background:#1a2430e6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:0 0 var(--radius) var(--radius)}.site-header .inner{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.85rem 0;flex-wrap:wrap}.brand{display:inline-flex;align-items:center;gap:.75rem;color:var(--ink);font-family:var(--font-display);font-size:1.15rem}.brand-mark{width:3.15rem;height:3.15rem;display:grid;place-items:center;background:linear-gradient(145deg,var(--green),var(--green-dark));color:#fff;border:3px solid var(--gold);border-radius:40% 60% 55% 45%/55% 45% 60% 40%;box-shadow:0 4px 0 var(--shadow);font-size:1.35rem}.nav{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.nav a,.nav button.linkish{font-family:var(--font-display);font-size:.95rem;padding:.75rem 1.15rem;border:none;color:var(--muted);background:transparent;cursor:pointer;border-radius:999px;transition:transform .18s var(--ease-bounce),color .18s,background .18s}.nav a:hover,.nav a.active,.nav button.linkish:hover{color:var(--ink);background:var(--green);transform:translateY(-2px) scale(1.05);box-shadow:0 4px 0 var(--green-dark)}.user-chip{display:inline-flex;align-items:center;gap:.65rem;padding:.75rem 1.25rem;border:3px solid var(--wood);background:linear-gradient(180deg,#3d5268,var(--panel));border-radius:999px;box-shadow:0 4px 0 var(--shadow)}.user-chip .quota{font-family:var(--font-display);font-size:1rem;color:var(--gold)}.user-chip .quota.unlimited{color:var(--pink)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border:3px solid var(--wood-dark);padding:.95rem 1.55rem;cursor:pointer;font-family:var(--font-display);font-size:1.02rem;line-height:1.4;border-radius:999px;color:var(--ink);background:linear-gradient(180deg,var(--panel-2),var(--panel));box-shadow:0 5px 0 var(--wood-dark),0 12px 24px var(--shadow);transition:transform .2s var(--ease-bounce),box-shadow .2s,filter .2s;position:relative;overflow:hidden}.btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(120deg,transparent 35%,rgba(255,255,255,.28),transparent 65%);transform:translate(-130%);transition:transform .55s ease;pointer-events:none}.btn:hover:not(:disabled){transform:translateY(-4px) scale(1.03);box-shadow:0 8px 0 var(--wood-dark),0 18px 28px var(--shadow),var(--glow);filter:brightness(1.08)}.btn:hover:not(:disabled):after{transform:translate(130%)}.btn:active:not(:disabled){transform:translateY(3px) scale(.96);box-shadow:0 1px 0 var(--wood-dark);transition-duration:80ms}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:linear-gradient(180deg,#8fd864,var(--green));border-color:var(--green-dark);color:#1b2e12;box-shadow:0 5px 0 var(--green-dark),0 12px 24px var(--shadow)}.btn-primary:hover:not(:disabled){box-shadow:0 8px 0 var(--green-dark),0 18px 28px var(--shadow),0 0 22px #6fbf4a73}.btn-secondary{background:linear-gradient(180deg,#f0a0b5,var(--pink));border-color:#a84a66;color:#3a1020}.btn-warm{background:linear-gradient(180deg,#ffe08a,var(--gold));border-color:#b8860b;color:#3a2800}.btn-ghost{background:#ffffff0f;border-color:var(--border);color:var(--muted)}.btn-ghost:hover:not(:disabled){color:var(--ink);border-color:var(--gold)}.btn-sm{padding:.75rem 1.15rem;font-size:.92rem}.hero{padding:3.25rem 0 2.5rem;display:grid;grid-template-columns:1.15fr .85fr;gap:2rem;align-items:center}.hero-badge{display:inline-block;font-family:var(--font-display);font-size:.82rem;color:#3a2800;background:linear-gradient(180deg,#ffe08a,var(--gold));border:3px solid var(--wood-dark);padding:.65rem 1.15rem;border-radius:999px;box-shadow:0 5px 0 var(--wood-dark);margin-bottom:1.15rem;animation:wobble 2.4s ease-in-out infinite}@keyframes wobble{0%,to{transform:rotate(-1.5deg) translateY(0)}50%{transform:rotate(1.5deg) translateY(-4px)}}.hero h1{font-family:var(--font-display);font-size:clamp(1.55rem,3.2vw,2.35rem);line-height:1.45;margin:0 0 1.15rem;text-shadow:0 3px 0 rgba(0,0,0,.35)}.hero h1 .accent{color:var(--gold);text-shadow:0 0 18px rgba(240,192,64,.55),0 3px 0 rgba(0,0,0,.35)}.hero .lead{color:var(--muted);font-size:1.28rem;margin:0 0 1.75rem;max-width:38rem}.hero-actions{display:flex;flex-wrap:wrap;gap:.95rem}.hero-card{padding:1.25rem;border:3px solid var(--wood);background:linear-gradient(180deg,#3a5268f2,#2c3e52f2);border-radius:var(--radius-lg);box-shadow:0 12px 0 var(--wood-dark),0 24px 40px var(--shadow);position:relative}.hero-card .preview-frame{aspect-ratio:1;border:3px solid var(--wood-dark);border-radius:var(--radius);overflow:hidden;background:var(--bg-soft);box-shadow:inset 0 0 0 3px #0000002e;position:relative}.hero-card .preview-frame:before{content:"LIVE PREVIEW";position:absolute;z-index:2;top:.75rem;left:.85rem;font-family:var(--font-display);font-size:.78rem;color:var(--gold);text-shadow:0 2px 0 rgba(0,0,0,.45);background:#1a2430bf;padding:.35rem .65rem;border-radius:999px}.hero-video{width:100%;height:100%;object-fit:cover;display:block;background:#000}.hero-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin-top:.95rem}.hero-stats span{border:3px solid var(--wood-dark);background:linear-gradient(180deg,var(--panel-2),var(--panel));padding:.85rem .4rem;text-align:center;font-family:var(--font-display);font-size:.78rem;color:var(--gold);border-radius:var(--radius);box-shadow:0 4px 0 var(--wood-dark)}.section{padding:1.15rem 0 3.25rem}.section h2{font-family:var(--font-display);font-size:1.4rem;margin:0 0 1.35rem;color:var(--gold);text-shadow:0 3px 0 rgba(0,0,0,.3)}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}.card{padding:1.45rem;border:3px solid var(--wood);background:linear-gradient(180deg,#3a5268eb,#2c3e52eb);border-radius:var(--radius-lg);box-shadow:0 8px 0 var(--wood-dark),0 18px 28px var(--shadow);transition:transform .2s var(--ease-bounce),box-shadow .2s}.card:hover{transform:translateY(-8px) rotate(-1deg) scale(1.02);box-shadow:0 14px 0 var(--wood-dark),0 28px 40px var(--shadow),var(--glow)}.card h3{margin:0 0 .75rem;font-family:var(--font-display);font-size:1.02rem;color:var(--green)}.card p{margin:0;color:var(--muted);font-size:1.18rem}.stagger>*{opacity:0;transform:translateY(24px) scale(.96);animation:pop-in .55s var(--ease-bounce) forwards}.stagger>*:nth-child(1){animation-delay:.05s}.stagger>*:nth-child(2){animation-delay:.14s}.stagger>*:nth-child(3){animation-delay:.23s}.stagger>*:nth-child(4){animation-delay:.32s}.stagger>*:nth-child(5){animation-delay:.41s}.stagger>*:nth-child(6){animation-delay:.5s}@keyframes pop-in{to{opacity:1;transform:translateY(0) scale(1)}}.panel{padding:1.75rem;border:4px solid var(--wood);background:linear-gradient(180deg,#3a5268f2,#2c3e52f2);border-radius:var(--radius-lg);box-shadow:0 10px 0 var(--wood-dark),0 24px 36px var(--shadow)}.panel h2,.panel .panel-title{font-family:var(--font-display);font-size:1.2rem;margin-top:0;color:var(--gold)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}.field{display:flex;flex-direction:column;gap:.5rem}.field.full{grid-column:1 / -1}.field label{font-family:var(--font-display);font-size:.88rem;color:var(--gold)}.field .hint{color:var(--muted);font-size:1.08rem}.field input,.field select,.field textarea{width:100%;border:3px solid var(--wood-dark);background:#0f1620a6;color:var(--ink);padding:1rem 1.15rem;outline:none;border-radius:var(--radius);box-shadow:inset 0 3px 8px #00000040;transition:border-color .18s,box-shadow .18s,transform .18s}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--green);transform:scale(1.01);box-shadow:0 0 0 4px #6fbf4a47,inset 0 3px 8px #0003;animation:field-glow 1.8s ease-in-out infinite}@keyframes field-glow{50%{box-shadow:0 0 0 6px #6fbf4a66,inset 0 3px 8px #0003}}.field textarea{min-height:120px;resize:vertical}.form-actions{display:flex;flex-wrap:wrap;gap:.95rem;margin-top:1.55rem;align-items:center}.alert{border:3px solid var(--wood);padding:1.15rem 1.25rem;margin-bottom:1.25rem;border-radius:var(--radius);box-shadow:0 5px 0 var(--wood-dark);font-size:1.18rem}.alert-error{background:#e85d5d33;border-color:var(--danger);color:#ffd0d0}.alert-info{background:#6ec6e82e;border-color:var(--sky);color:#d8f2ff}.alert-warning{background:#f0c0402e;border-color:var(--gold);color:#ffe9b0}.result-layout{display:grid;grid-template-columns:1.15fr .85fr;gap:1.25rem;align-items:start}.block{border:3px solid var(--wood);background:linear-gradient(180deg,#3a5268eb,#2c3e52eb);padding:1.35rem;margin-bottom:1.15rem;border-radius:var(--radius-lg);box-shadow:0 8px 0 var(--wood-dark)}.block h3{margin:0 0 .85rem;font-family:var(--font-display);font-size:1.02rem;color:var(--pink)}.block ul{margin:0;padding-left:1.25rem}.block li{margin:.5rem 0}.block p{margin:0}.muted{color:var(--muted);font-size:1.1rem}.score-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.85rem}.score-item{border:3px solid var(--wood-dark);background:#0f16208c;padding:.95rem .55rem;text-align:center;border-radius:var(--radius)}.score-item .label{display:block;color:var(--muted);font-size:1.02rem;margin-bottom:.4rem}.score-item .value{font-family:var(--font-display);font-size:1.22rem;color:var(--gold)}.score-bar{height:10px;margin-top:.65rem;border:2px solid var(--wood-dark);background:var(--bg);overflow:hidden;border-radius:999px}.score-bar>i{display:block;height:100%;background:linear-gradient(90deg,var(--green),var(--gold));border-radius:999px;transform-origin:left;animation:bar-grow .75s var(--ease-bounce)}@keyframes bar-grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.image-panel{position:sticky;top:5.75rem}.image-frame{width:100%;aspect-ratio:16 / 9;border:3px solid var(--wood-dark);border-radius:var(--radius);background:var(--bg);display:grid;place-items:center;overflow:hidden;box-shadow:inset 0 0 0 3px #0000002e}.image-frame img{width:100%;height:100%;object-fit:contain;display:block;background:#000}.prompt-box{margin-top:1rem;padding:1.05rem;border:3px dashed var(--wood);background:#0f162080;color:var(--muted);font-size:1.08rem;white-space:pre-wrap;word-break:break-word;border-radius:var(--radius)}.list{display:grid;gap:1.15rem}.list-item{display:grid;grid-template-columns:1fr auto;gap:1rem;align-items:center;padding:1.25rem 1.35rem;border:3px solid var(--wood);background:linear-gradient(180deg,#3a5268eb,#2c3e52eb);border-radius:var(--radius-lg);box-shadow:0 7px 0 var(--wood-dark);transition:transform .2s var(--ease-bounce),box-shadow .2s}.list-item:hover{transform:translateY(-5px) scale(1.01);box-shadow:0 12px 0 var(--wood-dark),var(--glow)}.list-item h3{margin:0 0 .5rem;font-family:var(--font-display);font-size:.98rem;color:var(--green)}.meta{display:flex;flex-wrap:wrap;gap:.65rem 1rem;color:var(--muted);font-size:1.08rem}.chip{display:inline-flex;align-items:center;padding:.35rem .85rem;border:2px solid var(--wood);background:#0f16208c;color:var(--gold);font-family:var(--font-display);font-size:.78rem;border-radius:999px}.empty{text-align:center;padding:3.25rem 1.25rem;color:var(--muted);border:3px dashed var(--wood);border-radius:var(--radius-lg);background:#1a243080;font-size:1.25rem}.footer{border-top:3px solid rgba(74,98,120,.6);padding:1.75rem 0 2.5rem;color:var(--muted);font-size:1.1rem;border-radius:var(--radius) var(--radius) 0 0}.loading-row{display:flex;align-items:center;gap:.95rem;color:var(--muted);font-size:1.18rem}.spinner{width:1.35rem;height:1.35rem;border:3px solid var(--wood-dark);border-top-color:var(--gold);border-radius:50%;animation:spin .75s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.progress-pixel{margin-top:1.15rem;height:22px;border:3px solid var(--wood-dark);background:var(--bg);border-radius:999px;overflow:hidden;box-shadow:0 4px 0 var(--wood-dark)}.progress-pixel>i{display:block;height:100%;background:linear-gradient(90deg,var(--green),var(--gold),var(--pink));background-size:200% 100%;animation:slide-bar 1.2s ease-in-out infinite;border-radius:999px}@keyframes slide-bar{0%{background-position:0% 0;transform:scaleX(.35);transform-origin:left}50%{transform:scaleX(1);transform-origin:left}to{background-position:100% 0;transform:scaleX(.35);transform-origin:right}}.progress-num{margin-left:auto;font-family:var(--font-display);font-size:1rem;color:var(--gold)}.stage-list{margin-top:1.25rem;border:3px solid var(--wood);background:#0f16208c;padding:1.15rem 1.25rem;border-radius:var(--radius-lg);box-shadow:0 7px 0 var(--wood-dark)}.stage-list-head{display:flex;justify-content:space-between;gap:.85rem;flex-wrap:wrap;margin-bottom:.75rem}.refine-title{font-family:var(--font-display);font-size:.95rem;color:var(--gold)}.stage-list ol{list-style:none;margin:0;padding:0;display:grid;gap:.65rem}.stage{display:flex;align-items:center;gap:.75rem;padding:.7rem .95rem;border:2px solid transparent;color:var(--muted);font-size:1.15rem;border-radius:var(--radius);transition:transform .18s var(--ease-bounce),background .18s}.stage-done{color:var(--green);border-color:#6fbf4a59;background:#6fbf4a1f}.stage-active{color:var(--gold);border-color:var(--gold);background:#f0c04024;transform:translate(6px);animation:hop 1.1s var(--ease-bounce) infinite}@keyframes hop{0%,to{transform:translate(6px) translateY(0)}50%{transform:translate(10px) translateY(-3px)}}.stage-fail{color:var(--danger);border-color:#e85d5d73}.stage-icon{width:1.55rem;text-align:center;font-family:var(--font-display);font-size:.92rem}.stage-detail{margin-left:auto;font-size:1.05rem;color:var(--muted)}.stage-spin{margin-left:auto}.auth-wrap{max-width:560px;margin:2.75rem auto 3.25rem}.auth-wrap .panel{border-width:5px;box-shadow:0 12px 0 var(--wood-dark),0 28px 40px var(--shadow)}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:.85rem;margin-bottom:1.35rem}.auth-tabs button{border:3px solid var(--wood-dark);background:#0f162080;color:var(--muted);padding:1.05rem;cursor:pointer;font-family:var(--font-display);font-size:.92rem;border-radius:999px;transition:transform .18s var(--ease-bounce),background .18s}.auth-tabs button.active{background:linear-gradient(180deg,#8fd864,var(--green));color:#1b2e12;border-color:var(--green-dark);transform:scale(1.04);box-shadow:0 5px 0 var(--green-dark)}.admin-box{margin-top:1.45rem;padding:1.25rem;border:3px dashed var(--gold);background:#f0c0401f;border-radius:var(--radius)}.admin-box h3{margin:0 0 .85rem;font-family:var(--font-display);font-size:.95rem;color:var(--gold)}.pointer-glow{pointer-events:none;position:fixed;top:-90px;left:-90px;width:180px;height:180px;margin-left:-90px;margin-top:-90px;border-radius:50%;background:radial-gradient(circle,rgba(240,192,64,.16),transparent 68%);z-index:1;mix-blend-mode:screen;will-change:transform}.spark{pointer-events:none;position:fixed;width:10px;height:10px;z-index:80;border-radius:30%;animation:burst-out .55s cubic-bezier(.17,.67,.3,1) forwards}@keyframes burst-out{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(var(--dx),var(--dy)) scale(.3);opacity:0}}.burst{pointer-events:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;overflow:hidden}.burst i{position:absolute;width:12px;height:12px;border-radius:35%;animation:burst-out .9s cubic-bezier(.17,.67,.3,1) forwards}.idea-card h3{margin:.45rem 0;font-family:var(--font-display);font-size:1.08rem;color:var(--green)}.idea-head{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem;margin-bottom:1.05rem}.idea-fields{display:grid;gap:.85rem;margin:0 0 1.25rem}.idea-fields dt{font-family:var(--font-display);font-size:.78rem;color:var(--gold);margin-bottom:.3rem}.idea-fields dd{margin:0;color:var(--ink)}.list-item-stack{grid-template-columns:1fr auto;grid-template-areas:"main del" "thumbs thumbs";align-items:center}.list-item-main{grid-area:main;color:inherit;display:block}.list-del{grid-area:del}.thumb-row{grid-area:thumbs;display:flex;gap:.85rem;flex-wrap:wrap;margin-top:.85rem}.thumb-row img,.thumb-empty{width:140px;height:79px;object-fit:cover;border:3px solid var(--wood);border-radius:var(--radius);background:var(--bg);box-shadow:0 4px 0 var(--wood-dark)}.thumb-empty{display:grid;place-items:center;color:var(--muted);font-family:var(--font-display);font-size:.88rem}.quest-loading{margin-top:1.35rem;padding:1.25rem;border:3px dashed var(--green);background:#6fbf4a1f;border-radius:var(--radius)}.panel.is-loading{animation:shake-soft .6s ease-in-out infinite}@keyframes shake-soft{0%,to{transform:translate(0) rotate(0)}25%{transform:translate(2px,-2px) rotate(-.4deg)}75%{transform:translate(-2px,2px) rotate(.4deg)}}@media(max-width:900px){.hero,.result-layout,.cards{grid-template-columns:1fr}.form-grid,.score-grid{grid-template-columns:1fr 1fr}.image-panel{position:static}}@media(max-width:560px){.form-grid,.score-grid,.hero-stats,.list-item{grid-template-columns:1fr}.list-del{justify-self:start}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}@media(max-width:720px){body{font-size:18px}.container{width:min(100% - 1.15rem,560px)}.site-header .inner{flex-direction:column;align-items:stretch;gap:.75rem;padding:.75rem 0 1rem}.brand{justify-content:center;font-size:1.05rem}.nav{width:100%;display:grid;grid-template-columns:repeat(3,1fr);gap:.55rem}.nav a,.nav button.linkish{font-size:.82rem;padding:.85rem .35rem;text-align:center;background:#ffffff0f;border-radius:16px;min-height:48px;display:flex;align-items:center;justify-content:center}.user-chip{width:100%;justify-content:space-between;flex-wrap:wrap;border-radius:20px;padding:.85rem 1rem;font-size:1.15rem}.user-chip .quota{font-size:.95rem}.site-header .admin-box{margin:0 0 .5rem}.hero{grid-template-columns:1fr;padding:1.75rem 0 1.5rem;gap:1.35rem}.hero h1{font-size:1.45rem;line-height:1.55;text-align:left}.hero .lead{font-size:1.18rem;line-height:1.75}.hero-actions{display:grid;grid-template-columns:1fr;gap:.85rem}.hero-actions .btn{width:100%;min-height:56px;font-size:1.02rem;border-radius:22px}.hero-card{order:-1;padding:1rem}.hero-card .preview-frame{aspect-ratio:4 / 3}.hero-stats{grid-template-columns:repeat(3,1fr)}.section{padding-bottom:2.25rem}.section h2{font-size:1.25rem}.cards{grid-template-columns:1fr;gap:1rem}.card{padding:1.25rem;border-radius:22px}.card h3{font-size:1.05rem}.card p{font-size:1.15rem}.panel{padding:1.15rem;border-radius:22px;border-width:3px}.form-grid{grid-template-columns:1fr;gap:1rem}.field input,.field select,.field textarea{font-size:1.12rem;min-height:52px;padding:1rem;border-radius:16px}.form-actions{flex-direction:column;align-items:stretch}.form-actions .btn{width:100%;min-height:56px;font-size:1.05rem;border-radius:22px}.score-grid{grid-template-columns:1fr 1fr}.result-layout{grid-template-columns:1fr}.image-panel{position:static}.list-item{grid-template-columns:1fr;border-radius:20px;padding:1.15rem}.list-item-stack{grid-template-areas:"main" "thumbs" "del";gap:.75rem}.list-del{width:100%;min-height:48px}.thumb-row img,.thumb-empty{width:calc(33.333% - .55rem);height:auto;aspect-ratio:16 / 9}.auth-wrap{margin:1.5rem auto 2.5rem}.auth-tabs button{min-height:52px;font-size:.95rem;border-radius:18px}.stage{font-size:1.08rem;flex-wrap:wrap}.stage-detail{margin-left:0;width:100%;padding-left:2.15rem}.btn{min-height:48px}.footer{text-align:center;font-size:1.05rem}}@media(max-width:380px){.brand{font-size:.95rem}.nav a,.nav button.linkish{font-size:.75rem}.hero h1{font-size:1.28rem}}.brand-mark-img{width:3.25rem;height:3.25rem;object-fit:contain;border-radius:28%;filter:drop-shadow(0 3px 0 rgba(0,0,0,.28))}@media(max-width:720px){.brand-mark-img{width:3.75rem;height:3.75rem;margin:0 auto}}
