:root{--paper:#eee9db;--ink:#262b25;--muted:#74776d;--line:#a8a99d;--green:#38674c;--light:#f7f4eb;--red:#8a4b3c}
*{box-sizing:border-box}
body{margin:0;background:#d9d5c8;color:var(--ink);font-family:'Courier New',monospace;font-size:12px}
a{color:inherit}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
button:disabled{opacity:.45;cursor:not-allowed}
.shell{max-width:1510px;min-height:100vh;margin:auto;background:var(--paper);box-shadow:0 0 60px #5555;position:relative;overflow:hidden}
.shell:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.16;background-image:radial-gradient(#575344 0.55px,transparent .65px);background-size:5px 5px;z-index:4}
.top{height:45px;border-bottom:1px solid var(--ink);display:flex;align-items:center;justify-content:space-between;padding:0 24px;background:#e6e2d6;gap:10px}
.top strong{letter-spacing:2px}
.top span{color:var(--muted)}
.top-r{display:flex;align-items:center;gap:16px}
.status{color:var(--green)!important;font-weight:bold}
.status.off{color:var(--red)!important}
.wallet-btn{border:1px solid var(--ink);background:var(--paper);padding:6px 11px;font-weight:bold;font-size:11px;letter-spacing:1px}
.wallet-btn:hover{background:#d9e1d4}
.wallet-btn.on{background:#d4dccc;border-color:var(--green);color:var(--green)}
.layout{display:grid;grid-template-columns:210px minmax(0,1fr);min-height:calc(100vh - 45px)}
aside{border-right:1px solid var(--ink);padding:27px 15px;background:#e7e3d7}
.mark{display:flex;align-items:center;gap:9px;font-family:Georgia,serif;font-size:22px;font-weight:bold;padding:0 8px 29px;text-decoration:none}
.mark svg{width:52px;height:auto;flex:none}
.aside-label{font-size:10px;letter-spacing:2px;color:#777b71;margin:22px 8px 10px}
.nav{display:block;width:100%;text-align:left;border:1px solid transparent;background:transparent;padding:13px 11px;color:#41483f;text-decoration:none}
.nav:hover{background:#dedfd2}
.nav.active{background:#d4dccc;border-color:#9aa999;border-left:3px solid var(--green);font-weight:bold}
.nav span{color:#7e887b;margin-right:11px}
.mini{border:1px solid var(--line);margin:25px 3px;padding:12px;line-height:2;color:#565e53}
.mini strong{color:var(--green)}
.seq{padding:0 8px;line-height:2;color:#8d978a}
.seq b{color:var(--green)}
.seq i{font-style:normal;color:#b5b8ab}
.milestone{margin:10px 8px;font-size:10px;color:#6c7569;line-height:1.7}
.milestone .bar{height:6px;border:1px solid #9aa999;margin-top:5px;background:repeating-linear-gradient(90deg,#e7e3d7 0 4px,#dfe2d5 4px 5px)}
.milestone .bar i{display:block;height:100%;background:var(--green);transition:width .8s}
main{padding:32px 35px 60px;min-width:0}
.eyebrow{color:var(--green);letter-spacing:2px;font-size:11px;font-weight:bold}
.hero{display:grid;grid-template-columns:minmax(0,1fr) 250px;align-items:center;gap:20px}
.hero h1{font:normal clamp(43px,5vw,78px)/.99 Georgia,serif;letter-spacing:-3px;margin:16px 0 19px}
.hero h1 em{color:var(--green)}
.hero p{line-height:1.8;color:#60675d;max-width:630px;font-size:12px}
.spiral{height:210px;display:grid;place-items:center}
.spiral{flex-direction:column;gap:6px}.spiral .logo-hero{width:250px;max-width:100%;overflow:visible}.phi-cap{display:flex;justify-content:space-between;width:250px;max-width:100%;font-size:9px;letter-spacing:2px;color:#737e71}
.spiral .sp{stroke-dasharray:1;stroke-dashoffset:1;animation:spdraw 4.5s cubic-bezier(.3,.1,.2,1) .3s forwards}
@keyframes spdraw{to{stroke-dashoffset:0}}
.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin:21px 0 31px}
.btn{display:inline-block;border:1px solid var(--ink);padding:12px 16px;background:transparent;color:var(--ink);font-weight:bold;text-decoration:none;cursor:pointer}
.btn.primary{background:var(--green);color:#fff;border-color:var(--green)}
.btn:hover{background:#d9e1d4}
.btn.primary:hover{background:#28553c}
.btn.small{padding:7px 10px;font-size:11px}
.metrics{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);margin-bottom:27px}
.metric{padding:16px 18px;border-right:1px solid var(--line)}
.metric:last-child{border:0}
.metric small{display:block;color:#73786f;letter-spacing:1px}
.metric strong{display:inline-block;font:30px Georgia,serif;margin-top:8px}
.metric .unit{font-style:normal;color:#73786f;margin-left:6px}
.section{display:flex;align-items:center;justify-content:space-between;margin:27px 0 13px;gap:10px}
.section h2{font:28px Georgia,serif;margin:0}
.section small{color:#747b71}
.window{border:1px solid #6d726a;background:#f2efe5;box-shadow:3px 3px 0 #c9c8bb;min-width:0}
.winbar{background:#d8d9cd;border-bottom:1px solid #9b9e94;padding:10px 13px;display:flex;align-items:center;justify-content:space-between;font-size:11px}
.dots{display:flex;gap:5px}
.dots i{display:block;width:7px;height:7px;border:1px solid #858d80}
.dots i:first-child{background:var(--green)}
.controls{display:flex;gap:8px;align-items:center;padding:9px 12px;border-bottom:1px solid var(--line);background:#ebe8dc;flex-wrap:wrap}
.controls.solo{border:1px solid var(--line);margin:20px 0}
.controls input,.controls select{padding:7px 9px;background:#f9f7f0;border:1px solid #9da397;color:var(--ink);outline:none;min-width:0}
.controls input:focus,.controls select:focus{border-color:var(--green)}
.controls #regSearch,.controls #ancSearch{flex:1 1 220px}
.grow{flex:1}
.mini-btn{border:1px solid #858d80;background:#f2efe5;padding:5px 10px;font-weight:bold;min-width:32px}
.mini-btn:hover{background:#d9e1d4}
.graph{position:relative;height:540px;background-image:linear-gradient(#a7ad9b22 1px,transparent 1px),linear-gradient(90deg,#a7ad9b22 1px,transparent 1px);background-size:26px 26px;overflow:hidden;touch-action:none}
.graph canvas{position:absolute;inset:0;width:100%;height:100%;cursor:grab}
.graph canvas.drag{cursor:grabbing}
.graph canvas.hover{cursor:pointer}
.empty{position:absolute;inset:0;display:grid;place-items:center;text-align:center;line-height:2;color:#6a7569;letter-spacing:1px}
.empty a{color:var(--green);font-weight:bold}
.graph-foot{display:flex;justify-content:space-between;padding:11px 15px;border-top:1px solid var(--line);color:#6a7569;font-size:10px;gap:10px;flex-wrap:wrap}
.legend{display:flex;gap:17px;flex-wrap:wrap}
.legend span:before{content:'■';color:var(--green);margin-right:6px}
.legend .l-anc:before{content:'□'}
.legend .l-desc:before{content:'▧'}
.bottom{display:grid;grid-template-columns:1fr 1fr;gap:19px}
.bodypad{padding:20px}
.bodypad p{color:#636b61;line-height:1.7}
.formrow{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.field{display:flex;flex-direction:column;gap:8px;margin:11px 0}
.field label{font-size:10px;letter-spacing:1px;color:#73776c}
.field input,.field select,.field textarea{width:100%;padding:12px;background:#f9f7f0;border:1px solid #9da397;color:var(--ink);outline:none;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--green)}
.field .pfilter{padding:7px 10px;font-size:11px;background:#efeee4}
.preview{padding:12px;background:#e1e4d8;border:1px dashed #8c9a87;line-height:1.9;margin:14px 0}
.feed{list-style:none;margin:0;padding:0}
.feed li{border-bottom:1px solid #d4d5c9;padding:13px 0;line-height:1.5}
.feed li:last-child{border:0}
.feed li.new{animation:flash 1.6s}
@keyframes flash{from{background:#d7e4d4}to{background:transparent}}
.feed b{color:var(--green)}
.feed time{float:right;color:#8b9185;margin-left:10px}
.feed .k{display:inline-block;min-width:16px;color:var(--green)}
.feed a{color:var(--green)}
.live{color:var(--green);font-size:10px;letter-spacing:1px;animation:blink 2s steps(2) infinite}
@keyframes blink{50%{opacity:.35}}
.hidden{display:none!important}
.registry{width:100%;border-collapse:collapse}
.registry th,.registry td{text-align:left;padding:12px 14px;border-bottom:1px solid #c6cabe;white-space:nowrap}
.registry th{color:#70766b;font-size:10px;background:#efece1}
.registry tr:hover td{background:#e9ebdf}
.registry a{color:var(--green)}
.tablewrap{overflow:auto}
.tablefoot{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;gap:10px}
.coincell{display:flex;align-items:center;gap:10px}
.logo{width:28px;height:28px;object-fit:cover;border:1px solid #9aa999;background:#e1e4d8;display:inline-grid;place-items:center;color:var(--green);font:15px Georgia,serif;flex:none}
.logo.big{width:96px;height:96px;font-size:44px}
.pill{padding:4px 7px;background:#d7e4d4;color:#38674c;font-size:10px;letter-spacing:1px}
.pill.demo{background:#e6dccb;color:#7a5a32}
.pill.warn{background:#ead7cf;color:var(--red)}
.hint{color:#697268;line-height:1.8}
.toast{position:fixed;bottom:25px;right:25px;background:#244d35;color:white;padding:15px 22px;box-shadow:4px 4px 0 #abb6a3;z-index:20;max-width:420px;line-height:1.6}
.toast.err{background:#6e3b2f}
.detail{margin-top:15px;padding:13px;border:1px solid var(--line);background:#e6e8dc;line-height:1.8}
.detail a{color:var(--green);font-weight:bold}
.detail .acts{margin-top:8px;display:flex;gap:8px;flex-wrap:wrap}
.golden{font:italic 28px Georgia,serif;color:var(--green)}
.banner{border:1px solid #9aa999;background:#e1e4d8;padding:10px 13px;margin-bottom:18px;color:#4f5a4d}
.banner.warn{border-color:#b39b8c;background:#ece0d6;color:#6e3b2f}
.page-h{font:normal clamp(42px,5vw,64px) Georgia,serif;margin:16px 0;letter-spacing:-2px}
.create-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:19px;margin-top:28px;align-items:start}
.modes{display:flex;border:1px solid #858d80;margin-bottom:8px}
.mode{flex:1;border:0;background:transparent;padding:11px;font-weight:bold;color:#5d665b}
.mode+.mode{border-left:1px solid #858d80}
.mode.active{background:var(--green);color:#fff}
.upload{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.upload img{width:54px;height:54px;object-fit:cover;border:1px solid #9aa999}
.feeline{color:#5d665b;margin:0 0 12px;line-height:1.7}
.feeline b{color:var(--green)}
.steps{list-style:none;margin:14px 0;padding:0;counter-reset:s}
.steps li{counter-increment:s;padding:10px 0;border-bottom:1px dotted #b8bbaf;color:#8b9185}
.steps li:before{content:"0" counter(s) "  □  ";color:#a9ae9f}
.steps li.doing{color:var(--ink);font-weight:bold}
.steps li.doing:before{content:"0" counter(s) "  ◧  ";color:var(--green);animation:blink 1s steps(2) infinite}
.steps li.done{color:var(--green)}
.steps li.done:before{content:"0" counter(s) "  ■  ";color:var(--green)}
.steps li.fail{color:var(--red)}
.steps li.fail:before{content:"0" counter(s) "  ×  ";color:var(--red)}
.launch-msg{padding:10px;border:1px dashed #8c9a87;background:#e9eadf;word-break:break-word}
.launch-msg.err{border-color:#b39b8c;background:#ece0d6;color:#6e3b2f}
.launch-msg a{color:var(--green);font-weight:bold}
#myLaunches{margin-top:16px}
#myLaunches .row{display:flex;justify-content:space-between;gap:8px;padding:8px 0;border-bottom:1px dotted #c3c6ba;align-items:center}
.addr{cursor:pointer;border-bottom:1px dotted #8c9a87}
.addr:hover{color:var(--green)}
.tok-head{display:grid;grid-template-columns:96px minmax(0,1fr);gap:22px;align-items:center;margin:16px 0 22px}
.tok-head h1{font:normal clamp(36px,4.6vw,60px)/1 Georgia,serif;margin:0 0 8px;letter-spacing:-2px}
.tok-head h1 em{color:var(--green)}
.kv{display:grid;grid-template-columns:150px minmax(0,1fr);border-top:1px solid #d4d5c9}
.kv>div{padding:10px 0;border-bottom:1px solid #d4d5c9;word-break:break-all}
.kv>div:nth-child(odd){color:#73776c;font-size:10px;letter-spacing:1px;padding-top:12px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{border:1px solid #9aa999;background:#edece0;padding:5px 8px;text-decoration:none;display:inline-flex;gap:6px;align-items:center}
.chip:hover{background:#dce8d7;border-color:var(--green)}
.chip small{color:#7d867a}
.gens{margin:0;padding:0;list-style:none}
.gens li{padding:9px 0;border-bottom:1px dotted #c3c6ba;display:flex;gap:10px;align-items:flex-start}
.gens li>span:first-child{min-width:72px;color:#73776c;font-size:10px;letter-spacing:1px;padding-top:5px}
.flow{margin:6px 0}
.flow .r{display:grid;grid-template-columns:110px minmax(0,1fr) 92px;gap:10px;align-items:center;padding:5px 0}
.flow .b{height:12px;border:1px solid #9aa999;background:#efeee4}
.flow .b i{display:block;height:100%;background:var(--green)}
.flow .b i.alt{background:#8fa58f}
.flow .b i.mut{background:#b9bdb0}
.flow .v{text-align:right;color:#55715c}
.statgrid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);margin:22px 0}
.statgrid>div{padding:14px 16px;border-right:1px solid var(--line)}
.statgrid>div:last-child{border:0}
.statgrid small{color:#73786f;letter-spacing:1px;font-size:10px}
.statgrid strong{display:block;font:24px Georgia,serif;margin-top:6px}
.tri{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:19px}
@media(max-width:1100px){.create-grid{grid-template-columns:1fr}.tri{grid-template-columns:1fr}}
@media(max-width:900px){.layout{grid-template-columns:1fr}aside{display:flex;flex-wrap:wrap;align-items:center;padding:10px;border-right:0;border-bottom:1px solid var(--ink)}.mark{padding:0 15px 0 5px}.aside-label,.mini,.seq,.milestone{display:none}.nav{width:auto;padding:10px 9px}.hero{grid-template-columns:1fr 130px}.spiral{height:130px}.spiral .logo-hero,.phi-cap{width:150px}main{padding:22px 16px}.bottom{grid-template-columns:1fr}.top .sub,.top .phi{display:none}.statgrid{grid-template-columns:1fr 1fr}.statgrid>div:nth-child(2){border-right:0}.statgrid>div:nth-child(-n+2){border-bottom:1px solid var(--line)}}
@media(max-width:550px){.hero{grid-template-columns:1fr}.spiral{display:none}.hero h1{font-size:49px}.metrics{grid-template-columns:1fr 1fr}.metric:nth-child(2){border-right:0}.metric:nth-child(-n+2){border-bottom:1px solid var(--line)}.graph{height:420px}.formrow{grid-template-columns:1fr}.top{padding:0 9px;font-size:10px}.nav{font-size:10px}.top-r{gap:8px}.tok-head{grid-template-columns:64px 1fr}.logo.big{width:64px;height:64px}.kv{grid-template-columns:1fr}.kv>div:nth-child(odd){border-bottom:0;padding-bottom:0}.flow .r{grid-template-columns:80px minmax(0,1fr) 78px}}
.legend .l-burn:before{content:'▲';color:#8a4b3c}
.pill.burn{background:#ecdcd3;color:#8a4b3c}
.burnbar{height:6px;border:1px solid #c9a99b;background:#f2e9e2;min-width:80px}
.burnbar i{display:block;height:100%;background:#8a4b3c}
.mono-r{text-align:right}
.nextslot{border:1px solid #6d726a;background:#e8eadf;padding:18px;margin:10px 0 6px;box-shadow:3px 3px 0 #c9c8bb}
.nextslot .big{font:normal clamp(30px,4vw,48px)/1.05 Georgia,serif;letter-spacing:-1px}
.nextslot .big em{color:var(--green)}
.nextslot .eq{margin-top:8px;font-size:14px}
.nextslot .eq b{color:var(--green)}
.nextslot .meta{margin-top:10px;color:#697268;line-height:1.8}
.nextslot.reserved{border-color:#b39b8c;background:#ece0d6}
.upload .artprev{width:120px;height:120px;border:1px solid #6d726a;box-shadow:3px 3px 0 #c9c8bb}
.maincoin{border:1px solid var(--green);padding:5px 9px;font-size:11px;color:var(--green);font-weight:bold;cursor:pointer;letter-spacing:1px}
.maincoin:hover{background:#d9e1d4}
@media(max-width:900px){.maincoin{display:none}}
.x-link{display:inline-flex;align-items:center;gap:7px;height:28px;padding:0 9px 0 4px;border:1px solid var(--ink);background:var(--paper);color:var(--ink);text-decoration:none;font-size:11px;font-weight:bold;letter-spacing:1px;box-shadow:2px 2px 0 #c9c8bb;position:relative}
.x-link svg{width:13px;height:13px;padding:3px;box-sizing:content-box;border-right:1px solid #9aa999;color:#1e4d36}
.x-link:before{content:"";position:absolute;right:-1px;bottom:-1px;width:9px;height:9px;border-top:1px solid #9aa999;border-left:1px solid #9aa999;border-top-left-radius:9px}
.x-link:hover{background:#d9e1d4;color:var(--green)}
.x-side{display:flex;align-items:center;gap:10px;margin:0 3px;padding:10px;border:1px solid var(--line);text-decoration:none;color:#565e53;line-height:1.5;font-size:11px}
.x-side b{color:var(--green)}
.x-side:hover{background:#dedfd2;border-color:#9aa999}
.x-box{display:grid;place-items:center;width:34px;height:34px;flex:none;border:1px solid #1e4d36;position:relative;background:#e9eadf}
.x-box:after{content:"";position:absolute;right:3px;bottom:3px;width:12px;height:12px;border-top:1px solid #8fa58f;border-left:1px solid #8fa58f;border-top-left-radius:12px}
.x-box svg{width:15px;height:15px;color:#1e4d36}
@media(max-width:900px){.x-link span{display:none}.x-link{padding:0 4px}.x-link svg{border-right:0}.x-side{display:none}}
.top .x-link span{color:var(--ink)}.top .x-link:hover span{color:var(--green)}
