.ccp-beach{--gold:#d8a43d;--navy:#071827;position:relative}.ccp-beach-heading{display:flex;justify-content:space-between;gap:1rem;align-items:end;margin:0 0 1rem;padding:1rem 1.2rem;border:1px solid rgba(216,164,61,.4);border-radius:20px;background:linear-gradient(135deg,#0c2639,#103d53);color:#fff}.ccp-beach-heading span,.ccp-fishing-title span{font-size:.75rem;font-weight:900;letter-spacing:.18em;color:#efc96f}.ccp-beach-heading h1,.ccp-fishing-title h2{margin:.25rem 0;font-family:Georgia,serif}.ccp-beach-heading p{margin:0;max-width:740px}.ccp-tide-badge{min-width:180px;text-align:center;padding:.65rem .85rem;border-radius:14px;background:rgba(255,255,255,.1)}.ccp-tide-badge small{display:block;margin-top:.25rem;opacity:.82}
.ccp-beach-stage{position:relative;aspect-ratio:16/9;border-radius:22px;overflow:hidden;border:1px solid rgba(216,164,61,.55);background:#071827;box-shadow:0 22px 60px rgba(0,0,0,.3)}.ccp-beach-panel{position:absolute;inset:0;opacity:0;visibility:hidden;transform:translateX(3%);transition:opacity .38s ease,transform .38s ease}.ccp-beach-panel.is-active{opacity:1;visibility:visible;transform:none;z-index:2}.ccp-beach-panel>img{width:100%;height:100%;object-fit:cover;display:block}.ccp-beach-weather-layer{position:absolute;inset:0;pointer-events:none;z-index:3}.ccp-weather-rain .ccp-beach-weather-layer{background:repeating-linear-gradient(105deg,transparent 0 24px,rgba(210,238,255,.28) 25px 27px);animation:ccpBeachRain .7s linear infinite}.ccp-weather-fog .ccp-beach-weather-layer{background:linear-gradient(90deg,rgba(230,240,239,.44),rgba(240,247,246,.68),rgba(230,240,239,.42));animation:ccpBeachFog 7s ease-in-out infinite}.ccp-weather-storm .ccp-beach-weather-layer{background:rgba(8,26,42,.25);animation:ccpBeachLightning 7s infinite}.ccp-time-night .ccp-beach-panel>img{filter:brightness(.52) saturate(.82) hue-rotate(8deg)}.ccp-time-evening .ccp-beach-panel>img{filter:saturate(.9) sepia(.16)}
.ccp-beach-object{position:absolute;border:0;background:transparent;cursor:pointer;z-index:5;border-radius:45%;transition:filter .18s,box-shadow .18s}.ccp-beach-object:hover,.ccp-beach-object:focus-visible{outline:none;box-shadow:0 0 0 2px rgba(255,221,130,.7),0 0 28px rgba(255,206,86,.48)}.ccp-object-cecil{left:6%;top:21%;width:25%;height:38%}.ccp-object-flag{left:7%;top:0;width:19%;height:17%}.ccp-object-lifering{left:3%;bottom:16%;width:13%;height:19%}.ccp-object-shell{left:8%;bottom:6%;width:16%;height:12%}.ccp-object-driftwood{left:0;bottom:0;width:25%;height:18%}.ccp-object-waterline{left:27%;bottom:10%;width:52%;height:30%}.ccp-object-dock{left:8%;top:23%;width:71%;height:39%}.ccp-object-boat{left:47%;top:47%;width:25%;height:20%}.ccp-object-gulls{left:38%;top:8%;width:35%;height:17%}
.ccp-beach-travel,.ccp-fishing-start{position:absolute;z-index:7;border:1px solid #efc96f;background:rgba(6,27,43,.9);color:#fff;padding:.72rem 1rem;border-radius:999px;font-weight:800;cursor:pointer;box-shadow:0 8px 28px rgba(0,0,0,.28)}.ccp-beach-travel-left{left:1rem;bottom:1rem}.ccp-beach-travel-right{right:1rem;bottom:1rem}.ccp-fishing-start{right:3%;bottom:8%;font-size:1rem}.ccp-beach-caption{display:flex;gap:.7rem;align-items:center;justify-content:center;padding:.8rem;color:#dfeef5}.ccp-beach-caption strong{color:#efc96f}.ccp-beach-caption span{opacity:.86}
.ccp-beach-dialog{width:min(650px,92vw);border:2px solid #c99432;border-radius:22px;padding:1.4rem 1.55rem;background:#fbefcf;color:#392410;box-shadow:0 30px 90px rgba(0,0,0,.55)}.ccp-beach-dialog::backdrop{background:rgba(2,12,20,.76);backdrop-filter:blur(2px)}.ccp-beach-dialog span{color:#a26b19;font-weight:900;font-size:.75rem;letter-spacing:.16em}.ccp-beach-dialog h2{font-family:Georgia,serif;font-size:2rem;margin:.35rem 0 .65rem}.ccp-beach-dialog p{font-size:1.08rem;line-height:1.65}.ccp-beach-dialog blockquote{margin:1rem 0 0;padding:1rem;border-left:4px solid #d6a23d;background:rgba(255,255,255,.3);font-style:italic}.ccp-beach-dialog-close,.ccp-fishing-close{float:right;border:0;border-radius:12px;background:#0d3550;color:#fff;width:42px;height:42px;font-size:1.5rem;font-weight:900;cursor:pointer}
.ccp-fishing-overlay{position:fixed;inset:0;background:rgba(2,12,20,.88);z-index:99999;display:grid;place-items:center;padding:1rem}.ccp-fishing-game{width:min(900px,96vw);background:#f8ecd0;border:3px solid #9a692e;border-radius:22px;padding:1.25rem;box-shadow:0 32px 100px rgba(0,0,0,.62)}.ccp-fishing-title{text-align:center;color:#34220f}.ccp-fishing-title p{margin:.25rem 0 .8rem}.ccp-fishing-water{position:relative;height:min(45vh,390px);overflow:hidden;border-radius:18px;background:linear-gradient(#78cfe9 0 28%,#2c9fc3 28% 50%,#0d648e);border:2px solid #37677a}.ccp-fishing-horizon{position:absolute;inset:25% 0 auto;height:3px;background:rgba(255,255,255,.35)}.ccp-fishing-water:before,.ccp-fishing-water:after{content:"";position:absolute;left:-10%;width:120%;height:60px;border-top:6px solid rgba(255,255,255,.42);border-radius:50%;animation:ccpBeachWave 3.4s ease-in-out infinite}.ccp-fishing-water:before{top:48%}.ccp-fishing-water:after{top:72%;animation-delay:-1.5s}.ccp-fishing-bobber{position:absolute;left:49%;top:42%;width:18px;height:32px;border-radius:50%;background:linear-gradient(#e43e35 0 45%,#fff 45%);z-index:4;transition:.18s}.ccp-fishing-bobber.is-biting{transform:translateY(25px) rotate(10deg)}.ccp-fishing-bobber.is-hooked{animation:ccpBobberFight .5s ease-in-out infinite alternate}.ccp-fishing-fish{position:absolute;left:38%;top:67%;width:115px;height:30px;border-radius:55% 45% 45% 55%;background:rgba(1,34,51,.48);filter:blur(1px);opacity:0}.ccp-fishing-fish:after{content:"";position:absolute;right:-24px;top:4px;border-left:30px solid rgba(1,34,51,.48);border-top:11px solid transparent;border-bottom:11px solid transparent}.ccp-fishing-fish.is-swimming{opacity:1;animation:ccpFishApproach 3s ease-in-out forwards}.ccp-fishing-fish.is-fighting{opacity:1;animation:none}.ccp-fishing-fight{padding:.9rem 0;text-align:center;color:#432b13}.ccp-fishing-meter{position:relative;height:22px;border-radius:999px;background:linear-gradient(90deg,#b64038 0 28%,#5fa65c 28% 76%,#b64038 76%);border:2px solid #62411f;overflow:visible}.ccp-tension-needle{position:absolute;top:-6px;width:6px;height:34px;border-radius:4px;background:#111;transform:translateX(-50%);left:45%}.ccp-catch-progress{height:12px;border-radius:999px;background:#d7c39a;margin:.7rem 0;overflow:hidden}.ccp-catch-progress span{display:block;height:100%;width:0;background:#257795;transition:width .08s linear}.ccp-fishing-actions{display:flex;gap:.8rem;justify-content:center}.ccp-fishing-actions button{border:0;border-radius:999px;background:#124b68;color:#fff;padding:.82rem 1.25rem;font-weight:900;cursor:pointer}.ccp-fishing-actions button:disabled{opacity:.45}.ccp-fishing-actions [data-fishing-reel].is-active{transform:translateY(2px);background:#8b5522}.ccp-beach-toast{position:fixed;left:50%;bottom:2rem;transform:translateX(-50%);z-index:100001;background:#fff0c3;border:2px solid #bd8730;border-radius:14px;padding:1rem 1.3rem;color:#38230e;font-weight:800;box-shadow:0 15px 45px rgba(0,0,0,.38)}
@keyframes ccpBeachRain{to{background-position:0 48px}}@keyframes ccpBeachFog{50%{opacity:.65;transform:translateX(2%)}}@keyframes ccpBeachLightning{0%,92%,100%{opacity:.25}93%,95%{opacity:.8;background:#dceeff}}@keyframes ccpBeachWave{50%{transform:translateX(4%) translateY(8px)}}@keyframes ccpFishApproach{0%{left:5%;opacity:0}25%{opacity:1}100%{left:46%;opacity:1}}@keyframes ccpBobberFight{to{transform:translate(8px,8px) rotate(8deg)}}
@media(max-width:760px){.ccp-beach-heading{align-items:start;flex-direction:column}.ccp-tide-badge{width:100%}.ccp-beach-stage{aspect-ratio:4/3}.ccp-beach-panel>img{object-fit:cover}.ccp-beach-travel,.ccp-fishing-start{font-size:.78rem;padding:.55rem .7rem}.ccp-beach-caption{align-items:flex-start;flex-direction:column}.ccp-fishing-water{height:320px}}
@media(prefers-reduced-motion:reduce){.ccp-beach-panel,.ccp-beach-weather-layer,.ccp-fishing-water:before,.ccp-fishing-water:after,.ccp-fishing-bobber,.ccp-fishing-fish{animation:none!important;transition:none!important}}
