:root {
  --ink: #073e3a;
  --deep: #062f2d;
  --green: #4f9962;
  --lime: #bddb62;
  --cream: #f7f6eb;
  --paper: #edf1df;
  --line: rgba(7, 62, 58, .16);
  --soft-shadow: 0 14px 35px rgba(35, 83, 62, .11);
}

* { box-sizing: border-box; }
html { min-width: 320px; }
body {
  margin: 0;
  color: var(--ink);
  background:
    radial-gradient(circle at 8% 18%, rgba(189,219,98,.2), transparent 22rem),
    radial-gradient(circle at 92% 72%, rgba(103,184,143,.16), transparent 26rem),
    var(--cream);
  font-family: "Noto Sans JP", sans-serif;
  min-height: 100vh;
  overflow-x: hidden;
}
button { font: inherit; color: inherit; }
.grain {
  position: fixed; inset: 0; pointer-events: none; z-index: 20; opacity: .06;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E");
}
header {
  height: 92px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center;
  border-bottom: 1px solid rgba(7,62,58,.1); padding: 0 4vw; letter-spacing: .08em;
  background:rgba(255,255,255,.42);backdrop-filter:blur(12px);
}
.brand { display: flex; align-items: center; gap: 12px; width:max-content; color: inherit; text-decoration: none; font-size: 11px; font-weight: 900; line-height: 1.05; letter-spacing: .13em; }
.brand h1{margin:0;font:inherit;line-height:inherit}
.brand b { font-size: 15px; }
.brand-mark { width: 39px; height: 39px; background: var(--ink); display: grid; place-items: center; border-radius: 50%; position: relative; }
.brand-mark i { width: 22px; height: 22px; border-radius: 50%; background: var(--lime); box-shadow: inset -5px -4px rgba(0,0,0,.13); }
.header-center { display: flex; gap: 24px; align-items: center; font-size: 11px; font-weight: 600; }
.status { display:flex;align-items:center;font-family:"DM Mono";color:var(--green);transition:color .3s; }
.status i { display: inline-block; width: 6px; height: 6px; background: currentColor; border-radius: 50%; box-shadow: 0 0 0 4px color-mix(in srgb,currentColor 18%,transparent); margin-right: 7px;transition:background .3s,box-shadow .3s; }
.status[data-level="stable"]{color:#719646}
.status[data-level="warning"]{color:#c18a2f}
.status[data-level="danger"]{color:#c25f39}
.status[data-level="stopped"]{color:#a94343}
.sound-btn, .reset-btn { justify-self: end; background:rgba(255,255,255,.56); border: 1px solid var(--line); border-radius:999px; padding: 10px 15px; cursor: pointer; font-size: 10px; font-weight: 700; letter-spacing: .08em;transition:transform .18s,background .18s,box-shadow .18s}
.sound-btn:hover,.reset-btn:hover{transform:translateY(-2px);background:#fff;box-shadow:0 7px 16px rgba(35,83,62,.1)}
.sound-icon { margin-right: 7px; }

main { max-width: 1260px; margin: 0 auto; padding: 32px 36px 48px; display: grid; grid-template-columns: minmax(450px, 1.15fr) minmax(400px, .85fr); column-gap:clamp(50px,7vw,105px);row-gap:32px; }
.equipment-panel,.ranking-panel{grid-column:1/-1}
.section-label { display: flex; align-items: center; gap: 12px; font-size: 11px; letter-spacing: .15em; font-weight: 700; margin-bottom: 25px; }
.section-label span { width:20px;height:20px;flex:0 0 20px;border:0;border-radius:50%;background:radial-gradient(circle at 35% 30%,#c8df70 0 12%,#77a94f 42%,#315d40 100%);box-shadow:inset -3px -3px 5px rgba(7,47,45,.2),0 3px 8px rgba(35,83,62,.14); }
.section-label.compact { margin-bottom: 4px; }

.tank-wrap { position: relative; width: min(100%, 580px); filter: drop-shadow(0 22px 25px rgba(10,52,48,.12)); }
.tank {
  height: 550px; position: relative; overflow: hidden;
  border: 8px solid var(--ink); border-bottom-width: 12px; background:
  linear-gradient(180deg, rgba(220,242,218,.74), rgba(138,201,180,.8));
  box-shadow: inset 8px 0 rgba(255,255,255,.28), inset -8px 0 rgba(5,65,61,.08);
  border-radius:38px 38px 24px 24px;
}
.tank-glow { position: absolute; z-index: -1; width: 70%; height: 70%; left: 15%; top: 5%; background: rgba(183,220,90,.32); filter: blur(65px); }
.water-line { position: absolute; top: 34px; left: 0; right: 0; height: 3px; border-top: 2px solid rgba(7,62,58,.25); }
.light-rays { position:absolute; inset:0; opacity:.32; background: linear-gradient(112deg, transparent 12%, rgba(255,255,255,.5) 13%, transparent 31%, rgba(255,255,255,.26) 32%, transparent 46%); }
.ground { position: absolute; bottom: 0; width: 100%; height: 85px; background: #819c57; border-top: 2px solid rgba(7,62,58,.4); }
.ground:after { content:""; position:absolute; inset:0; opacity:.4; background-image: radial-gradient(#244f38 1px, transparent 1px); background-size: 8px 7px; }
.ground i { position: absolute; width: 3px; height: 48px; bottom: 66px; background: #3b7547; transform-origin: bottom; border-radius: 100% 0; z-index: 1; }
.ground i:nth-child(1) { left:8%; transform:rotate(-15deg); height: 36px}.ground i:nth-child(2){left:14%;transform:rotate(12deg)}.ground i:nth-child(3){left:82%; transform:rotate(-8deg);height:33px}.ground i:nth-child(4){left:88%;transform:rotate(17deg);height:54px}.ground i:nth-child(5){left:4%;height:25px}.ground i:nth-child(6){left:93%;height:28px}
.marimo {
  position:absolute; z-index:4; width:260px; height:260px; left:50%; top:auto;bottom:85px;transform:translateX(-50%);
  border:0; border-radius:50%; cursor:pointer; padding:0; background:
  radial-gradient(circle at 36% 29%, rgba(205,226,123,.38), transparent 24%),
  radial-gradient(circle at 68% 73%, rgba(26,78,48,.3), transparent 36%),
  radial-gradient(circle at 40% 35%, #8fba62, #4f824e 64%, #315d40 100%);
  box-shadow: inset 18px 14px 25px rgba(210,230,119,.28), inset -20px -18px 30px rgba(7,47,45,.23), 0 24px 25px rgba(7,62,58,.18);
  transition: transform .1s ease, filter .2s, width .5s, height .5s;
  -webkit-tap-highlight-color: transparent;
}
.marimo:before,.marimo:after,.marimo-fuzz:before,.marimo-fuzz:after{content:"";position:absolute;border-radius:50%;pointer-events:none}
.marimo:before{
  inset:4%;
  background:
    radial-gradient(ellipse at 28% 36%,rgba(218,233,139,.2),transparent 30%),
    radial-gradient(ellipse at 68% 30%,rgba(37,96,52,.13),transparent 34%),
    radial-gradient(ellipse at 45% 72%,rgba(28,87,49,.16),transparent 38%);
  opacity:.7;
  mix-blend-mode:soft-light;
  transform:rotate(-9deg);
}
.marimo:after{
  inset:7%;
  background:
    radial-gradient(ellipse at 64% 62%,rgba(22,77,43,.18),transparent 38%),
    radial-gradient(ellipse at 34% 48%,rgba(188,216,105,.13),transparent 32%);
  opacity:.58;
  mix-blend-mode:multiply;
  transform:rotate(17deg);
}
.marimo-fuzz{position:absolute;inset:0;border-radius:50%;overflow:hidden}
.marimo-fuzz:before{
  inset:3%;
  background:radial-gradient(ellipse at 38% 30%,rgba(215,232,133,.16),transparent 42%);
  filter:blur(5px);
  opacity:.8;
}
.marimo-fuzz:after{
  inset:4%;
  background:radial-gradient(ellipse at 66% 70%,rgba(20,73,42,.15),transparent 44%);
  filter:blur(6px);
  opacity:.72;
  transform:rotate(31deg);
}
.marimo:hover { filter: brightness(1.06); }
.marimo:active { transform:translate(-50%,2px) scale(.96); }
.marimo.pressed { animation:marimo-bounce .34s ease-out; }
.marimo-shadow { position:absolute; width:230px;height:35px; border-radius:50%; background:rgba(7,47,45,.25); filter:blur(9px); left:50%; bottom:65px; transform:translateX(-50%); }
.click-hint { position:absolute;z-index:6;left:calc(50% + var(--marimo-radius) - 20px);top:calc(100% - 97px - var(--marimo-radius) - var(--marimo-radius));font-family:"DM Mono";font-size:10px;font-weight:500;letter-spacing:.12em;display:flex;gap:7px;align-items:center; animation: bob 1.8s ease-in-out infinite; pointer-events:none}
.click-hint span{background:rgba(255,255,255,.78);border:1px solid rgba(7,62,58,.14);border-radius:999px;padding:7px 10px;box-shadow:0 6px 15px rgba(7,62,58,.1)}
.click-hint i{font-style:normal;font-size:30px}
.tank-base { height:53px; background:var(--ink); color:#dbe4c2; display:flex;align-items:center;justify-content:space-between;padding:0 20px;font-family:"DM Mono";font-size:9px;letter-spacing:.12em;border-radius:0 0 24px 24px}
.tank-base div { display:flex;gap:8px}.tank-base i{width:7px;height:7px;border-radius:50%;background:#b2cf51}.tank-base i:nth-child(2),.tank-base i:nth-child(4){opacity:.25}
.tank-caption { text-align:center;font-size:12px;letter-spacing:.08em;margin-top:18px;color:rgba(7,62,58,.65)}
.bubble { position:absolute; bottom:75px; width:8px;height:8px;border:1px solid rgba(7,62,58,.35);border-radius:50%;animation:rise var(--speed) linear forwards;left:var(--left); }
.burst-bubble{z-index:8;bottom:auto;background:rgba(255,255,255,.3);box-shadow:inset 2px 2px 3px rgba(255,255,255,.35);animation:bubble-burst .9s var(--burst-delay) cubic-bezier(.2,.65,.3,1) forwards}
.pop { position:absolute;z-index:10;padding:6px 10px;border:1px solid rgba(7,62,58,.16);border-radius:999px;background:rgba(255,255,255,.9);box-shadow:0 7px 18px rgba(7,62,58,.16);font-family:"DM Mono";font-weight:700;color:var(--deep);font-size:16px;line-height:1;white-space:nowrap;pointer-events:none;user-select:none;-webkit-user-select:none;animation:pop .8s ease-out forwards; }

.score-area { padding:24px 22px; border:1px solid var(--line);border-radius:26px;background:rgba(255,255,255,.5);box-shadow:var(--soft-shadow); }
.score-area p { margin:0 0 5px;font-size:12px;font-weight:600;letter-spacing:.1em}
.score-line { display:flex;align-items:flex-end;gap:15px; }
.score-value{position:relative;display:flex;min-width:0;flex-direction:column;align-items:flex-start}
.score-line strong { font-family:"DM Mono";font-size:clamp(62px,7.5vw,105px);letter-spacing:-.08em;line-height:.95;font-weight:500;color:#36764b; }
.score-value small{position:absolute;left:3px;top:calc(100% + 7px);font-family:"DM Mono";font-size:11px;line-height:1;letter-spacing:.06em;color:rgba(7,62,58,.55);white-space:nowrap}
.score-value small[hidden]{display:none}
.score-line span { font-family:"DM Mono";font-size:11px;margin-bottom:12px;letter-spacing:.1em}
.rate-line { display:flex;justify-content:space-between;margin-top:19px;font-family:"DM Mono";font-size:11px;letter-spacing:.08em}
.rate-line span:first-child { color:var(--green);background:rgba(79,153,98,.12);padding:7px 11px;border-radius:999px}
.share-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:16px;padding:10px 14px;border:1px solid var(--ink);border-radius:999px;background:var(--ink);color:var(--cream);font-size:11px;font-weight:700;letter-spacing:.06em;cursor:pointer;transition:transform .18s,box-shadow .18s,background .18s}
.share-btn b{font-size:15px;line-height:1}
.share-btn:hover{transform:translateY(-2px);background:var(--deep);box-shadow:0 8px 18px rgba(7,62,58,.18)}
.share-btn:active{transform:translateY(0) scale(.98)}
.growth-card { margin:18px 0 35px;border:1px solid var(--line);border-radius:22px;padding:19px 20px 16px;background:rgba(255,255,255,.42)}
.growth-head { display:flex;align-items:flex-start;justify-content:space-between}
.growth-head>div{display:flex;flex-direction:column;gap:3px}.mini-label{font-family:"DM Mono";font-size:8px;letter-spacing:.12em;color:var(--green)}.growth-head strong{font-size:18px}
.stage-number{font-family:"DM Mono";font-size:18px;font-weight:500;color:rgba(7,62,58,.3);letter-spacing:-.03em}
.progress{height:8px;background:rgba(7,62,58,.1);margin:15px 0 8px;border-radius:999px;overflow:hidden}.progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--green),var(--lime));border-radius:inherit;transition:width .3s}
.progress-label{font-size:9px;display:flex;justify-content:space-between;color:rgba(7,62,58,.58)}.progress-label b{font-family:"DM Mono"}
.water-card{margin-top:-17px;border:1px solid var(--line);border-radius:22px;padding:18px 20px;background:rgba(255,255,255,.42)}
.water-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.water-head>div{display:flex;flex-direction:column;gap:3px}.water-head strong{font-size:15px}
.water-head>span{font-size:8px;color:rgba(7,62,58,.55);text-align:right}
.water-gauge{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin:15px 0}
.water-gauge i{height:13px;border-radius:999px;background:rgba(7,62,58,.1);box-shadow:inset 0 1px 2px rgba(7,62,58,.08);transition:background .3s,box-shadow .3s}
.water-gauge i.active{background:linear-gradient(90deg,#6ebc93,#83cfb0);box-shadow:0 3px 8px rgba(58,147,113,.2)}
.water-btn{width:100%;padding:9px 14px;border:1px solid rgba(79,153,98,.35);border-radius:999px;background:rgba(79,153,98,.1);color:var(--green);font-size:10px;font-weight:700;letter-spacing:.08em;cursor:pointer;transition:transform .18s,background .18s,color .18s}
.water-btn:hover{transform:translateY(-1px);background:var(--green);color:#fff}
.water-warning{margin:9px 0 0;text-align:center;font-size:8px;letter-spacing:.04em;color:rgba(169,67,67,.72)}
.shop-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:13px}.shop-head p{font-size:10px;margin:0;color:rgba(7,62,58,.55)}.reset-btn{padding:7px 9px;opacity:.45;font-size:8px}.reset-btn:hover{opacity:1}
.shop{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.ranking-panel{border:1px solid var(--line);border-radius:26px;padding:24px;background:rgba(255,255,255,.46);box-shadow:var(--soft-shadow)}
.ranking-head{display:flex;align-items:end;justify-content:space-between;gap:20px}.ranking-head p{margin:0;font-size:10px;color:rgba(7,62,58,.55)}
.ranking-refresh{padding:7px 13px;border:1px solid var(--line);border-radius:999px;background:#fff;cursor:pointer;font-size:9px;font-weight:700}
.ranking-form{display:flex;gap:10px;margin:20px 0 10px}.ranking-form label{display:flex;flex:1;align-items:center;gap:12px;padding:0 14px;border:1px solid var(--line);border-radius:999px;background:#fff}.ranking-form label span{font-size:9px;font-weight:700;white-space:nowrap}.ranking-form input{width:100%;min-width:0;padding:11px 0;border:0;outline:0;background:transparent;font:inherit;font-size:12px}
.ranking-form button{padding:11px 20px;border:0;border-radius:999px;background:var(--ink);color:var(--cream);cursor:pointer;font-size:10px;font-weight:700}.ranking-form button:disabled{opacity:.45;cursor:wait}
.ranking-record{margin:0 0 16px;font-family:"DM Mono";font-size:10px;color:var(--green)}
.ranking-table-wrap{overflow-x:auto}.ranking-table{width:100%;border-collapse:collapse;font-size:11px}.ranking-table th,.ranking-table td{padding:11px 12px;border-bottom:1px solid var(--line);text-align:right}.ranking-table th{font-size:8px;letter-spacing:.08em;color:rgba(7,62,58,.5)}.ranking-table th:nth-child(2),.ranking-table td:nth-child(2){text-align:left}.ranking-table tbody tr:first-child{color:#397749;font-weight:700}.ranking-table td[colspan]{text-align:center;color:rgba(7,62,58,.5)}
.ranking-message{min-height:1.5em;margin:10px 0 0;text-align:center;font-size:10px;color:var(--green)}
.shop-item { width:100%;display:grid;grid-template-columns:51px 1fr auto;align-items:center;gap:14px;text-align:left;padding:12px 14px;border:1px solid var(--line);border-radius:20px;background:rgba(255,255,255,.46);cursor:pointer;transition:.18s;position:relative;overflow:hidden;box-shadow:0 6px 18px rgba(35,83,62,.055)}
.shop-item:before{content:"";position:absolute;inset:0;background:var(--ink);transform:translateX(-102%);transition:.25s;z-index:-1}
.shop-item:not(:disabled):hover{color:var(--cream);border-color:var(--ink);transform:translateY(-2px) scale(1.01);box-shadow:0 10px 22px rgba(35,83,62,.14)}.shop-item:not(:disabled):hover:before{transform:none}.shop-item:disabled{cursor:not-allowed;opacity:.42}
.item-icon{width:47px;height:47px;border:1px solid currentColor;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:24px;line-height:1;background:rgba(255,255,255,.2)}
.item-icon i{display:block;font-family:"Segoe UI Symbol","Apple Symbols","Arial Unicode MS",sans-serif;font-style:normal;font-weight:400;line-height:1;transform:translateY(1px)}
.shop-item[data-id="light"] .item-icon i,
.shop-item[data-id="researcher"] .item-icon i,
.shop-item[data-id="ai"] .item-icon i,
.shop-item[data-id="deepwater"] .item-icon i,
.shop-item[data-id="sporelab"] .item-icon i,
.shop-item[data-id="sanctuary"] .item-icon i,
.shop-item[data-id="institute"] .item-icon i{transform:translateY(2px)}
.shop-item[data-id="spray"] .item-icon i,
.shop-item[data-id="lake"] .item-icon i{transform:translateY(3px)}
.item-copy strong{display:block;font-size:13px;margin-bottom:3px}.item-copy span{display:block;font-size:9px;opacity:.65;letter-spacing:.04em}.item-price{text-align:right;font-family:"DM Mono";font-size:12px}.item-price b{display:block;font-size:8px;font-family:"Noto Sans JP";font-weight:400;margin-top:3px;opacity:.6}
.item-meta{display:flex;align-items:center;gap:12px}
.owned{position:static;min-width:48px;padding:6px 8px;border-radius:12px;background:rgba(79,153,98,.13);color:var(--green);font-family:"DM Mono";text-align:center;opacity:1}
.owned small{display:block;font-size:7px;line-height:1;letter-spacing:.08em}
.owned strong{display:block;margin-top:3px;font-size:17px;line-height:1}
.shop-item:not(:disabled):hover .owned{background:rgba(255,255,255,.16);color:var(--lime)}
.ad-section{width:min(100%,1260px);margin:0 auto;padding:24px 36px 24px}
.ad-label{display:block;margin-bottom:8px;text-align:center;font-family:"DM Mono";font-size:7px;letter-spacing:.16em;color:rgba(7,62,58,.38)}
.ad-slot{width:100%;min-height:90px;overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:rgba(255,255,255,.24)}
.ad-slot .adsbygoogle{width:100%;min-width:0}
footer{border-top:1px solid var(--line);height:60px;padding:0 4vw;display:flex;align-items:center;justify-content:space-between;font-family:"DM Mono";font-size:8px;letter-spacing:.1em;color:rgba(7,62,58,.5)}
.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,20px);background:var(--deep);color:var(--cream);border-radius:999px;padding:12px 20px;font-size:11px;letter-spacing:.08em;opacity:0;pointer-events:none;transition:.3s;z-index:30;box-shadow:var(--soft-shadow)}.toast.show{opacity:1;transform:translate(-50%,0)}

@keyframes rise{to{transform:translateY(-440px) scale(1.5);opacity:0}}@keyframes bubble-burst{0%{transform:translate(0,0) scale(.45);opacity:0}15%{opacity:.9}100%{transform:translate(var(--burst-x),var(--burst-y)) scale(1.25);opacity:0}}@keyframes pop{0%{opacity:0;transform:translate(-50%,8px) scale(.75)}18%{opacity:1;transform:translate(-50%,0) scale(1)}100%{opacity:0;transform:translate(-50%,-72px) scale(1.08)}}@keyframes bob{50%{transform:translateY(7px)}}@keyframes marimo-bounce{0%{transform:translate(-50%,0) scale(1)}35%{transform:translate(-50%,7px) rotate(-3deg) scale(.94)}68%{transform:translate(-50%,-5px) rotate(2deg) scale(1.025)}100%{transform:translate(-50%,0) rotate(0) scale(1)}}
@media(max-width:1000px){header{grid-template-columns:1fr auto}.header-center{display:none}main{grid-template-columns:1fr;max-width:650px}.equipment-panel,.ranking-panel{grid-column:auto}.shop{grid-template-columns:1fr}.tank-wrap{margin:auto}.tank{height:530px}.data-panel{margin-top:10px}}
@media(max-width:560px){header{height:72px;padding:0 20px}.sound-btn{border:0;padding:8px 0}.sound-btn .sound-icon{display:none}main{padding:28px 16px 40px;gap:38px}.tank{height:430px;border-width:6px}.marimo{width:215px;height:215px}.score-line strong{font-size:64px}.shop-item{grid-template-columns:44px 1fr auto;gap:10px;padding:10px}.item-icon{width:42px;height:42px}.item-meta{gap:7px}.owned{min-width:42px;padding:6px}.owned strong{font-size:15px}.item-price{font-size:10px}.ranking-panel{padding:18px 14px}.ranking-form{align-items:stretch;flex-direction:column}.ranking-form label{min-height:42px}.ranking-form button{min-height:42px}.ranking-table th,.ranking-table td{padding:9px 7px}.ad-section{padding:0 16px 32px}.ad-slot{min-height:100px}footer{padding:0 18px}footer span:first-child{display:none}}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .click-hint{animation:none}
}
