:root{--paper: #fff7f1;--paper-deep: #fbe9e2;--paper-card: rgba(255, 255, 255, .78);--ink: #211a1a;--ink-soft: #5f4e4a;--text: #211a1a;--text-dim: #665551;--text-faint: #8c7771;--marker: #e5322d;--marker-dark: #a92320;--marker-soft: #f9c5bc;--yellow: #f4c84e;--green: #16724f;--danger: #b42318;--radius: 16px;--radius-sm: 10px;--shadow: 4px 4px 0 rgba(229, 50, 45, .2);--max: 1120px;--font: "Avenir Next", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, sans-serif;--font-hand: "Bradley Hand", "Segoe Print", "Kaiti SC", "STKaiti", cursive}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--paper);color:var(--text);font-family:var(--font);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}body:before{content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;opacity:.34;background-image:radial-gradient(rgba(229,50,45,.1) .7px,transparent .7px);background-size:15px 15px}body:after{content:"";position:fixed;inset:0;z-index:-3;pointer-events:none;background:linear-gradient(155deg,#fffaf5 0%,var(--paper) 55%,#fbe9e2 100%)}a{color:var(--marker-dark);text-underline-offset:3px}h1,h2,h3{line-height:1.18;margin:0;letter-spacing:-.02em;font-weight:900}h1,h2{color:var(--marker-dark)}img{max-width:100%;display:block}button{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--yellow);outline-offset:3px;border-radius:6px}.app{min-height:100vh;display:flex;flex-direction:column}.shell{width:100%;max-width:var(--max);margin:0 auto;padding:0 24px}main.page{flex:1;padding-bottom:96px}.section{padding:72px 0 8px}.section-head{max-width:66ch;margin-bottom:28px}.section-head h2{font-size:clamp(28px,3.4vw,42px);transform:rotate(-1deg);transform-origin:left center}.section-head p{color:var(--text-dim);margin:14px 0 0}.eyebrow{display:inline-block;margin-bottom:10px;color:var(--marker);font-size:12px;font-weight:900;letter-spacing:.17em;text-transform:uppercase;transform:rotate(-2deg)}.eyebrow:after{content:"";display:block;height:7px;margin-top:-5px;background:url(/brand/wave.webp) center / 100% 100% no-repeat}.topbar{position:sticky;top:0;z-index:40;background:#fff7f1f0;border-bottom:2px solid var(--marker)}.topbar-inner{display:flex;align-items:center;gap:18px;min-height:68px}.brand{display:flex;align-items:center;gap:9px;background:none;border:0;padding:0;cursor:pointer;text-align:left}.brand img{width:38px;height:38px;object-fit:contain}.brand strong{font-size:19px;font-weight:900;color:var(--marker-dark)}.brand span{font-size:12px;color:var(--text-faint)}.topbar nav{margin-left:auto;display:flex;align-items:center;gap:4px}.navlink,.lang-toggle{border:2px solid transparent;background:transparent;cursor:pointer;color:var(--text-dim);font-size:14px}.navlink{padding:7px 11px;border-radius:9px}.navlink:hover,.navlink[aria-current=page]{color:var(--marker-dark);border-color:var(--marker);background:#fff}.navlink[aria-current=page]{font-weight:900;box-shadow:2px 2px 0 var(--marker)}.lang-toggle{padding:7px 12px;margin-left:6px;border-color:var(--marker);border-radius:9px;color:var(--marker-dark)}.lang-toggle:hover{background:var(--marker-soft)}.hero{position:relative;padding:86px 0 0;isolation:isolate;overflow:hidden}.hero-canvas{position:absolute;inset:-90px -10vw 0;z-index:-1;pointer-events:none;opacity:.42}.hero-canvas canvas{width:100%!important;height:100%!important;display:block}.hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(260px,.95fr);gap:42px;align-items:center;min-height:430px}.hero-badge{display:inline-block;padding:5px 12px;color:var(--marker-dark);font-size:13px;font-weight:900;border:2px solid var(--marker);border-radius:48% 52% 45% 55%;background:#fff;transform:rotate(-2deg);box-shadow:2px 2px 0 var(--marker)}.hero h1{max-width:16ch;margin-top:20px;font-size:clamp(38px,5.7vw,70px)}.hero h1 em{font-style:normal;color:var(--marker);position:relative;white-space:nowrap}.hero h1 em:after{content:"";position:absolute;left:-3%;right:-5%;bottom:-6px;height:10px;background:url(/brand/wave.webp) center / 100% 100% no-repeat}.hero p.lead{max-width:54ch;margin:24px 0 0;color:var(--text-dim);font-size:17px}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}.hero-note{margin:20px 0 0;color:var(--text-faint);font-size:13px}.hero-visual{position:relative;min-height:370px;display:grid;place-items:center}.hero-visual:before{content:"";position:absolute;width:min(32vw,330px);aspect-ratio:1;border:2px dashed var(--marker);border-radius:47% 53% 50% 46%;transform:rotate(9deg);background:#ffffff7a}.hero-mascot{position:relative;width:min(290px,75%);filter:drop-shadow(7px 8px 0 rgba(229,50,45,.15));transform:rotate(5deg)}.hero-sparkle{position:absolute;width:44px;height:44px}.hero-sparkle-one{top:18%;right:12%;transform:rotate(12deg)}.hero-sparkle-two{bottom:16%;left:9%;width:30px;height:30px;transform:rotate(-12deg)}.doodles-band{margin-top:12px;height:116px;overflow:hidden;opacity:.92}.doodles-band img{width:100%;height:auto;min-width:720px;transform:translateY(-10%)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 22px;border:2px solid var(--marker);border-radius:12px;cursor:pointer;font-size:15px;font-weight:900;text-decoration:none;transition:transform .16s ease,box-shadow .16s ease,background .16s ease}.btn:hover:not(:disabled){transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--marker)}.btn:disabled{opacity:.48;cursor:not-allowed}.btn-primary{background:var(--marker);color:#fff;box-shadow:3px 3px 0 var(--marker-dark)}.btn-primary:hover:not(:disabled){background:var(--marker-dark)}.btn-ghost{background:#fff;color:var(--marker-dark)}.btn-ghost:hover:not(:disabled){background:var(--marker-soft)}.btn-sm{padding:6px 12px;font-size:13px;border-radius:8px}.card{padding:24px;background:var(--paper-card);border:2px solid var(--marker);border-radius:14px 17px 13px 16px;box-shadow:var(--shadow)}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.step{position:relative}.step:nth-child(2){transform:rotate(1deg)}.step:nth-child(3){transform:rotate(-1deg)}.step h3{margin-bottom:8px;font-size:19px;color:var(--marker-dark)}.step p{margin:0;color:var(--text-dim);font-size:14.5px}.rules{list-style:none;margin:0;padding:0;display:grid;gap:10px}.rules li{display:flex;gap:12px;align-items:flex-start;padding:14px 18px;border-bottom:2px solid var(--marker-soft);color:var(--text-dim)}.rules li:before{content:"";width:22px;height:22px;flex:none;background:url(/brand/sparkle.webp) center / contain no-repeat}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(238px,1fr));gap:20px}.shot{overflow:hidden;margin:0;background:#fff;border:2px solid var(--marker);border-radius:12px 15px 11px 14px;box-shadow:3px 3px #e5322d2e;transition:transform .2s ease}.shot:nth-child(3n+1){transform:rotate(-1deg)}.shot:nth-child(3n+2){transform:rotate(.8deg)}.shot:hover{transform:translateY(-4px) rotate(0)}.shot img{width:100%;aspect-ratio:2 / 3;object-fit:cover;background:var(--paper-deep)}.shot-meta{padding:12px 14px 14px}.shot-meta strong{display:block;font-size:14px;color:var(--ink)}.shot-meta span{font-size:12px;color:var(--text-faint)}.shot-meta p{margin:8px 0 0;font-family:var(--font-hand);font-size:15px;color:var(--marker-dark)}.empty{padding:56px 24px;text-align:center;color:var(--text-faint);border:2px dashed var(--marker);border-radius:12px;background:#ffffff6b}.create-grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:28px;align-items:start}.dropzone{border:2px dashed var(--marker);border-radius:13px;padding:36px 24px;text-align:center;cursor:pointer;background:#ffffff73;transition:transform .18s ease,background .18s ease}.dropzone:hover,.dropzone[data-over=true]{background:var(--marker-soft);transform:rotate(-.6deg)}.dropzone input{display:none}.dropzone-icon{width:46px;height:46px;margin:0 auto;display:grid;place-items:center;color:var(--marker);border:3px solid var(--marker);border-radius:50%;font-size:34px;font-weight:400;line-height:1}.dropzone p{margin:12px 0 0;color:var(--text-dim);font-size:14.5px}.preview,.result-frame{overflow:hidden;border:2px solid var(--marker);border-radius:13px;background:#fff;box-shadow:var(--shadow)}.preview{max-height:340px}.preview img{width:100%;object-fit:contain;max-height:340px}.result-frame img{width:100%}.checkbox{display:flex;align-items:flex-start;gap:10px;margin:18px 0;font-size:14.5px;color:var(--text-dim);cursor:pointer}.checkbox input{margin-top:4px;accent-color:var(--marker);width:16px;height:16px}.progress{display:flex;align-items:center;gap:12px;font-size:14.5px;color:var(--marker-dark)}.spinner{width:18px;height:18px;flex:none;border-radius:50%;border:3px solid var(--marker-soft);border-top-color:var(--marker);animation:spin .85s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.bar{height:8px;border-radius:999px;background:var(--marker-soft);overflow:hidden;margin-top:16px}.bar>i{display:block;height:100%;border-radius:999px;background:var(--marker);transition:width .6s ease}.copy-groups{display:grid;gap:16px;margin-top:4px}.copy-group h4{margin:0 0 8px;color:var(--marker-dark);font-size:12px;letter-spacing:.1em;text-transform:uppercase}.copy-group ul{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:8px}.copy-group li{padding:6px 12px;border-bottom:2px solid var(--marker);color:var(--marker-dark);font-family:var(--font-hand);font-size:15px}.copy-group[data-kind=decorations] li{border-bottom-color:var(--yellow);color:var(--ink-soft);font-family:var(--font);font-size:13px}.link-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.chip{display:inline-block;padding:5px 11px;border:2px solid var(--marker);border-radius:9px;background:#fff;color:var(--marker-dark);font-size:12px}.chip[data-tone=ok]{color:var(--green);border-color:var(--green)}.chip[data-tone=warn]{color:#8a6200;border-color:var(--yellow)}.chip[data-tone=bad]{color:var(--danger);border-color:var(--danger)}.mono{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:13px;word-break:break-all}[data-platform-admin-shell]{width:100%;max-width:var(--max);margin:0 auto;padding:32px 24px 96px;display:grid;gap:22px}[data-platform-admin-shell]>header h1{font-size:clamp(24px,3vw,34px);color:var(--marker-dark)}nav[aria-label="Admin sections"]{display:flex;flex-wrap:wrap;gap:6px}nav[aria-label="Admin sections"] button{padding:8px 16px;border:2px solid var(--marker);border-radius:9px;background:#fff;color:var(--marker-dark);cursor:pointer}nav[aria-label="Admin sections"] button[aria-current=page]{background:var(--marker);color:#fff;box-shadow:2px 2px 0 var(--marker-dark)}[data-platform-admin-section]{padding:22px 24px;display:grid;gap:16px;background:var(--paper-card);border:2px solid var(--marker);border-radius:14px;box-shadow:var(--shadow)}[data-platform-admin-section]>h2{font-size:18px;color:var(--marker-dark)}[data-platform-admin-section] form{display:grid;gap:14px}[data-platform-admin-section] label{display:grid;gap:6px;color:var(--text-faint);font-size:12px;letter-spacing:.06em;text-transform:uppercase}[data-platform-admin-section] label:has(input[type=checkbox]){grid-template-columns:auto 1fr;align-items:center;gap:10px;color:var(--text-dim);font-size:14px;letter-spacing:0;text-transform:none}input[type=text],input[type=url],input[type=number],input[type=password],select,textarea{width:100%;padding:10px 12px;border:2px solid #dca9a1;border-radius:9px;background:#fff;color:var(--text);font:inherit;font-size:14px}input[aria-invalid=true]{border-color:var(--danger)}input[type=checkbox]{width:18px;height:18px;accent-color:var(--marker)}[role=alert]{margin:0;color:var(--danger);font-size:13px}[data-platform-save-bar]{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-top:8px;border-top:2px solid var(--marker-soft);color:var(--text-faint);font-size:13px}[data-platform-save-bar] button{padding:10px 20px;border:2px solid var(--marker);border-radius:9px;background:var(--marker);color:#fff;cursor:pointer;font-weight:900}[data-platform-save-bar] button:disabled{opacity:.4;cursor:not-allowed}[data-platform-save-bar][data-dirty=true]{color:var(--marker-dark)}[data-platform-danger-zone]{display:grid;gap:12px;padding:20px 22px;border:2px solid var(--danger);border-radius:12px;background:#fff2ef}[data-platform-danger-zone] h2{color:var(--danger);font-size:16px}[data-platform-danger-zone] button{justify-self:start;padding:9px 18px;border:2px solid var(--danger);border-radius:9px;background:transparent;color:var(--danger);cursor:pointer}[data-platform-danger-zone] button:disabled{opacity:.4;cursor:not-allowed}[data-platform-notice]{padding:12px 16px;border:2px solid #dca9a1;border-radius:10px;background:#fff;color:var(--text-dim);font-size:14px}[data-platform-notice=warning]{border-color:var(--yellow);background:#fff9de;color:#765500}[data-platform-notice=error]{border-color:var(--danger);background:#fff2ef;color:var(--danger)}[data-platform-notice=success]{border-color:var(--green);background:#eefaf3;color:var(--green)}[data-platform-copy-address],[data-platform-chain-status],[data-platform-secret-state]{border:2px solid #dca9a1;border-radius:9px;background:#fff;color:var(--text-dim)}[data-platform-copy-address]{padding:8px 14px;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:13px;text-align:left;word-break:break-all;cursor:pointer}[data-platform-copy-address=missing]{color:var(--text-faint);cursor:default}[data-platform-chain-status],[data-platform-secret-state]{justify-self:start;padding:3px 10px;font-size:12px}[data-platform-secret-state=configured]{color:var(--green);border-color:var(--green)}[data-platform-secret-state=not-configured]{color:#8a6200;border-color:var(--yellow)}.admin-login{max-width:380px;margin:96px auto;display:grid;gap:14px}.admin-login label{display:grid;gap:6px;color:var(--text-faint);font-size:13px}.key-legend{margin:0;display:grid;gap:6px;color:var(--text-dim);font-size:13px}.key-legend>div{display:grid;grid-template-columns:200px 1fr;gap:12px}.key-legend code{color:var(--marker-dark);font-size:12px}.table-scroll{overflow-x:auto}table.jobs{width:100%;border-collapse:collapse;font-size:13.5px}table.jobs th,table.jobs td{padding:10px 12px;border-bottom:2px solid var(--marker-soft);text-align:left;vertical-align:top;white-space:nowrap}table.jobs th{color:var(--marker-dark);font-size:11px;letter-spacing:.1em;text-transform:uppercase}table.jobs td.wrap{min-width:220px;color:var(--text-dim);white-space:normal}.row-actions{display:flex;flex-wrap:wrap;gap:6px}.filters{display:flex;gap:8px}.mod-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.mod-card{overflow:hidden;border:2px solid var(--marker);border-radius:11px;background:#fff}.mod-card img{width:100%;aspect-ratio:2 / 3;object-fit:cover;background:var(--paper-deep)}.mod-card .mod-body{display:grid;gap:8px;padding:12px;font-size:13px}.footer{padding:28px 0 40px;border-top:2px solid var(--marker);color:var(--text-faint);font-size:13px}.footer-inner{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;justify-content:space-between}@media(prefers-reduced-motion:reduce){.spinner{animation-duration:3s}.shot:hover,.btn:hover:not(:disabled),.dropzone:hover{transform:none}}@media(max-width:900px){.hero-grid,.create-grid{grid-template-columns:minmax(0,1fr)}.hero-grid{min-height:0}.hero-visual{min-height:300px}.grid-3{grid-template-columns:minmax(0,1fr)}.key-legend>div{grid-template-columns:minmax(0,1fr);gap:2px}}@media(max-width:620px){.shell{padding-left:18px;padding-right:18px}.topbar-inner{min-height:auto;padding:10px 0;flex-wrap:wrap}.topbar nav{margin-left:0;width:100%;overflow-x:auto}.hero{padding-top:56px}.hero h1{max-width:13ch}.section{padding-top:48px}.doodles-band{height:82px}}.create-share-note{margin:12px 0 0;color:var(--text-faint);font-size:13px}
