:root{--bg:#dff1f8;--bg2:#b9e0ee;--card:#ffffffcc;--ink:#15364a;--muted:#5d7a8a;--line:#c9dde6;--pri:#0b7fab;--pri2:#0a6a8f;--ok:#1f8a4c;--warn:#c0392b;--gold:#d9a400;--side:#0f3d57;--side-ink:#e8f4fa;--shadow:0 2px 10px #0b3a5222;--r:14px}
.theme-notte{--bg:#0b1b2a;--bg2:#10283d;--card:#142c40ee;--ink:#e6f1f7;--muted:#9fb7c6;--line:#24435c;--pri:#3aa7d8;--pri2:#2b8fbd;--side:#081522;--side-ink:#dbe9f2;--ok:#4bc57f;--warn:#ff7b6b}
.theme-tramonto{--bg:#ffe5cf;--bg2:#ffc9a3;--card:#fff7efd9;--ink:#4a2b1a;--muted:#8a614a;--line:#f0cdb1;--pri:#d9641e;--pri2:#b85014;--side:#5a2a12;--side-ink:#ffe9d8}
*{box-sizing:border-box}html{font-size:16px}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ink);background:linear-gradient(180deg,var(--bg),var(--bg2)) fixed;min-height:100vh;line-height:1.45}
a{color:var(--pri)}img{vertical-align:middle}
h1{font-size:1.6rem;margin:.2rem 0 .8rem}h2{font-size:1.15rem;margin:1rem 0 .5rem}h3{font-size:1rem;margin:.8rem 0 .3rem}
.muted{color:var(--muted)}.small{font-size:.85rem}.warn{color:var(--warn)}.ok{color:var(--ok)}.num{text-align:right;font-variant-numeric:tabular-nums}.big{font-size:1.3rem;font-weight:700}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:1rem 1.1rem;box-shadow:var(--shadow);backdrop-filter:blur(6px);margin-bottom:1rem}
.btn{display:inline-block;background:var(--pri);color:#fff;border:0;border-radius:10px;padding:.55rem 1rem;font-weight:600;cursor:pointer;text-decoration:none;font-size:.95rem;min-height:40px;line-height:1.6}
.btn:hover{background:var(--pri2)}.btn.small{padding:.3rem .7rem;font-size:.85rem;min-height:32px;line-height:1.5}.btn.big{padding:.8rem 1.6rem;font-size:1.1rem}
.btn.ghost{background:transparent;color:var(--pri);border:2px solid var(--pri)}.btn.danger{background:var(--warn)}.btn.danger.ghost{background:transparent;color:var(--warn);border-color:var(--warn)}
.btn[disabled]{opacity:.45;cursor:not-allowed}
button.link{background:none;border:0;color:var(--pri);cursor:pointer;padding:.2rem .4rem;font:inherit;text-decoration:underline}button.link.danger{color:var(--warn)}
input,select,textarea{font:inherit;color:var(--ink);background:#fff8;border:1px solid var(--line);border-radius:8px;padding:.5rem .6rem;width:100%}
.theme-notte input,.theme-notte select,.theme-notte textarea{background:#0e2235;color:var(--ink)}
label{display:block;margin:.5rem 0;font-weight:600;font-size:.9rem}label small{display:block;font-weight:400;color:var(--muted)}
label.check{font-weight:400;display:flex;gap:.5rem;align-items:center}label.check input{width:auto}label.inline{display:inline-flex;align-items:center;gap:.3rem;margin:.2rem .4rem .2rem 0}
input.qty{width:6.5rem;display:inline-block}input.qty.wide{width:9rem}.hp{position:absolute;left:-9999px}
form.inline{display:inline}.inline input{width:auto}
.flash{padding:.7rem 1rem;border-radius:10px;margin:.4rem 0 .8rem;font-weight:600}.flash.ok{background:#d6f5e3;color:#145c33}.flash.err{background:#fde0dc;color:#8a1f12}
.note{padding:.6rem .9rem;border-radius:10px;background:#fff4cc;color:#6b4e00;margin-bottom:.8rem}.note.shield{background:#dcecff;color:#1b4b7a}.note.heart{background:#dbe7ff;color:#1f3b8a}
.tag{display:inline-block;background:#e4eef3;color:#2a4a5c;border-radius:6px;padding:.05rem .45rem;font-size:.78rem;font-weight:600;white-space:nowrap}.tag.ally{background:#d6f5e3;color:#145c33}.tag.prot{background:#dcecff;color:#1b4b7a}
.tag.m-attack,.tag.k-battle{background:#fde0dc;color:#8a1f12}.tag.m-spy,.tag.k-spy{background:#eee0ff;color:#4b1e8a}.tag.m-transport,.tag.m-trade,.tag.k-trade{background:#fff2cc;color:#6b4e00}.tag.m-patrol,.tag.k-alliance{background:#d6f5e3;color:#145c33}.tag.m-explore,.tag.k-event{background:#dbe7ff;color:#1f3b8a}
.badge{display:inline-block;background:var(--warn);color:#fff;border-radius:999px;padding:0 .45rem;font-size:.75rem;font-weight:700;font-style:normal}
.tbl{width:100%;border-collapse:collapse}.tbl td,.tbl th{padding:.4rem .5rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.tbl.small td,.tbl.small th{padding:.3rem .4rem;font-size:.88rem}.tbl tr.me{background:#fff2cc66}
.kv{list-style:none;padding:0;margin:.5rem 0;display:grid;grid-template-columns:1fr 1fr;gap:.3rem .8rem}.kv li{display:flex;justify-content:space-between;border-bottom:1px dashed var(--line);padding:.25rem 0}.kv span{color:var(--muted)}
ul.plain{list-style:none;padding:0;margin:.3rem 0}ul.plain li{padding:.25rem 0}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:.9rem}
.bcard{display:flex;gap:.9rem;align-items:flex-start;margin:0}.bcard.dim{opacity:.72}.bcard .icon{flex:0 0 64px;background:#fff6;border-radius:12px;padding:4px}.bbody{flex:1;min-width:0}.bbody h3{margin:0 0 .2rem;display:flex;justify-content:space-between;gap:.5rem}.lvl{font-size:.85rem;color:var(--muted);font-weight:600;white-space:nowrap}
.cost{display:flex;flex-wrap:wrap;gap:.3rem .8rem;font-size:.9rem;font-weight:600;margin:.4rem 0}.cost .missing{color:var(--warn)}.cost .time{color:var(--muted);font-weight:400}
.queue{list-style:none;padding:0;margin:0}.queue li{display:flex;align-items:center;gap:.6rem;padding:.4rem 0;border-bottom:1px solid var(--line)}.queue li span{flex:1}.queue li b{font-variant-numeric:tabular-nums;white-space:nowrap}.queue li.danger-row{background:#fde0dc66;border-radius:8px;padding:.4rem .4rem}
.tabs{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.8rem}.tabs a{padding:.35rem .8rem;border-radius:999px;background:#fff8;text-decoration:none;color:var(--ink);font-weight:600;font-size:.9rem;border:1px solid var(--line)}.tabs a.on{background:var(--pri);color:#fff;border-color:var(--pri)}
.msgs{list-style:none;padding:0;margin:0}.msgs li{display:flex;align-items:center;gap:.4rem;border-bottom:1px solid var(--line)}.msgs li a{flex:1;display:flex;gap:.6rem;align-items:center;padding:.5rem .2rem;text-decoration:none;color:var(--ink)}.msgs li.unread a b{color:var(--pri)}.msgs li a b{flex:1}
.pager{display:flex;justify-content:space-between}
.actions{display:flex;flex-wrap:wrap;gap:.4rem}
.row3{display:grid;grid-template-columns:2fr 1fr 1fr;gap:.6rem}
.chat{max-height:260px;overflow:auto;background:#fff6;border-radius:8px;padding:.4rem .6rem;font-size:.9rem}.chat p{margin:.2rem 0}.chatform{display:flex;gap:.4rem;margin-top:.4rem}.chatform input{flex:1}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#aaa}.dot.on{background:var(--ok)}
.motd{background:#fff6;border-left:4px solid var(--pri);padding:.5rem .8rem;border-radius:6px;margin-bottom:.6rem}
.themes{display:flex;gap:.6rem;margin:.4rem 0}.theme-pick{flex:1;border:2px solid var(--line);border-radius:10px;padding:.8rem;text-align:center;cursor:pointer;background:linear-gradient(180deg,var(--bg),var(--bg2));color:var(--ink)}.theme-pick.on{border-color:var(--pri)}.theme-pick input{display:none}
.trophy{display:inline-block;background:#fff2cc;color:#6b4e00;border-radius:8px;padding:.2rem .6rem;margin:.15rem;font-weight:600}
.weeks{display:flex;gap:.3rem}.wk{flex:1;text-align:center;padding:.3rem 0;border-radius:6px;background:#fff6;border:1px solid var(--line)}.wk.done{opacity:.5}.wk.now{background:var(--pri);color:#fff;font-weight:700}.wk.heart{border-color:#4f7bea}
.evlist li{display:flex;gap:.6rem;align-items:flex-start;padding:.4rem 0;border-bottom:1px solid var(--line)}.evlist li.mine{background:#fff2cc55;border-radius:8px}
.island-head{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem;flex-wrap:wrap}.island-art{text-align:center}.island-art img{max-width:100%;height:auto}
.looks .look{background:none;border:2px solid transparent;border-radius:8px;cursor:pointer;padding:2px}.looks .look.on{border-color:var(--pri)}
.current-box{display:flex;gap:1rem;align-items:center}.arrow{font-size:3rem;color:var(--pri);display:inline-block;transition:transform .3s}
.dir-0{transform:rotate(30deg)}.dir-1{transform:rotate(-30deg)}.dir-2{transform:rotate(-90deg)}.dir-3{transform:rotate(-150deg)}.dir-4{transform:rotate(150deg)}.dir-5{transform:rotate(90deg)}
.welcome{border:2px solid var(--pri)}.welcome ol li{margin:.3rem 0}
.fl{float:left;margin:0 .5rem .3rem 0}.cellbox{min-width:280px}
.rules h2{margin-top:1.4rem}
/* app shell */
.top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:1rem;padding:.4rem 1rem;background:var(--side);color:var(--side-ink);box-shadow:var(--shadow)}
.brand{display:flex;align-items:center;gap:.5rem;text-decoration:none;color:inherit;font-weight:800;letter-spacing:.3px;font-size:1.1rem}
.res{display:flex;gap:.6rem;flex:1;justify-content:center;flex-wrap:wrap}.res .r{display:flex;align-items:center;gap:.35rem;background:#ffffff14;border-radius:10px;padding:.2rem .55rem}.res .r b{font-variant-numeric:tabular-nums;font-size:.95rem}.res .r small{display:none;color:#ffffffaa}.res .r.full b{color:#ffd56b}
.who{font-size:.85rem;white-space:nowrap}.who a{color:inherit}
.menu-btn{display:none;background:none;border:0;color:inherit;font-size:1.5rem;cursor:pointer}
.shell{display:flex;min-height:calc(100vh - 56px)}
.side{width:210px;flex:0 0 210px;background:var(--side);color:var(--side-ink);padding:.6rem .5rem;display:flex;flex-direction:column;gap:.1rem}
.side a{display:flex;align-items:center;gap:.6rem;color:inherit;text-decoration:none;padding:.5rem .7rem;border-radius:10px;font-weight:600;font-size:.95rem}.side a:hover{background:#ffffff14}.side a.on{background:var(--pri);color:#fff}.side a .badge{margin-left:auto}
.side .logout{margin-top:auto;padding:.5rem .7rem}.side .logout button{color:inherit;opacity:.8}
.page{flex:1;padding:1rem 1.2rem 5rem;max-width:1200px}
.bottom{display:none}
/* guest */
.gh{display:flex;align-items:center;justify-content:space-between;padding:.6rem 1.2rem;background:var(--side);color:var(--side-ink)}.gh nav{display:flex;gap:1rem;align-items:center}.gh nav a{color:inherit;text-decoration:none;font-weight:600}
.guest-main{max-width:1100px;margin:0 auto;padding:1.5rem 1rem}.gf{text-align:center;color:var(--muted);padding:2rem;font-size:.85rem}
.hero{display:grid;grid-template-columns:1.1fr 1fr;gap:2rem;align-items:center;padding:1rem 0 2rem}.hero h1{font-size:2.6rem;margin:0 0 .5rem}.lead{font-size:1.3rem;color:var(--muted)}.cta{display:flex;gap:.8rem;flex-wrap:wrap}.hero-art img{width:100%;height:auto}
.stats{list-style:none;padding:0;display:flex;gap:1.2rem;flex-wrap:wrap;color:var(--muted)}.stats b{color:var(--ink);font-size:1.2rem;display:block}
.features{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.feat h3{margin:.5rem 0 .3rem}.feat p{margin:0;color:var(--muted);font-size:.92rem}
.auth{max-width:440px;margin:1rem auto}.auth h1{text-align:center}
/* map */
.maphead{display:flex;flex-wrap:wrap;gap:.8rem;align-items:center;justify-content:space-between}.goto label{display:inline-flex;align-items:center;gap:.3rem;margin:0 .3rem 0 0}
.legend{display:flex;flex-wrap:wrap;gap:.7rem;font-size:.82rem;align-items:center}.legend .sw{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:.3rem;vertical-align:middle}.sw.me{background:#ffd54a}.sw.ally{background:#3bd16f}.sw.other{background:#f06a4e}.sw.prot{background:#9ec5ff}.sw.ev{background:#a06bff}.sw.wreck{background:#8b5a2b}.sw.heart{background:#2f6bff}
.mapcard{padding:.6rem}.mapwrap{overflow:hidden;border-radius:10px;background:#0b4f74;touch-action:none;position:relative}#map{display:block;width:100%;height:auto;cursor:grab}
.mapinfo{font-size:.9rem;margin:.2rem .4rem .5rem}.mapactions{display:flex;flex-wrap:wrap;gap:.8rem;align-items:center;margin-top:.6rem}.mapactions label{display:inline-flex;align-items:center;gap:.4rem;margin:0}.mapactions select{width:auto}
.modal{position:fixed;inset:0;background:#0008;z-index:50;display:flex;align-items:center;justify-content:center;padding:1rem}.modal[hidden]{display:none}.modal-box{background:var(--card);background-color:#fff;color:#15364a;border-radius:14px;padding:1.2rem;max-width:520px;width:100%;position:relative;max-height:90vh;overflow:auto}.theme-notte .modal-box{background-color:#142c40;color:#e6f1f7}.modal .close{position:absolute;right:.6rem;top:.6rem;background:none;border:0;font-size:1.2rem;cursor:pointer;color:inherit}
.cargo{margin:.5rem 0}.cargo label{margin-right:.5rem}
@media (max-width:900px){
  .grid2,.hero,.features{grid-template-columns:1fr}.cards{grid-template-columns:1fr}.side{display:none}.side.open{display:flex;position:fixed;top:48px;left:0;bottom:0;z-index:30;width:240px}
  .menu-btn{display:block}.top{padding:.3rem .6rem;gap:.5rem;flex-wrap:wrap}.brand span{display:none}.who{display:none}
  .res{order:3;width:100%;justify-content:space-between;gap:.2rem}.res .r{padding:.15rem .35rem;gap:.2rem}.res .r b{font-size:.85rem}.res .r img{width:18px;height:18px}
  .page{padding:.7rem .7rem 5rem}.bottom{display:flex;position:fixed;bottom:0;left:0;right:0;background:var(--side);color:var(--side-ink);justify-content:space-around;padding:.3rem 0 max(.3rem,env(safe-area-inset-bottom));z-index:20}
  .bottom a{display:flex;flex-direction:column;align-items:center;color:inherit;text-decoration:none;font-size:.7rem;padding:.2rem .5rem;border-radius:8px;min-width:56px}.bottom a.on{background:var(--pri);color:#fff}
  .kv{grid-template-columns:1fr}.row3{grid-template-columns:1fr}h1{font-size:1.3rem}.hero h1{font-size:2rem}.bcard .icon{flex-basis:48px;width:48px;height:48px}
}
/* contratti, gradi, traguardi, diario, vocazioni */
.qlist{list-style:none;padding:0;margin:0}.qlist li{display:grid;grid-template-columns:1fr 120px 50px auto auto;gap:.6rem;align-items:center;padding:.45rem 0;border-bottom:1px solid var(--line)}.qlist li.done .qtext{color:var(--ok);font-weight:600}
.qbar{display:inline-block;height:8px;background:#0001;border-radius:4px;overflow:hidden;width:100%}.qbar i{display:block;height:100%;background:linear-gradient(90deg,var(--pri),#4fc3f7);border-radius:4px}.qbar.wide{height:12px;margin:.4rem 0 .8rem}.qreward{font-size:.85rem;font-weight:600;white-space:nowrap}
.ranks{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.6rem}.rk{flex:1;min-width:110px;background:#fff6;border:1px solid var(--line);border-radius:10px;padding:.4rem .5rem;font-weight:600;font-size:.85rem;opacity:.55}.rk.on{opacity:1;border-color:var(--pri);background:#fff}.rk small{display:block;font-weight:400;color:var(--muted);font-size:.72rem}
.ach{display:flex;gap:.8rem;align-items:flex-start;margin:0;opacity:.75}.ach.done{opacity:1;border-color:var(--gold)}.achicon{font-size:1.8rem;width:44px;text-align:center}
.logbook{list-style:none;padding:0;margin:0}.logbook li{padding:.4rem 0;border-bottom:1px solid var(--line);display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}
.vocs{display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem;margin:.6rem 0}.voc{display:flex;flex-direction:column;gap:.3rem;align-items:flex-start;border:2px solid var(--line);border-radius:12px;padding:.7rem;background:#fff6}.voc.on{border-color:var(--pri);background:#fff}.voc small{color:var(--muted);font-size:.8rem}
@media (max-width:900px){.qlist li{grid-template-columns:1fr auto;}.qlist li .qbar,.qlist li small{display:none}.vocs{grid-template-columns:1fr}}

.kv li>span:first-child{white-space:nowrap}
.kv li>b{margin-left:.6rem;text-align:right}

img,svg{-webkit-user-drag:none;user-select:none}.island-art,.map,.hexmap,.hero img{user-select:none;-webkit-touch-callout:none}
.copy{font-size:.72rem;color:var(--muted);text-align:center;padding:.6rem 0 4.5rem}.gf .copy{padding:0}

.legal .toc{columns:2;font-size:.9rem;margin:.5rem 0 1rem;padding-left:1.4rem}.legal .toc a{color:var(--accent)}.legal-links{margin-top:1.5rem;font-size:.9rem}.copy a{color:var(--muted);text-decoration:underline}
@media(max-width:700px){.legal .toc{columns:1}}
@media(max-width:700px){.gh{padding:.5rem .7rem}.gh .brand img{width:30px;height:30px}.gh .brand span{display:none}.gh nav{gap:.7rem;font-size:.9rem}.gh nav a{white-space:nowrap}.gh nav .btn.small{padding:.35rem .6rem}}
.mod{padding:.6rem 0;border-top:1px solid var(--line)}.mod form{margin:.3rem .4rem .3rem 0}.mod input[name=reason]{width:14rem}.bad{color:#b4232c}.btn.danger{background:#b4232c;color:#fff}form.report select{margin-right:.3rem}
.actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.actions form.inline{display:inline-flex;align-items:center;gap:.3rem;margin:0}form.report select{width:auto;max-width:16rem;padding:.4rem .6rem}

/* --- vita quotidiana: marea, meteo, scrigno, cosa è successo --- */
.grid3.daily{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:12px 0}
.daily .card{display:flex;gap:12px;align-items:center;margin:0;padding:12px}
.daily .card img{width:64px;height:64px;flex:none;border-radius:12px}
.daily h3{margin:0 0 4px;font-size:1rem}.daily p{margin:0;font-size:.9rem}
.daily .chest.ready{box-shadow:0 0 0 2px var(--accent,#ffd54a) inset}
.card.since ul.cols,ul.plain.cols{columns:2;column-gap:16px;padding-left:18px}
.card.hunt{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.weather.wx-fog{background:linear-gradient(135deg,rgba(200,210,220,.35),transparent)}.weather.wx-gale{background:linear-gradient(135deg,rgba(120,170,255,.3),transparent)}.weather.wx-moon{background:linear-gradient(135deg,rgba(255,240,180,.3),transparent)}
/* chat del porto */
.chatlog{list-style:none;margin:0 0 10px;padding:0;max-height:60vh;overflow:auto;display:flex;flex-direction:column;gap:4px}
.chatlog li{padding:4px 6px;border-radius:8px;background:rgba(255,255,255,.04)}.chatlog a.staff{color:#ffd54a;font-weight:700}
.chatform{display:flex;gap:8px}.chatform input[type=text]{flex:1;min-width:0}
.btn.tiny{padding:0 6px;font-size:.75rem;line-height:1.6}
/* vicini, taglie, carte, reliquie, classifica settimanale, grafico */
.nblist{list-style:none;padding:0;margin:0}.nblist li{display:flex;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.08)}.nblist li>div{flex:1}.nblist .actions{display:flex;gap:6px;flex-wrap:wrap}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.stack label{display:block;margin:8px 0}
.tbl{width:100%;border-collapse:collapse}.tbl td{padding:6px 4px;border-bottom:1px solid rgba(255,255,255,.08)}
ol.board{padding-left:22px}ol.board li{padding:3px 0}
.fcards{display:flex;gap:10px;flex-wrap:wrap}.fcards figure{margin:0;text-align:center;font-size:.8rem;width:90px}.fcards figure img{border-radius:8px;display:block}.fcards .miss img{filter:grayscale(1) brightness(.4)}
.cardset.complete{box-shadow:0 0 0 2px var(--accent,#ffd54a) inset}
ul.relics{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}ul.relics li{display:flex;gap:10px;align-items:center;opacity:.75}ul.relics li.held{opacity:1}ul.relics img{border-radius:10px}
svg.graph{width:100%;height:140px;color:var(--accent,#ffd54a);background:rgba(0,0,0,.15);border-radius:10px}
.flash.err{padding:8px 12px;border-radius:8px;background:rgba(255,120,100,.2)}
@media (max-width:720px){.grid3.daily,.grid2{grid-template-columns:1fr}.card.since ul.cols,ul.plain.cols{columns:1}.nblist li{flex-wrap:wrap}}

.minimap{display:block;width:100%;height:auto;border-radius:12px;box-shadow:0 2px 10px rgba(0,0,0,.25);margin:8px 0}
.daily .card img{width:80px;height:80px}
.card.hunt{padding:12px}.hunt-head{display:flex;gap:14px;align-items:center}.hunt-head img{width:96px;height:96px;flex:none;border-radius:14px}.hunt-head h3{margin:0 0 4px}.hunt-head p{margin:0 0 4px}
.legend .dot{display:inline-block;width:10px;height:10px;border-radius:50%;vertical-align:middle;border:1px solid #fff8}.legend .me{background:#ffd54a}.legend .ally{background:#3bd16f}.legend .prot{background:#9ec5ff}.legend .other{background:#f06a4e}.legend .wild{background:#d9a55b}
@media (max-width:720px){.hunt-head{flex-wrap:wrap}.daily .card img{width:64px;height:64px}}
.pageart{float:right;width:104px;height:104px;margin:-10px 0 4px 16px;pointer-events:none;filter:drop-shadow(0 8px 10px rgba(0,0,0,.25));animation:floaty 5s ease-in-out infinite}
.has-art>h1{min-height:92px;display:flex;align-items:center;flex-wrap:wrap;gap:.3em .5em;margin-top:0}
@media (max-width:720px){.pageart{width:72px;height:72px;margin:-6px 0 4px 10px}.has-art>h1{min-height:64px}}

/* movimento e vita */
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes glow{0%,100%{box-shadow:0 0 0 2px var(--accent,#ffd54a) inset,0 0 0 rgba(255,213,74,0)}50%{box-shadow:0 0 0 2px var(--accent,#ffd54a) inset,0 0 22px rgba(255,213,74,.55)}}
@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}
@keyframes fadeup{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes ripple{0%{transform:translate(-50%,-50%) scale(.6);opacity:.55}100%{transform:translate(-50%,-50%) scale(1.25);opacity:0}}
@keyframes wiggle{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}
main.page>*{animation:fadeup .35s ease both}
main.page>*:nth-child(2){animation-delay:.04s}main.page>*:nth-child(3){animation-delay:.08s}main.page>*:nth-child(4){animation-delay:.12s}
.island-art{position:relative}.island-art img{animation:floaty 6s ease-in-out infinite;position:relative;z-index:1}
.island-art::before,.island-art::after{content:"";position:absolute;left:50%;top:68%;width:70%;height:22%;border-radius:50%;border:2px solid rgba(255,255,255,.55);animation:ripple 3.2s ease-out infinite}
.island-art::after{animation-delay:1.6s}
.daily .chest.ready{animation:glow 2.2s ease-in-out infinite}.daily .chest.ready img{animation:wiggle 1.6s ease-in-out infinite}
.daily .card img,.hunt-head img,.pageart{transition:transform .25s ease}.daily .card:hover img,.hunt-head:hover img{transform:scale(1.08) rotate(-2deg)}
.card{transition:transform .2s ease,box-shadow .2s ease}.card:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,40,70,.14)}
.btn{transition:transform .12s ease,filter .12s ease}.btn:hover{transform:translateY(-1px);filter:brightness(1.06)}.btn:active{transform:translateY(0) scale(.98)}
.fcards figure{perspective:600px}.fcards figure img{transition:transform .5s ease;transform-style:preserve-3d}.fcards figure:hover img{transform:rotateY(180deg) scale(1.05)}.fcards figure:hover{z-index:2}
.fcards .miss:hover img{transform:none}
ul.relics li.held img{animation:floaty 4s ease-in-out infinite}
#resbar b.bump{animation:bump .4s ease}@keyframes bump{0%{transform:scale(1)}40%{transform:scale(1.18);color:#ffd54a}100%{transform:scale(1)}}
.weeks .wk.now{animation:glow 2.6s ease-in-out infinite}
.flash{animation:fadeup .3s ease both}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

.goalcard{margin:0 0 1.2rem}.goalcard .lead{font-size:1.1rem}.goalsteps{padding-left:1.2rem}.goalsteps li{margin:.35rem 0}
.welcome .goal{background:rgba(255,255,255,.5);border-radius:10px;padding:.6rem .8rem}

ol.toc{list-style:none;padding-left:0}

/* ===== colori e sfondi del nostro mare ===== */
body{background:linear-gradient(180deg,rgba(214,238,247,.42) 0%,rgba(223,241,248,.78) 45%,rgba(223,241,248,.9) 100%),url(/assets/bg/pan_day.webp) center top/cover fixed}
body.theme-tramonto{background:linear-gradient(180deg,rgba(255,220,190,.35),rgba(255,229,207,.82) 50%,rgba(255,229,207,.92)),url(/assets/bg/pan_sunset.webp) center top/cover fixed}
body.theme-notte{background:linear-gradient(180deg,rgba(11,27,42,.35),rgba(11,27,42,.8) 50%,rgba(16,40,61,.92)),url(/assets/bg/pan_night.webp) center top/cover fixed}
.top,.side,.gh,.bottom{background:linear-gradient(180deg,#124a68,#0b2e46)}
.side{box-shadow:inset -1px 0 0 #ffffff14}.side a.on{background:linear-gradient(90deg,#1596c8,#0b7fab);box-shadow:0 4px 12px #0b7fab55}
.side a:hover{background:#ffffff1c;transform:translateX(2px)}.side a{transition:transform .15s ease,background .15s ease}
h1{color:var(--pri2);position:relative;padding-bottom:.3rem}h1::after{content:"";display:block;width:64px;height:4px;border-radius:4px;margin-top:.35rem;background:linear-gradient(90deg,#1596c8,#ffd54a)}
.has-art>h1::after{position:absolute;left:0;bottom:0}
.card{background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(240,249,253,.88));border:1px solid #ffffff;border-top:4px solid var(--pri);box-shadow:0 6px 18px #0b3a5222}
.theme-notte .card{background:linear-gradient(180deg,rgba(20,44,64,.94),rgba(14,34,53,.92));border-color:#24435c}
.theme-tramonto .card{background:linear-gradient(180deg,rgba(255,247,239,.94),rgba(255,236,220,.9));border-color:#fff}
.card h2{color:var(--pri2);border-bottom:2px solid #0b7fab22;padding-bottom:.25rem}.card h3{color:var(--pri2)}
.card.tide{border-top-color:#2fa3c9}.card.weather{border-top-color:#8fc7e8}.card.chest{border-top-color:#d9a400}.card.hunt{border-top-color:#c58b3a}.card.since{border-top-color:#2e8b7a}
.card.island-card{border-top-color:#3aa65a}.card.quests{border-top-color:#e07a2f}.card.welcome{border:2px solid var(--pri);border-top:6px solid #ffd54a;background:linear-gradient(135deg,#ffffffee,#e4f4fbee)}
.card.goalcard{border-top-color:#ffd54a}.card.mapcard{border-top-color:#1f7fa8;padding:.6rem}.card.cardset{border-top-color:#a06bff}.card.feat{border-top-color:#2fa3c9}
.features .feat:nth-child(2){border-top-color:#e07a2f}.features .feat:nth-child(3){border-top-color:#8b5a2b}.features .feat:nth-child(4){border-top-color:#2e8b7a}.features .feat:nth-child(5){border-top-color:#4f7bea}.features .feat:nth-child(6){border-top-color:#a06bff}
.card.tide{background:linear-gradient(135deg,#e3f5fbf0,#ffffffee)}.card.weather{background:linear-gradient(135deg,#eef7fdf0,#ffffffee)}.card.chest{background:linear-gradient(135deg,#fff6d6f0,#ffffffee)}.card.hunt{background:linear-gradient(135deg,#f7ecd9f0,#ffffffee)}
.card.since{background:linear-gradient(135deg,#e0f3efF0,#ffffffee)}.card.quests{background:linear-gradient(135deg,#fdeee0f0,#ffffffee)}
.res .r{background:#ffffff1a;border:1px solid #ffffff22}
.res .r:has(b[data-res="wood"]){background:linear-gradient(90deg,#8b5a2b99,#8b5a2b44)}.res .r:has(b[data-res="stone"]){background:linear-gradient(90deg,#6b7b8c99,#6b7b8c44)}
.res .r:has(b[data-res="algae"]){background:linear-gradient(90deg,#2e8b5799,#2e8b5744)}.res .r:has(b[data-res="pearls"]){background:linear-gradient(90deg,#8e6cc299,#8e6cc244)}
.res .r:has(b[data-res="wind"]){background:linear-gradient(90deg,#3aa7d899,#3aa7d844)}
.btn{background:linear-gradient(180deg,#1596c8,#0b7fab);box-shadow:0 3px 8px #0b7fab44}.btn:hover{background:linear-gradient(180deg,#1aa3d8,#0c87b8)}.btn.ghost{background:transparent;box-shadow:none}.btn.danger{background:linear-gradient(180deg,#d9534f,#b83a2e)}
.tabs a.on{background:linear-gradient(90deg,#1596c8,#0b7fab)}
.tbl tbody tr:nth-child(even){background:#0b7fab0c}.tbl th{color:var(--pri2);border-bottom:2px solid #0b7fab33}
.bcard .icon{background:linear-gradient(135deg,#e3f5fb,#ffffff);border:1px solid #c9dde6}
.qbar{background:#0b7fab22}.qbar i{background:linear-gradient(90deg,#1596c8,#ffd54a)}
.wk{background:#ffffffaa}.wk.heart{background:#dbe7ff}.wk.now{background:linear-gradient(180deg,#1596c8,#0b7fab)}
.tag{background:#dcecf5}
/* home ospiti */
.hero{position:relative;background:linear-gradient(90deg,rgba(8,40,62,.78),rgba(8,40,62,.25)),url(/assets/bg/pan_day.webp) center/cover;border-radius:22px;padding:2rem 2.2rem;color:#fff;box-shadow:0 10px 30px #0b3a5244;margin-bottom:1.2rem;overflow:hidden}
.hero h1{color:#fff;text-shadow:0 2px 12px #0008}.hero h1::after{background:linear-gradient(90deg,#ffd54a,#fff0)}.hero .lead,.hero p{color:#eaf6fb}.hero .stats b{color:#ffd54a}.hero .stats{color:#dbeefa}
.hero .btn.ghost{color:#fff;border-color:#fff}
.hero-art{background:none;text-align:center}.hero-art img{max-width:100%;height:auto;filter:drop-shadow(0 18px 24px #0006);animation:floaty 6s ease-in-out infinite}
.guest-main .card.goalcard{background:linear-gradient(180deg,#ffffffee,#eaf6fbee)}
.gf{color:#2a4a5c}
@media (max-width:720px){.hero{padding:1.3rem 1rem;border-radius:16px}body{background-attachment:scroll}}

/* risorse: riquadro, avvisi, dono, andamento, consigliere, convertitore */
.res .r{position:relative;cursor:help}.rtip{display:none;position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%);min-width:240px;max-width:300px;background:#0f3d57;color:#e8f4fa;border-radius:12px;padding:.6rem .8rem;font-size:.82rem;line-height:1.5;box-shadow:0 10px 24px #0008;z-index:40;text-align:left;font-weight:400;border:1px solid #ffffff22}
.rtip::before{content:"";position:absolute;top:-7px;left:50%;transform:translateX(-50%) rotate(45deg);width:12px;height:12px;background:#0f3d57;border-left:1px solid #ffffff22;border-top:1px solid #ffffff22}
.res .r:hover .rtip,.res .r.open .rtip{display:block}.rtip .ok{color:#7be0a4}.rtip .warn{color:#ff9e8f}.rtip .muted{color:#b9d3e0}
.note.warnnote{background:#fde0dc;color:#8a1f12;border-left:5px solid #c0392b;font-weight:600}
.island-art .gift{position:absolute;right:4%;bottom:8%;z-index:2;margin:0}.giftbtn{background:none;border:0;cursor:pointer;padding:0;display:flex;flex-direction:column;align-items:center;gap:2px;color:#15364a;font:inherit;font-size:.75rem;font-weight:700}
.giftbtn img{width:88px;height:88px;filter:drop-shadow(0 8px 10px #0005);animation:floaty 2.4s ease-in-out infinite}.giftbtn span{background:#ffd54a;border-radius:999px;padding:.1rem .6rem;box-shadow:0 2px 6px #0004}.giftbtn:hover img{transform:scale(1.08)}
.gift-next{margin:.2rem 0 0}
.card.starter{border-top-color:#2fa3c9;background:linear-gradient(135deg,#e3f5fbf0,#ffffffee)}
.card.trend{border-top-color:#8e6cc2}.trendsvg{width:100%;height:auto;display:block;background:#ffffff80;border-radius:10px}.trendlegend{list-style:none;padding:0;margin:.5rem 0 0;display:flex;flex-wrap:wrap;gap:.3rem .9rem;font-size:.85rem}.trendlegend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:4px;vertical-align:middle}
.card.advice{border-top-color:#e07a2f;background:linear-gradient(135deg,#fdeee0f0,#ffffffee)}.advbody{display:flex;gap:.9rem;align-items:center}.advbody img{flex:none;background:#fff;border-radius:12px;padding:4px;border:1px solid var(--line)}.advbody p{margin:0 0 .4rem;font-weight:600}
.card.convert{border-top-color:#d9a400}.convform{display:flex;gap:.8rem;align-items:flex-end;flex-wrap:wrap}.convform label{flex:1;min-width:150px;margin:0}.convform .btn{min-height:42px}
.tblwrap{overflow:auto}.tblwrap .tbl td,.tblwrap .tbl th{white-space:nowrap}
@media (max-width:720px){.rtip{left:auto;right:0;transform:none;min-width:220px}.rtip::before{left:auto;right:18px;transform:rotate(45deg)}.giftbtn img{width:64px;height:64px}}

/* pagine pubbliche: mare animato e decorazioni 3D (home, iscrizione, accesso) */
body.guest{position:relative;background:#cfeaf6}
#seaCanvas{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
body.guest header.top,.guest-main,.gf{position:relative;z-index:2}
.deco{position:fixed;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.deco img{position:absolute;filter:drop-shadow(0 10px 14px #0005);will-change:transform}
.deco .d-ship{left:-2%;bottom:6%;width:min(26vw,300px);animation:bob 7s ease-in-out infinite}
.deco .d-ship2{right:4%;bottom:26%;width:min(12vw,130px);opacity:.85;animation:bob 9s ease-in-out infinite reverse,sail 60s linear infinite}
.deco .d-buoy{right:12%;bottom:8%;width:min(8vw,90px);animation:sway 5s ease-in-out infinite}
.deco .d-gull1{left:18%;top:9%;width:min(7vw,80px);animation:fly 34s linear infinite}
.deco .d-gull2{left:60%;top:16%;width:min(5vw,54px);opacity:.9;animation:fly 46s linear infinite reverse}
.deco .d-lifebuoy{left:6%;top:30%;width:min(7vw,80px);animation:bob 6s ease-in-out infinite 1s}
.deco .d-shell{right:2%;bottom:1%;width:min(10vw,120px)}
@keyframes bob{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-14px) rotate(2deg)}}
@keyframes sway{0%,100%{transform:rotate(-6deg)}50%{transform:rotate(6deg)}}
@keyframes sail{0%{margin-right:0}50%{margin-right:18vw}100%{margin-right:0}}
@keyframes fly{0%{transform:translate(0,0) scale(1)}25%{transform:translate(14vw,-18px) scale(.9)}50%{transform:translate(28vw,6px) scale(1)}75%{transform:translate(14vw,-22px) scale(1.05)}100%{transform:translate(0,0) scale(1)}}
.hero{background:linear-gradient(90deg,rgba(8,40,62,.82),rgba(8,40,62,.35)),url(/assets/bg/pan_day.webp) center/cover;border:3px solid #ffd54a66;box-shadow:0 14px 40px #0b3a5266,inset 0 0 0 1px #fff3}
.hero::before{content:"";position:absolute;inset:0;background:url(/assets/deco/compass.webp) no-repeat right -40px bottom -60px/220px auto;opacity:.18;pointer-events:none}
.hero h1{font-size:clamp(2.2rem,5vw,3.6rem);background:linear-gradient(180deg,#fff,#ffd54a);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:none;filter:drop-shadow(0 3px 10px #0009)}
.hero-art{position:relative}
.hero-art .h-lantern{position:absolute;left:-10px;top:-16px;width:70px;animation:sway 4s ease-in-out infinite;filter:drop-shadow(0 6px 10px #0007)}
.hero-art .h-anchor{position:absolute;right:-6px;bottom:-12px;width:80px;animation:bob 8s ease-in-out infinite;filter:drop-shadow(0 6px 10px #0007)}
.hero-art .h-ring{position:absolute;inset:-8px;border-radius:26px;border:3px dashed #ffd54a88;pointer-events:none}
.guest-main .card.goalcard{border:2px solid #ffd54a;position:relative;overflow:hidden}
.guest-main .card.goalcard::after{content:"";position:absolute;right:-20px;top:-20px;width:150px;height:150px;background:url(/assets/deco/shell.webp) no-repeat center/contain;opacity:.25;pointer-events:none}
.features .card.feat{border:2px solid #cfe8f3;transition:transform .25s,box-shadow .25s}.features .card.feat:hover{transform:translateY(-4px);box-shadow:0 14px 30px #0b3a5244}
.auth-scene{position:relative;max-width:560px;margin:1.5rem auto;padding:0 60px}
.auth-scene .card.auth{margin:0;border:3px solid #ffd54a;box-shadow:0 18px 50px #0b3a5255,0 0 0 8px #ffffff55;background:linear-gradient(180deg,#ffffffee,#eaf6fbee);position:relative;overflow:visible}
.auth-scene .card.auth::before{content:"";position:absolute;inset:8px;border:2px dashed #2a7fa7aa;border-radius:16px;pointer-events:none}
.auth-scene .card.auth h1{font-size:2rem;background:linear-gradient(180deg,#0f5f8a,#1c9ad1);-webkit-background-clip:text;background-clip:text;color:transparent}
.auth-scene .a-ship{position:absolute;left:-40px;bottom:-30px;width:170px;animation:bob 7s ease-in-out infinite;filter:drop-shadow(0 10px 14px #0005)}
.auth-scene .a-lantern{position:absolute;right:-20px;top:-40px;width:80px;animation:sway 4s ease-in-out infinite;filter:drop-shadow(0 8px 12px #0006)}
.auth-scene .a-anchor{position:absolute;right:-36px;bottom:40px;width:90px;animation:bob 9s ease-in-out infinite 2s;filter:drop-shadow(0 8px 12px #0006)}
.auth-scene .a-compass{position:absolute;left:-30px;top:-30px;width:90px;animation:spin 40s linear infinite;filter:drop-shadow(0 8px 12px #0006)}
.auth-scene .a-gull{position:absolute;left:30%;top:-70px;width:60px;animation:fly 30s linear infinite}
.auth-scene .a-shell{position:absolute;right:10%;bottom:-36px;width:90px}
@keyframes spin{to{transform:rotate(360deg)}}
@media (max-width:720px){.auth-scene{padding:0 10px;margin:1rem auto}.auth-scene .a-ship{left:-14px;bottom:-26px;width:110px}.auth-scene .a-lantern{right:-6px;top:-30px;width:56px}.auth-scene .a-anchor{display:none}.auth-scene .a-compass{left:-8px;top:-24px;width:60px}.auth-scene .a-shell{display:none}.deco .d-ship{width:40vw;bottom:2%}.deco .d-ship2,.deco .d-lifebuoy{display:none}.hero-art .h-lantern,.hero-art .h-anchor{width:50px}}
@media (prefers-reduced-motion:reduce){.deco img,.hero-art img,.auth-scene img,.hero-art .h-lantern{animation:none}}
body.guest .gf{background:#ffffffcc;border-radius:14px;margin:1rem auto 1.5rem;max-width:900px;color:#2a4a5c;backdrop-filter:blur(4px)}body.guest .gf a{color:#0f5f8a}
.auth-scene>img{z-index:0}.auth-scene .card.auth{z-index:1}.auth-scene .a-ship{left:-70px;bottom:-50px}
@media (max-width:720px){.auth-scene .a-ship{left:-30px;bottom:-60px;width:120px;opacity:.9}}
/* campanella avvisi */
.bell{display:inline-block;position:relative;margin-left:.5rem}.bell summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:.2rem;font-size:1.1rem}.bell summary::-webkit-details-marker{display:none}
.bell-list{position:absolute;right:0;top:1.8rem;z-index:50;background:#fff;color:#1b3a4b;border:2px solid #cfe8f3;border-radius:12px;box-shadow:0 12px 30px #0b3a5244;min-width:260px;max-width:92vw;padding:.5rem;text-align:left}
.bell-list h4{margin:.2rem .4rem .4rem;color:#0f5f8a}.bell-list .al{display:flex;gap:.5rem;align-items:center;padding:.4rem .5rem;border-radius:8px;text-decoration:none;color:inherit;font-size:.9rem;border-left:4px solid #cfe8f3}.bell-list .al:hover{background:#eaf6fb}
.bell-list .al.danger{border-left-color:#d9534f}.bell-list .al.warn{border-left-color:#f0ad4e}.bell-list .al.good{border-left-color:#5cb85c}.bell-list .al.info{border-left-color:#2a7fa7}
.card.pow{display:flex;gap:.8rem;align-items:center;border:2px solid #ffd54a;background:linear-gradient(90deg,#fff8dc,#fff)}
@media (max-width:720px){.bell-list{position:fixed;right:.5rem;left:.5rem;top:3.6rem;min-width:0}}
/* bacheca e sondaggi della Flotta */
.board .post{border:1px solid #cfe8f3;border-left:4px solid #2a7fa7;border-radius:10px;padding:.5rem .7rem;margin:.4rem 0;background:#f7fcff}.board .post.pinned{border-left-color:#ffd54a;background:#fffbe9}
.board .post header{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.board .post header .acts{margin-left:auto;font-size:.85rem}.board .post p{margin:.3rem 0 0}
.poll{border:1px solid #cfe8f3;border-radius:10px;padding:.5rem .7rem;margin:.4rem 0;background:#f7fcff}.poll.closed{opacity:.8}.poll .popt{display:grid;grid-template-columns:1fr auto auto;gap:.5rem;align-items:center;margin:.25rem 0}.poll .popt.mine button{font-weight:700}.poll .popt .qbar{grid-column:1/-1;height:6px}
select.mini{font-size:.8rem;padding:.1rem .3rem}

/* tutorial con le frecce */
.tut-tip{position:relative;background:linear-gradient(180deg,#fffbe9,#fff);border:2px solid #ffd54a;border-radius:14px;padding:.7rem 1rem;margin:0 0 1rem;box-shadow:0 10px 24px #0b3a5233;animation:fadein .4s}
.tut-tip .tut-arrow{position:absolute;left:-2.2rem;top:.6rem;font-size:1.6rem;animation:nudge 1.2s ease-in-out infinite}.tut-tip p{margin:.3rem 0}.tut-acts{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.side a.tut-target,.bottom a.tut-target{outline:3px solid #ffd54a;outline-offset:-3px;border-radius:10px;animation:glow 1.4s ease-in-out infinite;position:relative}
.side a.tut-target::after{content:"👉";position:absolute;left:-1.6rem;top:50%;transform:translateY(-50%);animation:nudge 1.2s ease-in-out infinite}
@keyframes nudge{0%,100%{transform:translateX(0)}50%{transform:translateX(6px)}}@keyframes glow{0%,100%{box-shadow:0 0 0 0 #ffd54a88}50%{box-shadow:0 0 0 8px #ffd54a00}}
@media (max-width:720px){.tut-tip .tut-arrow{display:none}.side a.tut-target::after{display:none}}
/* accessibilità */
.skip{position:absolute;left:-999px;top:0;background:#0f5f8a;color:#fff;padding:.5rem 1rem;border-radius:0 0 10px 0;z-index:999}.skip:focus{left:0}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #ffd54a;outline-offset:2px}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
.bell summary .bell-ico{vertical-align:middle;filter:drop-shadow(0 1px 2px #0006)}

/* coda in attesa, prossima mossa, ripeti viaggio, tra poco */
b.waiting{color:#b26a00;font-weight:600;font-size:.85rem}
.nextmoves{list-style:none;padding:0;margin:.5rem 0 0;display:flex;gap:.6rem;flex-wrap:wrap}.nextmoves li{background:#eaf6fb;border-radius:999px;padding:.2rem .7rem}.nextmoves li a,.nextmoves li button{text-decoration:none;font-weight:600}
.recent li{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;padding:.25rem 0}
.soon{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;background:#ffffffcc;border:1px solid #cfe8f3;border-radius:12px;padding:.35rem .7rem;margin:0 0 .8rem;font-size:.88rem}.soon .soon-t{color:#0f5f8a;font-weight:700}.soon a{text-decoration:none;color:#1b3a4b;background:#eaf6fb;border-radius:999px;padding:.15rem .6rem}.soon a b{color:#0f5f8a;margin-left:.25rem}
@media (max-width:720px){.soon{font-size:.8rem;gap:.4rem}}

/* glossario ?, menu progressivo */
details.help{display:inline-block;position:relative;vertical-align:middle}details.help summary{list-style:none;cursor:help;display:inline-flex;width:1.1rem;height:1.1rem;border-radius:50%;background:#2a7fa7;color:#fff;font-size:.75rem;font-weight:700;align-items:center;justify-content:center;margin-left:.2rem}details.help summary::-webkit-details-marker{display:none}
details.help[open] span{position:absolute;left:0;top:1.4rem;z-index:40;background:#fff;color:#1b3a4b;border:2px solid #cfe8f3;border-radius:10px;padding:.5rem .7rem;min-width:220px;max-width:320px;font-size:.85rem;font-weight:400;box-shadow:0 10px 24px #0b3a5233}
.nav-more{padding:.4rem .9rem;margin:0}

/* segnalibri, appunti, report condiviso, richieste mercato */
.maphead .bookmark{display:inline-flex;gap:.3rem;align-items:center;margin-left:.5rem}.maphead .bookmark input.mini{width:9rem;padding:.2rem .4rem;font-size:.85rem}.bookmarks .tag{text-decoration:none}
.card.notes textarea{width:100%}.pnote{margin:.5rem 0}.pnote textarea{width:100%}
.sharelink{width:100%;max-width:520px;font-size:.85rem}
.card.watch form.inline{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}

/* statistiche Flotta, feste, installazione */
.astats .arow{display:grid;grid-template-columns:8rem 1fr auto;gap:.5rem;align-items:center;margin:.2rem 0;font-size:.9rem}.astats .qbar{height:8px}
.note.festival{background:linear-gradient(90deg,#fff8dc,#ffffff);border:2px solid #ffd54a;display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.note.festival .ficon{font-size:1.4rem;animation:bob 3s ease-in-out infinite}

/* idee 1-5 */
.since-list a{text-decoration:none}.since-list li.bad a{color:var(--bad,#b3261e);font-weight:600}
.offers{display:flex;gap:.5rem;flex-wrap:wrap;margin:.4rem 0}.offers form{flex:1 1 150px}.offer{width:100%;text-align:left;border:2px dashed var(--line,#9cc);border-radius:10px;padding:.5rem .6rem;background:#fff;cursor:pointer;display:flex;flex-direction:column;gap:.2rem}.offer:hover{border-style:solid;background:#f3fbff}.offer small{color:#567}
.island-art .decor{position:absolute;z-index:2;width:18%;height:auto;transform:translate(-50%,-50%);filter:drop-shadow(0 4px 6px rgba(0,0,0,.25));animation:floaty 6s ease-in-out infinite;pointer-events:none}.decors .look.locked{opacity:.45;position:relative}.decors .look.locked i{position:absolute;right:-2px;bottom:-2px;font-size:.8rem;font-style:normal}
.album .postcard{background:#fff;border:6px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.18);border-radius:4px;transform:rotate(-1.5deg);width:172px;text-align:center}.album .postcard:nth-child(even){transform:rotate(1.5deg)}.album .postcard.miss img{filter:grayscale(1) opacity(.35)}.album .postcard img{width:100%;height:auto;border-radius:2px}

/* idee 6-9 */
.emblem{vertical-align:middle;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3))}h1 .emblem{margin-right:.2rem}.emblem-ed{border:1px dashed var(--line,#9cc);border-radius:10px;padding:.6rem;margin:.6rem 0;display:flex;gap:1rem;align-items:center;flex-wrap:wrap}.emblem-ed legend{padding:0 .4rem;font-weight:600}.emblem-opts{display:grid;grid-template-columns:1fr 1fr;gap:.4rem .8rem}.emblem-opts label{display:flex;flex-direction:column;font-size:.85rem}.emblem-opts input[type=color]{width:60px;height:32px;padding:0;border:none;background:none}
.battle3d{position:relative;margin:.6rem 0;border-radius:12px;overflow:hidden;box-shadow:0 4px 14px rgba(0,0,0,.2)}.battle3d canvas{display:block;width:100%;height:auto}.b3skip{position:absolute;right:8px;bottom:8px;background:rgba(255,255,255,.85)}
.card.ghost{border:2px dashed #8aa;background:linear-gradient(135deg,#f6fbff,#eef3f7)}

/* idee 10-13 */
.zwx{margin-left:.3rem;white-space:nowrap}.zwx small{color:#567}
.myseason-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.5rem;margin:.6rem 0}.myseason .stat{background:#fff;border-radius:10px;padding:.5rem;text-align:center;box-shadow:0 1px 4px rgba(0,0,0,.08)}.myseason .stat b{display:block;font-size:1.25rem}.myseason .stat small{color:#567}.postcard-wrap{position:relative;max-width:800px}.postcard-wrap canvas{width:100%;height:auto;border-radius:8px;box-shadow:0 4px 14px rgba(0,0,0,.2)}.postcard-wrap .btn{position:absolute;right:12px;top:12px}
.giftform{display:inline-flex;gap:.3rem;align-items:center;flex-wrap:wrap}

/* idee 14-18 */
.langsw a{display:inline-flex;align-items:center;gap:.25rem;text-decoration:none;padding:.15rem .4rem;border-radius:6px;font-size:.8rem;opacity:.75}.langsw a.on{opacity:1;font-weight:700;background:rgba(255,255,255,.18)}.langsw svg{border-radius:2px;box-shadow:0 0 0 1px rgba(0,0,0,.25)}
body.text-large{font-size:112%}body.text-xl{font-size:126%}
.goalbar{position:relative;height:1.4rem;background:#e3eef3;border-radius:8px;overflow:hidden}.goalbar i{display:block;height:100%;background:linear-gradient(90deg,#3bb0e0,#1f78b4);transition:width .6s}.goalbar.done i{background:linear-gradient(90deg,#5cc98a,#2e7d32)}.goalbar span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:600;color:#123}
.mfilters{margin:.3rem 0}.mfilters label{margin-right:.6rem}.msearch input{width:14em}.eta{margin:.2rem 0}
.mentors li{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin:.3rem 0}
.mfilters{flex-basis:100%;width:100%;display:flex;gap:.7rem;flex-wrap:wrap;align-items:center;margin:.2rem 0 .4rem}.mfilters label{display:inline-flex;gap:.3rem;align-items:center;white-space:nowrap;margin:0}.msearch{display:inline-flex;gap:.4rem;align-items:center;flex-wrap:wrap}
.quests li.pick{display:block;padding:.6rem .4rem;border-radius:10px;background:linear-gradient(135deg,#fff8e6,#fff)}.quests li.pick .offers{width:100%;display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.5rem;margin-top:.5rem}.quests li.pick .offers form{width:100%}.quests li.pick .offer{min-height:64px;justify-content:center}

/* colonie */
.isl-switch select{max-width:220px;font-size:.85rem;padding:.15rem .3rem;border-radius:6px}.colony-box{margin:.4rem 0}.colony-box summary{cursor:pointer;font-weight:600}.colony-box input[name=name]{width:12em}

/* avamposto, storia, spedizioni */
.outpost-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.5rem;margin:.5rem 0}.outpost-grid .ob{background:#fff;border-radius:10px;padding:.5rem .6rem;box-shadow:0 1px 4px rgba(0,0,0,.08)}.garrison{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}
.card.story{display:flex;gap:1rem;align-items:flex-start;background:linear-gradient(135deg,#fff8e8,#fff)}.story-img{border-radius:12px;flex:0 0 120px;box-shadow:0 3px 10px rgba(0,0,0,.18)}.story-text{font-style:italic;display:flex;gap:.5rem;align-items:flex-start}.story-text .cap{border-radius:50%;flex:0 0 36px}.story .qbar{display:inline-block;width:120px;vertical-align:middle}@media(max-width:700px){.card.story{flex-direction:column}.story-img{width:100%;height:auto;max-width:200px}}
.exp-choice{background:#fff8e8;border:1px dashed #d9b86a;border-radius:10px;padding:.5rem .6rem;margin:.3rem 0}

/* creature, sfide */
.creature-card{margin:.5rem 0;text-align:center}.creature-card img{border-radius:12px;box-shadow:0 4px 12px rgba(0,0,0,.2)}.challenges li{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin:.3rem 0}

/* daltonici: tavolozza blu/arancio/bianco e forme */
body.cb{--ok:#1f77b4;--warn:#ff7f0e;--bad:#8c564b}body.cb .tag.ally{background:#1f77b4;color:#fff}body.cb .tag.warn{background:#ff7f0e;color:#000}body.cb .bar .fill{background:repeating-linear-gradient(45deg,#1f77b4 0 6px,#5aa9e6 6px 12px)}body.cb .ach.done{outline:2px dashed #1f77b4}
mark.mention{background:#ffe08a;border-radius:4px;padding:0 .15em}li.mentioned{border-left:3px solid #ff9f1c;padding-left:.3rem}.reacts{display:inline-flex;gap:.15rem;margin-left:.3rem}.react{border:1px solid var(--line);background:transparent;border-radius:999px;padding:0 .35rem;font-size:.8rem;cursor:pointer;min-height:24px}.react.on{background:var(--card);border-color:var(--ok)}
.visit .isle3d.small{position:relative;display:inline-block}.visit .isle3d.small .deco{position:absolute;bottom:8px;left:10px}.visit .isle3d.small .deco:nth-child(3){left:60px}.visit .isle3d.small .deco:nth-child(4){left:110px}.visit .isle3d.small .deco:nth-child(5){left:160px}.greets p{margin:.15rem 0}.greetform input[type=text]{max-width:14em}

/* allegati ed emoji */
.att{display:block;margin-top:.3rem}.chatlog .att{margin-left:.2rem}.att.img img{max-width:min(100%,320px);max-height:240px;border-radius:8px;display:block}.att.media audio,.att.media video{max-width:min(100%,360px);display:block}.att.media small{display:block}.att.file{display:inline-block;padding:.2rem .5rem;border:1px solid var(--line,#ccd);border-radius:6px;text-decoration:none}
.attbtn{cursor:pointer;display:inline-flex;align-items:center;gap:.3rem;font-size:1.15rem;position:relative;min-height:36px}.attbtn input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}.attname{font-size:.75rem;max-width:8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.emoji-wrap{position:relative;display:inline-block;vertical-align:middle}.emoji-btn{background:none;border:0;font-size:1.25rem;cursor:pointer;padding:.1rem .3rem;min-width:36px;min-height:36px}.emoji-panel{position:absolute;bottom:110%;left:0;z-index:30;background:var(--card,#fff);border:1px solid var(--line,#ccd);border-radius:10px;padding:.3rem;display:grid;grid-template-columns:repeat(8,1fr);gap:.1rem;width:min(92vw,19rem);box-shadow:0 6px 18px rgba(0,0,0,.25)}.emoji-panel button{background:none;border:0;font-size:1.3rem;cursor:pointer;padding:.15rem;min-width:36px;min-height:36px;border-radius:6px}.emoji-panel button:hover{background:rgba(127,127,127,.15)}
.chatform{flex-wrap:wrap;align-items:center}.chatform input[type=text]{flex:1 1 10rem}
.emoji-panel[hidden]{display:none}

/* barra in basso sul telefono: 5 voci sempre dentro lo schermo */
.bottom a{flex:1 1 0;min-width:0;padding:.2rem .15rem}.bottom a span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:900px){html,body{overflow-x:hidden;max-width:100%}main.page{overflow-x:clip}}

/* edifici costruiti sotto l'isola 3D */
.skyline{display:flex;flex-wrap:wrap;gap:.3rem;justify-content:center;margin:.3rem 0 .6rem}.skyline .sky{position:relative;display:inline-flex;width:56px;height:56px;border-radius:10px;background:rgba(255,255,255,.35)}.skyline .sky img{width:56px;height:56px;object-fit:contain}.skyline .sky small{position:absolute;right:2px;bottom:1px;font-size:.65rem;font-weight:700;background:var(--pri,#1b6fa8);color:#fff;border-radius:8px;padding:0 .3rem}
.buildings .icon,.shipyard .icon,img.icon{object-fit:contain}

/* ritratti: cornice per grado */
.capbox img,img.cap{border-radius:50%;border:3px solid #8d6e4a;background:#eef5f8}.rank-3 img,img.rank-3,.rank-4 img,img.rank-4{border-color:#b87333}.rank-5 img,img.rank-5,.rank-6 img,img.rank-6{border-color:#b8c4cc;box-shadow:0 0 0 2px #e8eef2}.rank-7 img,img.rank-7{border-color:#d9a520}.rank-8 img,img.rank-8{border-color:#ffd54a;box-shadow:0 0 12px #ffd54a}
.faces{display:flex;flex-wrap:wrap;gap:.4rem}.faces .face img{border-radius:50%;border:3px solid transparent}.faces .face.on img,.faces .face input:checked+img{border-color:var(--pri,#1b6fa8)}.faces input{position:absolute;opacity:0}
/* isola viva: tinta del cielo per ora, gabbiani nelle feste, lanterna di notte */
.island-art .sky-tint{position:absolute;inset:0;border-radius:16px;pointer-events:none;z-index:2;mix-blend-mode:multiply;opacity:0}.island-art.phase-dawn .sky-tint{opacity:.35;background:linear-gradient(180deg,#ffd9a0,#ffb37a)}.island-art.phase-dusk .sky-tint{opacity:.4;background:linear-gradient(180deg,#ff9e6b,#7a5aa8)}.island-art.phase-night .sky-tint{opacity:.55;background:linear-gradient(180deg,#1b2a5a,#0b1a3a)}
.island-art .gull{position:absolute;z-index:3;top:8%;left:-15%;opacity:0;pointer-events:none}.island-art.festive .gull{opacity:1;animation:gullfly 18s linear infinite}.island-art.festive .gull.g2{top:18%;animation-duration:26s;animation-delay:7s}@keyframes gullfly{0%{left:-15%;transform:translateY(0)}50%{transform:translateY(-18px)}100%{left:105%;transform:translateY(0)}}
.island-art .lantern-glow{position:absolute;z-index:3;left:62%;top:52%;width:70px;height:70px;border-radius:50%;background:radial-gradient(circle,rgba(255,200,90,.85),rgba(255,180,60,0) 70%);opacity:0;pointer-events:none;animation:flicker 2.6s ease-in-out infinite}.island-art.phase-night .lantern-glow,.island-art.phase-dusk .lantern-glow{opacity:1}@keyframes flicker{0%,100%{transform:scale(1)}50%{transform:scale(1.15)}}
@media (prefers-reduced-motion:reduce){.island-art .gull,.island-art .lantern-glow{animation:none}}
/* home: carosello */
.carousel{position:relative}.carousel .slide{position:absolute;inset:0;margin:0;opacity:0;transition:opacity .9s ease;display:flex;flex-direction:column;align-items:center;justify-content:center}.carousel .slide.on{opacity:1;position:relative}.carousel .slide img{max-width:100%;height:auto;max-height:340px;object-fit:contain}.carousel figcaption{font-weight:700;margin-top:.3rem;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.5)}.carousel .dots{display:flex;gap:.4rem;justify-content:center;margin-top:.4rem;position:relative;z-index:4}.carousel .dot{width:12px;height:12px;border-radius:50%;border:0;background:rgba(255,255,255,.5);cursor:pointer;min-width:12px;min-height:12px}.carousel .dot.on{background:#fff}

/* cerca ovunque + guida della pagina */
.gsearch{flex:0 1 230px;margin-left:.3rem}.gsearch input{width:100%;padding:.3rem .6rem;border-radius:999px;border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.14);color:inherit;font-size:.9rem}.gsearch input::placeholder{color:rgba(255,255,255,.7)}.gsearch input:focus{background:#fff;color:#123;outline:2px solid var(--pri,#1b6fa8)}
.guide-here{display:inline-block;margin:0 0 .6rem;font-size:.85rem;padding:.2rem .6rem;border-radius:999px;background:rgba(255,255,255,.65);color:var(--pri,#1b6fa8);text-decoration:none;border:1px solid rgba(27,111,168,.25)}.guide-here:hover{background:#fff}
@media (max-width:900px){.gsearch{order:9;flex:1 1 100%;margin:.2rem 0 0}.gsearch input{font-size:1rem;padding:.45rem .7rem}}

/* password eye + Google button */
.pw{position:relative;display:block}.pw input{width:100%;padding-right:2.8rem}.pw .eye{position:absolute;right:.35rem;top:50%;transform:translateY(-50%);border:0;background:#eaf6fb;border-radius:8px;width:2.1rem;height:2.1rem;min-width:2.1rem;cursor:pointer;font-size:1.1rem;line-height:1;color:#0f5f8a;padding:0}.pw .eye.on{background:#ffd54a}
.or{display:flex;align-items:center;gap:.6rem;color:#5b7a8a;margin:1rem 0 .6rem}.or:before,.or:after{content:"";flex:1;border-top:1px solid #c9dde6}
.btn.google{display:flex;align-items:center;justify-content:center;gap:.6rem;width:100%;background:#fff;color:#1f2937;border:1px solid #c9dde6;font-weight:600}.btn.google:hover{background:#f3f8fb}

/* v0.6: login / sign-up box in 3D, bold texts, glowing fields, raised buttons */
.auth-scene{perspective:1200px}
.auth-scene .card.auth{font-weight:700;border:3px solid #ffd54a;border-radius:22px;background:linear-gradient(165deg,#ffffffF2 0%,#eaf6fbF2 55%,#d8eef8F2 100%);box-shadow:0 2px 0 #fff inset,0 -6px 0 #b9d9ea inset,0 26px 60px #0b3a5266,0 0 0 8px #ffffff55,0 0 40px #ffd54a55;transform:rotateX(2deg);transform-style:preserve-3d;transition:transform .5s ease,box-shadow .5s ease}
.auth-scene .card.auth:hover,.auth-scene .card.auth:focus-within{transform:rotateX(0) translateY(-3px);box-shadow:0 2px 0 #fff inset,0 -6px 0 #b9d9ea inset,0 34px 70px #0b3a5277,0 0 0 8px #ffffff66,0 0 60px #ffd54a88}
.auth-scene .card.auth h1{font-weight:900;letter-spacing:.5px;filter:drop-shadow(0 3px 0 #ffffff) drop-shadow(0 6px 10px #0f5f8a33)}
.auth-scene .card.auth label,.auth-scene .card.auth p,.auth-scene .card.auth small,.auth-scene .card.auth a,.auth-scene .card.auth .muted,.auth-scene .card.auth .check span{font-weight:700}
.auth-scene .card.auth a{color:#0f5f8a;text-decoration-color:#ffd54a;text-decoration-thickness:2px}
.auth-scene .card.auth input:not([type=checkbox]){font-weight:700;border:2px solid #b9d9ea;border-radius:12px;background:#fff;box-shadow:0 3px 0 #d6e8f1 inset,0 1px 0 #fff;transition:box-shadow .25s,border-color .25s,transform .25s}
.auth-scene .card.auth input:not([type=checkbox]):hover{border-color:#7fc3e4}
.auth-scene .card.auth input:not([type=checkbox]):focus{outline:none;border-color:#ffd54a;box-shadow:0 0 0 4px #ffd54a66,0 0 22px #ffd54a99,0 3px 0 #fff3c4 inset;transform:translateY(-1px)}
.auth-scene .card.auth .btn{font-weight:800;border-radius:14px;box-shadow:0 6px 0 #0b4f73,0 10px 22px #0b3a5255;transform:translateY(0);transition:transform .12s,box-shadow .12s,filter .2s}
.auth-scene .card.auth .btn:hover{filter:brightness(1.08);transform:translateY(-2px);box-shadow:0 8px 0 #0b4f73,0 14px 26px #0b3a5266,0 0 24px #1c9ad166}
.auth-scene .card.auth .btn:active{transform:translateY(4px);box-shadow:0 2px 0 #0b4f73,0 4px 10px #0b3a5255}
.auth-scene .card.auth .btn.ghost{box-shadow:0 4px 0 #b9d9ea,0 8px 18px #0b3a5233}.auth-scene .card.auth .btn.ghost:hover{box-shadow:0 6px 0 #b9d9ea,0 10px 20px #0b3a5244}
.auth-scene .card.auth .btn.google{color:#1f2937;box-shadow:0 5px 0 #c9dde6,0 10px 22px #0b3a5233}.auth-scene .card.auth .btn.google:hover{box-shadow:0 7px 0 #c9dde6,0 14px 26px #0b3a5244,0 0 24px #4285F455}
.auth-scene .card.auth .pw .eye{box-shadow:0 2px 0 #b9d9ea}.auth-scene .card.auth .pw .eye:hover{background:#ffd54a}
@media (prefers-reduced-motion:reduce){.auth-scene .card.auth,.auth-scene .card.auth:hover{transform:none;transition:none}}
/* v0.6: fixed side menu (scrolls on its own), build queue with its own scrollbar, real "Cancel" button */
@media (min-width:721px){.side{position:sticky;top:56px;align-self:flex-start;max-height:calc(100vh - 56px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#ffffff44 transparent}.side::-webkit-scrollbar{width:6px}.side::-webkit-scrollbar-thumb{background:#ffffff44;border-radius:6px}}
.queue{max-height:15.5rem;overflow-y:auto;overscroll-behavior:contain;padding-right:.3rem;scrollbar-width:thin;scrollbar-color:#7fc3e4 #eaf6fb}.queue::-webkit-scrollbar{width:8px}.queue::-webkit-scrollbar-track{background:#eaf6fb;border-radius:8px}.queue::-webkit-scrollbar-thumb{background:#7fc3e4;border-radius:8px;border:2px solid #eaf6fb}.queue::-webkit-scrollbar-thumb:hover{background:#1c9ad1}
.queue li{padding:.5rem 0}
.queue .link.danger{display:inline-flex;align-items:center;gap:.3rem;background:linear-gradient(180deg,#f06a5a,#d6392a);color:#fff;border:0;border-radius:10px;padding:.35rem .75rem;font-weight:700;text-decoration:none;cursor:pointer;box-shadow:0 4px 0 #9c2417,0 6px 14px #d6392a44;transition:transform .12s,box-shadow .12s,filter .15s}
.queue .link.danger:hover{filter:brightness(1.08);transform:translateY(-1px);box-shadow:0 5px 0 #9c2417,0 8px 16px #d6392a55}.queue .link.danger:active{transform:translateY(3px);box-shadow:0 1px 0 #9c2417}
.queue li .inline{margin-left:.3rem}
.sw.wild{background:#c98a3a}.sw.drift{background:#bfe9ff;border:1px solid #7fb6d6}.sw.merchant{background:#e0a83a}.sw.arrow{background:linear-gradient(90deg,#ffffffcc 50%,#ffd54a 50%);border-radius:3px;border:1px solid #7fb6d6}

/* v0.6: «?» on the top resource chips, readable tooltip above everything */
.top{z-index:60;overflow:visible}.res .r{position:relative;cursor:help}
.res .r .q{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:#ffd54a;color:#0b3a52;font-size:.72rem;font-weight:800;margin-left:.15rem;box-shadow:0 1px 0 #0006}
.res .r:hover .q,.res .r.open .q{background:#fff}
.rtip{display:none;position:absolute;top:calc(100% + 10px);left:50%;transform:translateX(-50%);min-width:260px;max-width:320px;background:#082c40;color:#f3fafe;border:1px solid #ffd54a66;border-radius:14px;padding:.75rem .95rem;font-size:.95rem;line-height:1.55;box-shadow:0 14px 34px #000c;z-index:70;text-align:left;font-weight:500}
.rtip b{color:#ffe08a}.rtip::before{background:#082c40;border-color:#ffd54a66}
.res .r:hover .rtip,.res .r:focus-within .rtip,.res .r.open .rtip{display:block}
@media (max-width:720px){.rtip{position:fixed;top:auto;bottom:4.2rem;left:.6rem;right:.6rem;transform:none;min-width:0;max-width:none;font-size:1rem}.rtip::before{display:none}}

/* v0.6: one hand only in the step-by-step guide: on the highlighted menu entry */
.tut-tip .tut-arrow{display:none}
.tut-target::after{content:"👈";left:auto;right:.5rem;font-size:1.3rem}

/* v0.6: Ships page explained step by step */
.lead{font-size:1.02rem;margin:-.2rem 0 1rem;color:#1f4b63}
.steps h3.step{display:flex;align-items:center;gap:.5rem;margin:1.1rem 0 .3rem;font-size:1.05rem}
.steps .num{display:inline-flex;width:26px;height:26px;border-radius:50%;background:#1c9ad1;color:#fff;align-items:center;justify-content:center;font-size:.9rem;font-weight:800;box-shadow:0 2px 0 #0f6a98}
.mcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.5rem}
.mcard{display:flex;flex-direction:column;gap:.2rem;padding:.55rem .65rem;border:2px solid #cfe6f2;border-radius:12px;background:#f7fbfe;cursor:pointer;transition:transform .12s,box-shadow .12s,border-color .12s}
.mcard input{position:absolute;opacity:0;pointer-events:none}
.mcard b{font-size:.95rem}.mcard small{color:#3f6577;line-height:1.3;font-size:.78rem}
.mcard:hover{transform:translateY(-1px);box-shadow:0 6px 14px #0b3a5222}
.mcard:has(input:checked){border-color:#1c9ad1;background:#e6f4fb;box-shadow:0 0 0 3px #1c9ad133}
.coords{align-items:end;gap:.6rem}.coords label{font-weight:600}.coords .qty{width:6rem}
.summary{margin-top:1rem;padding:.8rem 1rem;border-radius:12px;background:linear-gradient(180deg,#fffbe9,#fff6d6);border:1px solid #ffd54a}
.summary .travel{font-weight:700;margin:.2rem 0 .5rem}
.btn.big{font-size:1.1rem;padding:.6rem 1.4rem}
.cargo label.inline{margin:.2rem .6rem .2rem 0}
@media (max-width:720px){.mcards{grid-template-columns:1fr 1fr}.coords{flex-wrap:wrap}}
.coords label{display:flex;flex-direction:column;gap:.2rem}

/* v0.6: map legend with 3D island thumbnails, bigger text */
.legend{font-size:.9rem;gap:.6rem 1rem}
.legend .sw{width:22px;height:17px;border-radius:50%;background:#7fb6d6;box-shadow:0 0 0 2px #fff8}
.legend .sw.me,.legend .sw.ally,.legend .sw.other,.legend .sw.prot{background:url(/assets/island3d/l1_s0.webp) center/cover}
.legend .sw.me{box-shadow:0 0 0 3px #ffd54a}.legend .sw.ally{box-shadow:0 0 0 3px #3bd16f}.legend .sw.other{box-shadow:0 0 0 3px #ff7a59}.legend .sw.prot{box-shadow:0 0 0 3px #9fd3f0}
.legend .sw.ev{background:#8e6cc2 url(/assets/ev/mystery.svg) center/80% no-repeat}.legend .sw.merchant{background:#e0a83a url(/assets/ev/merchant.svg) center/80% no-repeat}
.legend .sw.arrow{width:26px;height:10px;border-radius:3px}

/* v0.6: guide highlight on the page element to press */
.tut-glow{outline:4px solid #ffd54a;outline-offset:3px;border-radius:14px;animation:glow 1.4s ease-in-out infinite;position:relative;z-index:1}
.tut-glow::before{content:"👇";position:absolute;top:-1.6rem;right:.6rem;font-size:1.4rem;animation:nudge 1.2s ease-in-out infinite}
/* v0.6: much more readable text everywhere (Niccolò, 1/11/2026) */
:root{--muted:#3d5d6e;--ink:#10303f}
html{font-size:17px}
body{line-height:1.55}
.small{font-size:.93rem}
.muted{color:var(--muted)}
small,.tbl.small,.legend,.note,.tut-tip p,.card p,.card li,label{font-size:1rem}
.tbl.small td,.tbl.small th{font-size:.95rem}
.side a{font-size:1.05rem;font-weight:600}
.card h2{font-size:1.3rem}.card h3{font-size:1.1rem}
.queue li,.mcard small,.legend span{font-size:.95rem}
.mcard small{color:#2f5366}
@media (max-width:720px){html{font-size:16px}.bottom a{font-size:.8rem}}
/* v0.6: texts and images are not selectable/draggable (inputs and chats excluded) */
body{-webkit-user-select:none;user-select:none}
input,textarea,select,[contenteditable],.chatlog,.msg-body,pre,code{-webkit-user-select:text;user-select:text}
img,canvas{-webkit-user-drag:none;user-drag:none;pointer-events:auto}

/* v0.6: live points and ranking */
[data-points].bump{color:#ffd54a;transition:color .3s}
.live-flash{animation:liveflash .9s ease-out}@keyframes liveflash{0%{background:#fff6d6}100%{background:transparent}}
.live-tag::before{content:"";display:inline-block;width:9px;height:9px;border-radius:50%;background:#1f8a4c;margin-right:.4rem;animation:glow 1.4s ease-in-out infinite}
/* v0.6: wide tables scroll inside their card instead of widening the page */
.rules table,.card>table.tbl{display:block;max-width:100%;overflow-x:auto}
.card{overflow-x:auto}

/* v0.6: update toast */
.toast.update{position:fixed;left:50%;bottom:1.2rem;transform:translateX(-50%);background:#0f3d57;color:#fff;padding:.7rem 1.2rem;border-radius:12px;font-weight:700;box-shadow:0 10px 24px #0008;z-index:200;animation:fadein .4s}

/* v0.6: the page column never grows wider than the window (flex item min-width) */
.page{min-width:0}

/* v0.6: guided search suggestions */
.sugg{position:absolute;z-index:120;min-width:240px;max-width:min(420px,92vw);background:#fff;color:#10303f;border:1px solid #c9dde6;border-radius:12px;box-shadow:0 14px 34px #0b3a5244;padding:.3rem;margin-top:.3rem;max-height:60vh;overflow:auto}
.sugg-it{display:flex;justify-content:space-between;gap:.8rem;padding:.45rem .6rem;border-radius:8px;text-decoration:none;color:inherit}
.sugg-it b{font-weight:600}.sugg-it small{color:#5d7a8a;white-space:nowrap}
.sugg-it:hover,.sugg-it.on{background:#e6f4fb}
.top .search,.top form.search{position:relative}.findbox{position:relative;margin:.2rem 0 .8rem}.findbox input{width:100%;max-width:420px;padding:.5rem .8rem;border-radius:999px;border:2px solid #c9dde6;font-size:1rem}
.found{animation:liveflash 2s ease-out;outline:3px solid #ffd54a;border-radius:8px}
@media (max-width:720px){.sugg{left:.5rem;right:.5rem;max-width:none}}
.gsearch{position:relative}
