
/* Nexlycart Islands 2.0 — living island world */
 
/* ---------- Theme chrome (hide DHA chrome on this page) ---------- */
body.dha-islands-page { background:#07162d !important; color:#f5f9ff; }
body.dha-islands-page .dha-page-wrap,
body.dha-islands-page .dha-page,
body.dha-islands-page .dha-page .post-content { margin:0 !important; padding:0 !important; width:100% !important; max-width:none !important; border:0 !important; border-radius:0 !important; background:transparent !important; box-shadow:none !important; }
body.dha-islands-page .dha-page > h1 { display:none !important; }
body.dha-islands-page .dha-header,
body.dha-islands-page .dha-sidebar,
body.dha-islands-page .dha-bottom-nav,
body.dha-islands-page .dha-footer,
body.dha-islands-page #dha-ai-modal { display:none !important; }
body.dha-islands-page .dha-shell { display:block !important; width:100% !important; max-width:none !important; margin:0 !important; padding:0 !important; }
body.dha-islands-page .dha-main { display:block !important; width:100% !important; min-width:0 !important; max-width:none !important; margin:0 !important; padding:0 !important; overflow:visible !important; }
body.dha-islands-page .dha-main > * { max-width:none; }
 
/* ---------- Base ---------- */
body.dha-islands-page .nci-world { margin:0; width:100%; min-height:100vh; overflow:hidden; background:#f4f8ff; color:#10213e; font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
body.dha-islands-page .nci-world * { box-sizing:border-box; }
.nci-world [hidden] { display:none !important; }
.nci-world .screen-reader-text { position:absolute !important; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
.nci-world a:focus-visible, .nci-world button:focus-visible { outline:3px solid #8fe6ff; outline-offset:3px; }
 
/* ---------- Header ---------- */
.nci-header { position:relative; z-index:6; min-height:76px; padding:12px clamp(18px,3vw,46px); display:flex; align-items:center; gap:clamp(12px,2vw,28px); background:#071b39; border-bottom:1px solid #1b4775; box-shadow:0 8px 24px #001a3826; }
.nci-brand { display:flex; flex-direction:column; flex:0 0 210px; color:#fff; text-decoration:none; }
.nci-brand img { display:block; width:190px; max-height:44px; object-fit:contain; object-position:left center; }
.nci-brand span { font-size:10px; color:#a9c4e9; letter-spacing:.09em; padding-left:4px; }
.nci-brand i { color:#35c5ff; font-style:normal; padding:0 3px; }
.nci-search { display:flex; align-items:center; gap:6px; flex:1; max-width:720px; margin:0 auto; padding:5px; background:#fff; border:1px solid #d6e7fa; border-radius:999px; box-shadow:0 8px 28px #00112c40; }
.nci-search input { width:100%; min-width:0; height:42px; padding:0 17px; border:0; outline:0; background:transparent; color:#142748; font-family:inherit; font-size:14px; font-weight:500; }
.nci-search input::placeholder { color:#7788a3; }
.nci-search button { flex:0 0 42px; height:42px; border:0; border-radius:50%; background:#0879ee; color:#fff; font-size:28px; line-height:1; cursor:pointer; transition:transform .2s,background .2s; }
.nci-search button:hover { background:#005fc8; transform:scale(1.04); }
.nci-actions { display:flex; align-items:center; justify-content:flex-end; gap:16px; flex:0 0 auto; }
.nci-actions a { color:#dceaff; font-size:13px; text-decoration:none; font-weight:700; white-space:nowrap; }
.nci-actions a:hover { color:#58d7ff; }
.nci-actions .nci-ai-jump { padding:11px 15px; background:#eaf6ff; color:#10294d; border-radius:999px; }
.nci-actions .nci-menu-jump { font-size:23px; }
.nci-time-toggle { width:38px; height:38px; border-radius:50%; border:1px solid #ffffff40; background:#ffffff14; color:#fff; font-size:17px; line-height:1; cursor:pointer; transition:background .2s,transform .2s; }
.nci-time-toggle:hover { background:#ffffff2e; transform:rotate(-12deg); }
.nci-search-mobile { display:none; }
 
/* ---------- Hero ---------- */
.nci-hero { padding:26px clamp(14px,2.2vw,34px) 6px; background:linear-gradient(180deg,#071b39 0,#0a2c53 100%); }
.nci-hero-copy { display:grid; grid-template-columns:minmax(280px,.92fr) minmax(260px,1fr); column-gap:28px; align-items:center; padding:2px clamp(4px,1.5vw,20px) 0; }
.nci-eyebrow,.nci-section-kicker,.nci-kicker { display:inline-flex; align-items:center; gap:8px; color:#8ce7ff; font-size:10px; font-weight:800; letter-spacing:.15em; text-transform:uppercase; }
.nci-eyebrow { grid-column:1/-1; margin-bottom:6px; }
.nci-live-dot,.nci-pulse { width:7px; height:7px; border-radius:50%; display:inline-block; background:#44e8c2; box-shadow:0 0 0 5px #44e8c21a,0 0 15px #44e8c2; }
.nci-hero h1 { grid-column:1; grid-row:2/span 2; margin:0; color:#fff; font-size:clamp(26px,3vw,42px); line-height:1.04; letter-spacing:-.045em; font-weight:850; }
.nci-hero h1 em { color:#55d7ff; font-style:normal; text-shadow:0 5px 30px #29a8ff40; }
.nci-hero-copy > p { grid-column:2; grid-row:2; max-width:580px; margin:0; color:#bbd0ec; font-size:clamp(13px,1.2vw,16px); line-height:1.65; }
.nci-hero-links { grid-column:2; grid-row:3; display:flex; align-items:center; flex-wrap:wrap; gap:20px; margin-top:12px; }
.nci-primary-btn { display:inline-flex; align-items:center; justify-content:center; gap:14px; min-height:45px; padding:0 18px; border:1px solid #38baff; border-radius:14px; background:linear-gradient(135deg,#0788f9,#20b7f0); color:#fff !important; text-decoration:none !important; font:inherit; font-size:13px; font-weight:800; box-shadow:0 10px 25px #008bff38; cursor:pointer; transition:transform .2s,box-shadow .2s; }
.nci-primary-btn:hover { transform:translateY(-2px); box-shadow:0 14px 30px #008bff50; }
.nci-primary-btn span { font-size:19px; }
.nci-text-btn { background:none; border:0; padding:0; font:inherit; color:#d9eaff !important; text-decoration:none !important; font-size:13px; font-weight:750; cursor:pointer; }
.nci-text-btn span { color:#4fd7ff; padding-left:5px; }
.nci-resume { grid-column:1/-1; justify-self:start; display:inline-flex; align-items:center; gap:10px; margin-top:16px; padding:10px 15px; border-radius:14px; background:#ffffff14; border:1px solid #a0d2ff48; color:#e6f4ff !important; text-decoration:none !important; font-size:13px; font-weight:700; transition:background .2s,transform .2s; }
.nci-resume:hover { background:#ffffff24; transform:translateY(-1px); }
.nci-resume-icon { font-size:16px; }
 
/* ---------- Stage / map ---------- */
.nci-stage { padding:14px clamp(14px,2.2vw,34px) 26px; background:#0a2c53; }
.nci-map { position:relative; width:100%; border:1px solid #5bb5f5; border-radius:24px; overflow:hidden; background:#087db9; box-shadow:0 22px 54px #00172f4d,inset 0 0 0 1px #ffffff24; isolation:isolate; }
.nci-viewport { overflow-x:auto; overflow-y:hidden; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
.nci-viewport::-webkit-scrollbar { display:none; }
.nci-scene { position:relative; width:100%; aspect-ratio:1672/941; overflow:hidden; --px:0; --py:0; }
.nci-art { position:absolute; inset:0; width:100%; height:100%; display:block; user-select:none; -webkit-user-drag:none; }
 
/* ambient life */
.nci-ambient { position:absolute; inset:0; z-index:2; pointer-events:none; overflow:hidden; }
.nci-sunglint { position:absolute; right:1%; top:-6%; width:24%; aspect-ratio:1; border-radius:50%; background:radial-gradient(circle,#fff4c88c,#ffe6a02e 40%,transparent 68%); mix-blend-mode:screen; animation:nci-glow 6s ease-in-out infinite; }
.nci-cloudlet { position:absolute; top:var(--t); left:-30%; width:var(--w); height:calc(var(--w) * .26); border-radius:50%; background:radial-gradient(ellipse at 50% 55%,#ffffffbf 0,#ffffff59 46%,transparent 72%); filter:blur(6px); transform:translate(calc(var(--px) * -14px),calc(var(--py) * -6px)); animation:nci-drift var(--d) linear infinite; animation-delay:var(--dl); }
.nci-cl-1 { --t:3%; --w:22%; --d:95s; --dl:-30s; }
.nci-cl-2 { --t:10%; --w:16%; --d:120s; --dl:-85s; opacity:.8; }
.nci-cl-3 { --t:1%; --w:26%; --d:150s; --dl:-5s; opacity:.7; }
.nci-gull { position:absolute; top:var(--t); left:-6%; width:2.3%; opacity:.92; filter:drop-shadow(0 2px 2px #00305a40); animation:nci-fly var(--d) linear infinite,nci-flap .9s ease-in-out infinite alternate; animation-delay:var(--dl),0s; transform-origin:50% 70%; }
.nci-g-1 { --t:9%;  --d:34s; --dl:-4s; }
.nci-g-2 { --t:14%; --d:46s; --dl:-22s; width:1.8%; }
.nci-g-3 { --t:6%;  --d:58s; --dl:-40s; width:1.5%; }
.nci-sparks { position:absolute; inset:0; }
.nci-spark { position:absolute; left:var(--x); top:var(--y); width:5px; height:5px; border-radius:50%; background:#fff; box-shadow:0 0 8px 2px #b4f0ffe6; opacity:0; animation:nci-twinkle var(--d) ease-in-out infinite; animation-delay:var(--dl); }
@keyframes nci-drift { from { left:-30%; } to { left:112%; } }
@keyframes nci-fly { from { left:-6%; } to { left:106%; } }
@keyframes nci-flap { from { transform:scaleY(1); } to { transform:scaleY(.45); } }
@keyframes nci-twinkle { 0%,100% { opacity:0; transform:scale(.4); } 50% { opacity:1; transform:scale(1); } }
@keyframes nci-glow { 0%,100% { opacity:.75; transform:scale(1); } 50% { opacity:1; transform:scale(1.08); } }
 
/* time of day */
.nci-night { position:absolute; inset:0; z-index:3; pointer-events:none; opacity:0; transition:opacity .9s ease,background .9s ease; mix-blend-mode:multiply; background:linear-gradient(180deg,#5a68c8 0%,#7d9be0 55%,#8fb2ee 100%); }
.nci-world[data-time="night"] .nci-night { opacity:.62; }
.nci-world[data-time="dusk"] .nci-night { opacity:.4; background:linear-gradient(180deg,#ffb06b 0%,#ff9a9a 48%,#c996dc 100%); }
.nci-world[data-time="dawn"] .nci-night { opacity:.3; background:linear-gradient(180deg,#ffd9c4 0%,#fbe1ff 60%,#d6ecff 100%); }
.nci-stars { position:absolute; left:0; right:0; top:0; height:24%; z-index:4; pointer-events:none; opacity:0; transition:opacity .9s ease; }
.nci-world[data-time="night"] .nci-stars { opacity:1; }
.nci-star { position:absolute; left:var(--x); top:var(--y); width:3px; height:3px; border-radius:50%; background:#fff; box-shadow:0 0 6px 1px #ffffffcc; animation:nci-twinkle var(--d) ease-in-out infinite; animation-delay:var(--dl); }
 
/* islands (real links) */
.nci-island { position:absolute; left:var(--x); top:var(--y); z-index:5; display:block; transform:translate(-50%,-50%); color:#fff; text-decoration:none; -webkit-tap-highlight-color:transparent; transition:transform .25s cubic-bezier(.2,.8,.2,1); }
.nci-island:hover,.nci-island:focus-visible { transform:translate(-50%,-54%); }
.nci-island::before { content:""; position:absolute; left:50%; top:50%; width:190%; height:270%; border-radius:50%; border:2px solid #82e6ffe6; opacity:0; transform:translate(-50%,-50%) scale(.5); pointer-events:none; }
.nci-island:hover::before,.nci-island:focus-visible::before,.nci-island.is-selected::before { animation:nci-ring 1.9s ease-out infinite; }
.nci-island::after { content:""; position:absolute; left:50%; top:50%; width:250%; height:430%; transform:translate(-50%,-55%); background:radial-gradient(ellipse,#ffd678a6 0,#ffbe5a38 36%,transparent 66%); opacity:0; mix-blend-mode:screen; pointer-events:none; z-index:-1; transition:opacity .9s ease; }
.nci-world[data-time="night"] .nci-island::after { opacity:1; }
.nci-world[data-time="dusk"] .nci-island::after { opacity:.45; }
@keyframes nci-ring { 0% { opacity:.95; transform:translate(-50%,-50%) scale(.55); } 100% { opacity:0; transform:translate(-50%,-50%) scale(1.15); } }
.nci-island-label { position:relative; display:flex; align-items:center; gap:8px; padding:6px 13px 6px 6px; border:1px solid #c7e7ffb8; border-radius:999px; background:linear-gradient(135deg,#071a36eb,#0a3762e0); color:#fff; font-size:clamp(11px,1.02vw,14px); font-weight:800; line-height:1.15; white-space:nowrap; box-shadow:0 8px 22px #00152e7a; backdrop-filter:blur(8px); transition:background .2s,border-color .2s,box-shadow .2s; }
.nci-island-emoji { display:grid; place-items:center; width:2.15em; height:2.15em; border-radius:50%; background:linear-gradient(145deg,#fff,#d7edff); font-size:1.15em; box-shadow:inset 0 -2px 0 #9cc7ee; }
.nci-island-text small { display:block; max-height:0; overflow:hidden; opacity:0; margin-top:0; color:#c0ddf5; font-size:.72em; font-weight:500; transition:max-height .25s,opacity .25s,margin .25s; }
.nci-island:hover .nci-island-text small,.nci-island:focus-visible .nci-island-text small,.nci-island.is-selected .nci-island-text small { max-height:1.6em; opacity:1; margin-top:2px; }
.nci-island:hover .nci-island-label,.nci-island:focus-visible .nci-island-label,.nci-island.is-selected .nci-island-label { border-color:#fff; background:linear-gradient(135deg,#078df0f5,#075eb7f5); box-shadow:0 10px 28px #00152e9e,0 0 0 3px #a7e8ff5c; }
.nci-island.is-visited .nci-island-label::after { content:"✓"; position:absolute; top:-7px; right:-3px; display:grid; place-items:center; width:19px; height:19px; border-radius:50%; background:#2fd6a1; color:#04342a; font-size:11px; font-weight:900; box-shadow:0 2px 6px #00152e66; }
 
/* daily treasure bottle */
.nci-bottle { position:absolute; left:var(--x); top:var(--y); z-index:5; display:flex; flex-direction:column; align-items:center; gap:4px; transform:translate(-50%,-50%); padding:4px; border:0; background:none; cursor:pointer; -webkit-tap-highlight-color:transparent; }
.nci-bottle-glass { display:grid; place-items:center; width:clamp(34px,3.2vw,46px); height:clamp(34px,3.2vw,46px); border-radius:50% 50% 50% 50%/62% 62% 38% 38%; background:#ffffff4d; border:2px solid #ffffffd9; backdrop-filter:blur(3px); box-shadow:0 8px 16px #001e4659,inset 0 0 14px #ffffff8c; font-size:clamp(15px,1.5vw,21px); transform:rotate(-24deg); animation:nci-bottle 3.4s ease-in-out infinite; }
.nci-bottle::before { content:""; position:absolute; left:50%; top:38%; width:150%; height:90%; border-radius:50%; border:2px solid #ffe6a0; opacity:0; transform:translate(-50%,-50%) scale(.5); animation:nci-ring 2.6s ease-out infinite; pointer-events:none; }
.nci-bottle-tag { padding:3px 8px; border-radius:999px; background:#071a36e6; border:1px solid #ffe6a0b0; color:#ffeebb; font-size:10px; font-weight:800; letter-spacing:.04em; white-space:nowrap; }
.nci-bottle:hover .nci-bottle-glass { background:#fff9; }
@keyframes nci-bottle { 0%,100% { transform:translateY(0) rotate(-24deg); } 50% { transform:translateY(-5px) rotate(-14deg); } }
 
/* Nexly's boat */
.nci-boat { position:absolute; left:13.55%; top:74.87%; width:calc(19.56% * var(--bs,1)); z-index:8; transform:translate(-50%,-50%); padding:0; border:0; background:none; cursor:pointer; touch-action:manipulation; -webkit-tap-highlight-color:transparent; }
.nci-boat::before { content:""; position:absolute; left:6%; right:6%; bottom:3%; height:16%; border-radius:50%; background:radial-gradient(ellipse,#ffffffc7,#ffffff00 70%); filter:blur(2px); opacity:.5; transition:opacity .3s,transform .3s; }
.nci-boat.is-sailing::before { opacity:.95; transform:scaleX(1.35); }
.nci-boat-flip { position:relative; display:block; transform:scaleX(var(--flip,1)) rotate(var(--tilt,0deg)); transition:transform .28s ease; }
.nci-boat-flip::after { content:""; position:absolute; right:-14%; top:52%; width:42%; height:44%; background:radial-gradient(ellipse at 18% 50%,#fff1b4eb,#ffe08a00 72%); opacity:0; transition:opacity .9s; pointer-events:none; }
.nci-world[data-time="night"] .nci-boat-flip::after { opacity:.9; }
.nci-boat-img { display:block; width:100%; height:auto; filter:drop-shadow(0 8px 6px #00193a59); animation:nci-bob 3.4s ease-in-out infinite; transform-origin:50% 85%; }
.nci-world[data-time="night"] .nci-boat-img { filter:drop-shadow(0 8px 6px #00193a59) brightness(.84); }
.nci-boat.is-hop .nci-boat-flip { animation:nci-hop .55s ease-out; }
@keyframes nci-bob { 0%,100% { transform:translateY(0) rotate(-1deg); } 50% { transform:translateY(-3%) rotate(1.2deg); } }
@keyframes nci-hop { 0% { transform:scaleX(var(--flip,1)) translateY(0); } 40% { transform:scaleX(var(--flip,1)) translateY(-14%) rotate(-4deg); } 100% { transform:scaleX(var(--flip,1)) translateY(0); } }
.nci-foam { position:absolute; z-index:7; width:2.1%; aspect-ratio:1; border-radius:50%; background:radial-gradient(circle,#fff 0,#ffffffb3 40%,transparent 72%); transform:translate(-50%,-50%); pointer-events:none; animation:nci-foam 1.1s ease-out forwards; }
@keyframes nci-foam { from { opacity:.95; transform:translate(-50%,-50%) scale(.6); } to { opacity:0; transform:translate(-50%,-50%) scale(2.1); } }
 
/* Nexly speech bubble */
.nci-say { position:absolute; bottom:calc(100% - 4%); left:50%; width:max-content; max-width:min(230px,60vw); padding:10px 13px; border:1px solid #b8eaff; border-radius:14px; background:#061a36f2; color:#e5f5ff; font-size:12px; font-weight:600; line-height:1.45; text-align:left; box-shadow:0 8px 26px #00142d66; opacity:0; transform:translate(calc(-50% + var(--sx,0px)),6px); transition:opacity .25s,transform .25s; pointer-events:none; }
.nci-say::after { content:""; position:absolute; left:calc(50% - var(--sx,0px)); bottom:-7px; width:12px; height:12px; margin-left:-6px; background:#061a36; border-right:1px solid #b8eaff; border-bottom:1px solid #b8eaff; transform:rotate(45deg); }
.nci-say.is-on { opacity:1; transform:translate(calc(-50% + var(--sx,0px)),0); }
.nci-say b { color:#fff; }
 
/* caption + hint */
.nci-map-caption { position:absolute; right:14px; bottom:12px; z-index:9; display:flex; align-items:center; gap:8px; padding:9px 13px; border:1px solid #d1ecff8a; border-radius:999px; background:#071b39df; color:#d5eaff; font-size:11px; font-weight:700; max-width:70%; }
.nci-map-caption #nci-caption { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.nci-swipe-hint { position:absolute; left:50%; top:62px; z-index:9; transform:translateX(-50%); padding:7px 13px; border-radius:999px; background:#071b39e6; border:1px solid #d1ecff8a; color:#fff; font-size:11px; font-weight:800; animation:nci-nudge 1.6s ease-in-out infinite; pointer-events:none; }
@keyframes nci-nudge { 0%,100% { transform:translateX(-50%); } 50% { transform:translateX(calc(-50% + 6px)); } }
 
/* ---------- Passport ---------- */
.nci-passport { display:flex; align-items:center; flex-wrap:wrap; gap:14px 20px; margin-top:14px; padding:12px 16px; border:1px solid #1f5a96; border-radius:16px; background:#0b2a50; color:#dff1ff; transition:border-color .4s,box-shadow .4s; }
.nci-passport-head { display:flex; align-items:center; gap:10px; font-size:13px; }
.nci-passport-head span { padding:3px 9px; border-radius:999px; background:#ffffff1f; font-size:11px; font-weight:800; }
.nci-stamps { display:flex; flex-wrap:wrap; gap:8px; }
.nci-stamp { width:40px; height:40px; border-radius:50%; border:2px dashed #a0d2ff73; background:#ffffff0d; filter:grayscale(1); opacity:.55; font-size:19px; line-height:1; cursor:pointer; transition:transform .2s,filter .3s,opacity .3s; }
.nci-stamp:hover { transform:scale(1.1); }
.nci-stamp.is-stamped { filter:none; opacity:1; border:2px solid #ffd66b; background:#ffd66b2e; box-shadow:0 0 0 3px #ffd66b26; }
.nci-passport-msg { flex:1 1 220px; margin:0; color:#a9c9ec; font-size:12px; line-height:1.5; }
.nci-passport.is-complete { border-color:#ffd66b; box-shadow:0 0 34px #ffd66b52; }
.nci-passport.is-complete .nci-passport-msg { color:#ffe9a8; font-weight:700; }
 
/* ---------- Harbor panel ---------- */
.nci-harbor { padding:22px clamp(18px,3vw,46px) 26px; background:#fff; color:#102748; border-bottom:1px solid #dbe8f6; box-shadow:0 8px 24px #12365d0d; animation:nci-slide .35s ease-out; }
@keyframes nci-slide { from { opacity:0; transform:translateY(-10px); } to { opacity:1; transform:none; } }
.nci-harbor-top { display:flex; align-items:center; gap:16px; }
.nci-harbor-icon { display:grid; place-items:center; width:60px; height:60px; flex:0 0 60px; border-radius:18px; background:#e4f5ff; font-size:31px; }
.nci-harbor-copy { flex:1; min-width:0; }
.nci-harbor-copy .nci-kicker { color:#1682c8; font-size:9px; }
.nci-harbor-copy h2 { margin:4px 0; font-size:24px; color:#102748; letter-spacing:-.03em; }
.nci-harbor-copy p { margin:0; color:#61758f; font-size:13px; }
.nci-harbor-close { border:0; background:transparent; color:#6b7f96; font-size:28px; cursor:pointer; line-height:1; }
.nci-harbor-label { margin:18px 0 10px; color:#5d7391; font-size:12px; font-weight:700; }
.nci-chips { display:flex; flex-wrap:wrap; gap:10px; }
.nci-chip { padding:11px 16px; border:1px solid #bfdcf7; border-radius:999px; background:#f2f9ff; color:#0f4f8f; font:inherit; font-size:13px; font-weight:800; cursor:pointer; transition:transform .18s,background .18s,box-shadow .18s,border-color .18s; }
.nci-chip:hover { transform:translateY(-2px); background:#e2f3ff; border-color:#6cc0f5; box-shadow:0 8px 18px #1a6fb826; }
.nci-chip.is-surprise { background:linear-gradient(135deg,#0788f9,#20b7f0); border-color:#20b7f0; color:#fff; }
.nci-harbor-actions { display:flex; align-items:center; flex-wrap:wrap; gap:18px; margin-top:20px; }
.nci-harbor .nci-text-btn { color:#1468b2 !important; }
 
/* ---------- Popular / AI / footer ---------- */
.nci-popular { display:grid; grid-template-columns:1.1fr 1fr 1fr 1fr; gap:16px; align-items:center; padding:38px clamp(18px,3vw,46px); background:#f5faff; color:#102748; }
.nci-popular h2 { margin:7px 0 5px; color:#102748; font-size:22px; letter-spacing:-.03em; }
.nci-popular p { margin:0; color:#71849d; font-size:12px; line-height:1.6; }
.nci-popular .nci-section-kicker,.nci-ai-heading .nci-section-kicker { color:#1384ca; }
.nci-feature-card { display:flex; align-items:center; gap:12px; min-height:83px; padding:15px; border:1px solid #dfebf8; border-radius:17px; background:#fff; color:#102748; text-decoration:none !important; text-align:left; font:inherit; box-shadow:0 8px 24px #143b6410; cursor:pointer; transition:transform .2s,border-color .2s; }
.nci-feature-card:hover { transform:translateY(-3px); border-color:#8bcfff; }
.nci-feature-icon { display:flex; align-items:center; justify-content:center; flex:0 0 43px; width:43px; height:43px; border-radius:13px; background:#e3f4ff; color:#087bcb; font-size:23px; }
.nci-feature-card b,.nci-feature-card small { display:block; }
.nci-feature-card b { margin-bottom:5px; font-size:13px; }
.nci-feature-card small { color:#74869c; font-size:10px; line-height:1.4; }
.nci-feature-arrow { margin-left:auto; color:#1688d7; font-size:20px; }
.nci-ai-section { padding:48px clamp(18px,3vw,46px) 52px; background:#fff; color:#102748; }
.nci-ai-heading { max-width:700px; margin:0 auto 25px; text-align:center; }
.nci-ai-heading h2 { margin:9px 0 8px; color:#102748; font-size:clamp(23px,2.5vw,34px); letter-spacing:-.04em; }
.nci-ai-heading p { margin:0; color:#6a7d94; font-size:13px; line-height:1.7; }
.nci-ai-mount-wrap { max-width:980px; margin:0 auto; }
.nci-ai-card { border:1px solid #dce9f8; border-radius:22px; padding:14px; background:#f7fbff; box-shadow:0 18px 45px #12385c0e; }
.nci-ai-card .dha-ai-widget { margin:0 !important; }
.nci-ai-card .dha-chat-home { border-radius:16px; }
.nci-footer { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:22px clamp(18px,3vw,46px); background:#07162d; color:#92accb; font-size:10px; }
.nci-footer a { color:#bfe8ff; text-decoration:none; font-weight:700; }
.nci-footer a:hover { color:#fff; }
 
/* ---------- Message in a bottle ---------- */
.nci-note { position:fixed; inset:0; z-index:99999; display:grid; place-items:center; padding:18px; background:#030c20a8; backdrop-filter:blur(4px); animation:nci-fade .25s ease-out; }
@keyframes nci-fade { from { opacity:0; } to { opacity:1; } }
.nci-note-card { position:relative; width:min(440px,100%); padding:34px 28px 26px; border:2px solid #e2c27a; border-radius:20px; background:linear-gradient(160deg,#fff8e2,#ffe9b9); color:#4a3210; text-align:center; box-shadow:0 30px 70px #00000066; animation:nci-pop .35s cubic-bezier(.2,1.2,.3,1); }
@keyframes nci-pop { from { opacity:0; transform:scale(.88) rotate(-2deg); } to { opacity:1; transform:none; } }
.nci-note-seal { position:absolute; left:50%; top:-26px; display:grid; place-items:center; width:52px; height:52px; margin-left:-26px; border-radius:50%; background:#fff; border:2px solid #e2c27a; font-size:26px; box-shadow:0 6px 16px #0003; }
.nci-note-card .nci-kicker { color:#a2701a; }
.nci-note-card h3 { margin:8px 0 6px; font-size:22px; color:#3a2608; }
.nci-note-card p { margin:0 0 20px; font-size:15px; line-height:1.6; color:#5a4220; }
.nci-note-actions { display:flex; flex-direction:column; align-items:center; gap:12px; }
.nci-note-close { color:#8a6a35 !important; }
 
/* confetti */
.nci-confetti { position:absolute; inset:0; z-index:12; width:100%; height:100%; pointer-events:none; }
 
/* ---------- Responsive ---------- */
@media (max-width:1100px) {
  .nci-brand { flex-basis:170px; }.nci-brand img { width:160px; }
  .nci-actions { gap:11px; }.nci-actions > a:not(.nci-ai-jump):not(.nci-menu-jump) { display:none; }
  .nci-popular { grid-template-columns:1fr 1fr; }.nci-popular > div { grid-column:1/-1; }
}
@media (max-width:760px) {
  .nci-header { min-height:0; padding:10px 12px; gap:10px; flex-wrap:wrap; }
  .nci-brand { flex:1 1 auto; min-width:130px; }.nci-brand img { width:135px; max-height:35px; }.nci-brand span { font-size:8px; }
  .nci-header > .nci-search { display:none; }
  .nci-actions .nci-ai-jump { padding:9px 11px; font-size:11px; }
  .nci-hero { padding:18px 10px 4px; }
  .nci-hero-copy { display:flex; flex-direction:column; align-items:flex-start; gap:10px; padding:0 4px; }
  .nci-hero h1 { font-size:27px; }
  .nci-hero-copy > p { font-size:13px; }
  .nci-search-mobile { display:flex; width:100%; max-width:none; margin:4px 0 0; }
  .nci-hero-links { margin-top:2px; gap:14px; }
  .nci-stage { padding:12px 10px 22px; }
  .nci-map { border-radius:16px; }
  .nci-scene { width:190vw; }
  .nci-island-label { font-size:12px; padding:5px 11px 5px 5px; }
  .nci-island-text small { display:none; }
  .nci-map-caption { right:8px; bottom:8px; font-size:10px; padding:7px 10px; }
  .nci-say { font-size:11px; max-width:190px; padding:8px 11px; }
  .nci-passport { padding:11px 12px; gap:10px 14px; }
  .nci-stamp { width:38px; height:38px; }
  .nci-harbor { padding:18px 14px 22px; }
  .nci-harbor-icon { width:48px; height:48px; flex-basis:48px; font-size:25px; border-radius:14px; }
  .nci-harbor-copy h2 { font-size:20px; }
  .nci-popular { grid-template-columns:1fr; gap:10px; padding:26px 14px; }.nci-popular > div { grid-column:auto; }
  .nci-ai-section { padding:32px 12px 36px; }
  .nci-ai-card { padding:7px; border-radius:16px; }
  .nci-footer { flex-direction:column; align-items:flex-start; gap:8px; padding:19px 14px; }
}
@media (prefers-reduced-motion:reduce) {
  .nci-world *,.nci-world *:before,.nci-world *:after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
  .nci-cloudlet,.nci-gull,.nci-spark { display:none !important; }
}

/* ===== 2.1 — vivid 3D depth ===== */
/* richer colour grading on the artwork */
.nci-art { filter:saturate(1.16) contrast(1.07) brightness(1.02); transition:translate .25s ease-out; }
/* cinematic light: warm sun from top-right + soft vignette for depth */
.nci-scene::before { content:""; position:absolute; inset:0; z-index:3; pointer-events:none;
  background:radial-gradient(ellipse 60% 50% at 88% -8%,#fff3c866 0,transparent 62%),
             radial-gradient(ellipse 120% 90% at 50% 50%,transparent 62%,#02173a47 100%); }
/* animated light shafts */
.nci-scene::after { content:""; position:absolute; inset:-10% -10% 30% 30%; z-index:3; pointer-events:none; mix-blend-mode:screen; opacity:.5;
  background:repeating-linear-gradient(112deg,transparent 0 70px,#ffffff1c 78px,transparent 120px);
  -webkit-mask-image:linear-gradient(200deg,#000 0,transparent 62%); mask-image:linear-gradient(200deg,#000 0,transparent 62%);
  animation:nci-rays 14s ease-in-out infinite alternate; }
@keyframes nci-rays { from { transform:translateX(-3%); opacity:.35; } to { transform:translateX(3%); opacity:.6; } }

/* glossy 3D island badges */
.nci-island-label { background:linear-gradient(180deg,#1a5fa8f2 0%,#0a3868f5 55%,#06244a 100%); border:1px solid #bfe6ffcc;
  box-shadow:inset 0 1px 0 #ffffff80,inset 0 -3px 0 #03193a99,0 5px 0 #031c3e,0 14px 22px #00122c8c,0 0 0 1px #00122c40; }
.nci-island:hover .nci-island-label,.nci-island:focus-visible .nci-island-label,.nci-island.is-selected .nci-island-label {
  background:linear-gradient(180deg,#34b4ff 0%,#0a82e6 55%,#065bb0 100%);
  box-shadow:inset 0 1px 0 #fffc,inset 0 -3px 0 #04418a,0 5px 0 #043a78,0 18px 28px #00122ca6,0 0 0 4px #a7e8ff66,0 0 34px #58d7ff80; }
.nci-island::after { /* sun-lit glow bubble under each island, brighter than before */
  opacity:.0; }
.nci-island-emoji { box-shadow:inset 0 -3px 0 #8dbbe6,0 3px 6px #00224a66; }
.nci-bottle-glass { box-shadow:0 10px 18px #001e4666,inset 0 0 14px #ffffffb3,inset 0 -6px 10px #7fd0ff80; }
.nci-boat-img { filter:drop-shadow(0 10px 7px #00193a73) saturate(1.1); }

/* parallax layers (desktop with mouse): art far, markers near */
@media (hover:hover) {
  .nci-art { scale:1.05; translate:calc(var(--px) * -12px) calc(var(--py) * -7px); }
  .nci-island,.nci-bottle { translate:calc(var(--px) * 9px) calc(var(--py) * 5px); }
  .nci-boat { translate:calc(var(--px) * 11px) calc(var(--py) * 6px); }
  .nci-scene { perspective:1600px; }
}
@media (prefers-reduced-motion:reduce) { .nci-scene::after { animation:none !important; } .nci-art { scale:1 !important; translate:none !important; } }


/* ===== 3.0 — game layer ===== */
.nci-hud { position:absolute; left:12px; top:12px; z-index:10; display:flex; align-items:center; gap:10px; padding:6px 14px 6px 6px; border:1px solid #cfeaffcc; border-radius:999px;
  background:linear-gradient(180deg,#1a5fa8f2,#06244af5); color:#fff; box-shadow:inset 0 1px 0 #ffffff80,0 4px 0 #031c3e,0 12px 22px #00122c80; }
.nci-hud-level { display:grid; place-items:center; width:42px; height:42px; border-radius:50%; background:radial-gradient(circle at 35% 28%,#fff6b8,#ffcf3a 45%,#e08e00); color:#4a2a00; font-size:19px; box-shadow:inset 0 -3px 0 #b86e00,0 2px 6px #00122c80; }
.nci-hud-main { display:flex; flex-direction:column; gap:5px; min-width:92px; }
.nci-hud-title { font-size:11px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:#d7efff; }
.nci-xpbar { display:block; height:8px; border-radius:99px; background:#021a3c; box-shadow:inset 0 1px 3px #000a; overflow:hidden; }
.nci-xpbar i { display:block; height:100%; width:0; border-radius:99px; background:linear-gradient(180deg,#7dffd0,#17c98f); box-shadow:0 0 10px #44e8c2; transition:width .5s cubic-bezier(.2,.8,.2,1); }
.nci-hud-coins { display:flex; align-items:center; gap:6px; padding-left:8px; border-left:1px solid #ffffff33; font-size:15px; font-weight:900; }
.nci-hud-coins.is-bump { animation:nci-bump .4s ease-out; }
@keyframes nci-bump { 0% { transform:scale(1); } 40% { transform:scale(1.28); } 100% { transform:scale(1); } }
.nci-coin-ico { display:block; width:18px; height:18px; border-radius:50%; background:radial-gradient(circle at 35% 30%,#fff6b8,#ffd23f 40%,#e08e00); box-shadow:inset 0 0 0 2px #ffe58a,inset 0 0 0 3.5px #d98a00; }
.nci-sound { position:absolute; right:12px; top:12px; z-index:10; display:grid; place-items:center; width:44px; height:44px; border:1px solid #cfeaffcc; border-radius:50%; cursor:pointer; font-size:19px; line-height:1; color:#fff;
  background:linear-gradient(180deg,#1a5fa8f2,#06244af5); box-shadow:inset 0 1px 0 #ffffff80,0 4px 0 #031c3e,0 12px 22px #00122c80; transition:transform .15s; }
.nci-sound:hover { transform:translateY(-2px); } .nci-sound:active { transform:translateY(2px); }
.nci-sound[aria-pressed="true"] { background:linear-gradient(180deg,#34b4ff,#065bb0); }

.nci-levelup { position:absolute; left:50%; top:20%; z-index:14; padding:14px 28px; border:2px solid #fff3b8; border-radius:18px; text-align:center; pointer-events:none; opacity:0;
  background:linear-gradient(180deg,#ffe58a,#ffb21a); color:#4a2a00; font-size:clamp(18px,2.4vw,30px); font-weight:900; box-shadow:0 8px 0 #a65f00,0 24px 40px #00122c80; transform:translate(-50%,-20px) scale(.6); white-space:nowrap; }
.nci-levelup small { display:block; margin-bottom:2px; font-size:.5em; letter-spacing:.22em; }
.nci-levelup.is-on { animation:nci-lvl 2.8s cubic-bezier(.2,1.2,.3,1) forwards; }
@keyframes nci-lvl { 0% { opacity:0; transform:translate(-50%,-20px) scale(.6); } 12% { opacity:1; transform:translate(-50%,0) scale(1.1); } 20% { transform:translate(-50%,0) scale(1); } 85% { opacity:1; transform:translate(-50%,0) scale(1); } 100% { opacity:0; transform:translate(-50%,-14px) scale(1); } }

/* treasure */
.nci-gem { position:absolute; left:var(--x); top:var(--y); z-index:6; width:max(20px,2.3%); aspect-ratio:1; transform:translate(-50%,-50%); pointer-events:none; animation:nci-gem-in .5s cubic-bezier(.2,1.5,.3,1) both; }
.nci-gem i { position:relative; display:block; width:100%; height:100%; animation:nci-gem-float 2.6s ease-in-out infinite; animation-delay:var(--dl,0s); }
.nci-gem::before { content:""; position:absolute; left:50%; top:78%; width:130%; height:46%; transform:translateX(-50%); border-radius:50%; background:radial-gradient(ellipse,#ffffff80,transparent 70%); }
.nci-gem.coin i { border-radius:50%; background:radial-gradient(circle at 35% 30%,#fff6b8 0,#ffd23f 38%,#f0a000 72%,#b86e00); box-shadow:inset 0 0 0 2px #ffe58a,inset 0 0 0 4px #d98a00,0 4px 7px #00224a80,0 0 14px #ffd23f99; }
.nci-gem.pearl i { border-radius:50%; background:radial-gradient(circle at 32% 28%,#fff 0,#ffe8f7 30%,#f2b9e2 65%,#b678c8); box-shadow:0 4px 7px #00224a80,0 0 16px #ff9de2b0; }
.nci-gem.star { width:max(26px,3%); }
.nci-gem.star i { background:linear-gradient(145deg,#fff7a8,#ffc21a 55%,#ff8a00); clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%); filter:drop-shadow(0 0 6px #ffd23f); animation:nci-gem-float 2.6s ease-in-out infinite,nci-spin 3.4s linear infinite; }
.nci-gem.coin i::after,.nci-gem.pearl i::after { content:""; position:absolute; left:22%; top:16%; width:30%; height:22%; border-radius:50%; background:#ffffffd0; transform:rotate(-30deg); }
.nci-gem.is-got { animation:nci-gem-out .38s ease-in forwards; }
@keyframes nci-gem-in { from { opacity:0; transform:translate(-50%,-50%) scale(.2); } to { opacity:1; transform:translate(-50%,-50%) scale(1); } }
@keyframes nci-gem-out { to { opacity:0; transform:translate(-50%,-120%) scale(1.7); } }
@keyframes nci-gem-float { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-22%); } }
@keyframes nci-spin { 0% { rotate:-10deg; } 50% { rotate:10deg; } 100% { rotate:-10deg; } }
.nci-pop { position:absolute; left:var(--x); top:var(--y); z-index:11; transform:translate(-50%,-50%); color:#fff7c2; font-size:clamp(14px,1.5vw,22px); font-weight:900; text-shadow:0 2px 0 #7a4a00,0 0 12px #ffd23f; pointer-events:none; animation:nci-pop 1s ease-out forwards; }
@keyframes nci-pop { from { opacity:1; transform:translate(-50%,-50%) scale(.7); } 30% { transform:translate(-50%,-90%) scale(1.25); } to { opacity:0; transform:translate(-50%,-260%) scale(1); } }
.nci-burst { position:absolute; left:var(--x); top:var(--y); z-index:11; width:7px; height:7px; border-radius:50%; background:#fff3a8; box-shadow:0 0 8px 2px #ffd23f; pointer-events:none; animation:nci-burst .6s ease-out forwards; }
@keyframes nci-burst { from { opacity:1; transform:translate(-50%,-50%); } to { opacity:0; transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(.3); } }

/* life: swaying islands, jumping fish */
.nci-island { animation:nci-sway 6.5s ease-in-out infinite; animation-delay:var(--sd,0s); }
@keyframes nci-sway { 0%,100% { rotate:-.8deg; } 50% { rotate:.8deg; } }
.nci-island.is-near .nci-island-label { border-color:#fff; background:linear-gradient(180deg,#44e8c2,#0aa57f); box-shadow:inset 0 1px 0 #fffc,0 5px 0 #06604c,0 0 0 5px #7dffd055,0 0 36px #44e8c2aa; }
.nci-fish { position:absolute; left:var(--x); top:var(--y); z-index:7; width:max(22px,2.4%); pointer-events:none; scale:var(--dir,1) 1; animation:nci-fish 1.1s cubic-bezier(.3,.6,.5,1) forwards; }
.nci-fish svg { display:block; width:100%; filter:drop-shadow(0 3px 3px #00224a66); }
@keyframes nci-fish { 0% { opacity:0; transform:translate(-50%,-50%) rotate(-55deg); } 12% { opacity:1; } 50% { transform:translate(calc(-50% + var(--fx) * .5),calc(-50% - var(--fy))) rotate(0deg); } 100% { opacity:0; transform:translate(calc(-50% + var(--fx)),-50%) rotate(55deg); } }
.nci-ring { position:absolute; left:var(--x); top:var(--y); z-index:5; width:4%; aspect-ratio:3/1; border:2px solid #ffffffd9; border-radius:50%; transform:translate(-50%,-50%); pointer-events:none; animation:nci-ringout 1.3s ease-out forwards; }
@keyframes nci-ringout { from { opacity:.9; transform:translate(-50%,-50%) scale(.3); } to { opacity:0; transform:translate(-50%,-50%) scale(2.2); } }
.nci-scene { cursor:crosshair; } .nci-island,.nci-bottle,.nci-boat { cursor:pointer; }
.nci-boat:focus-visible { outline:none; filter:drop-shadow(0 0 10px #8fe6ff); }
@media (max-width:760px) {
  .nci-hud { left:8px; top:8px; gap:7px; padding:4px 10px 4px 4px; } .nci-hud-level { width:34px; height:34px; font-size:16px; } .nci-hud-main { min-width:70px; } .nci-hud-title { font-size:9px; } .nci-hud-coins { font-size:13px; padding-left:6px; }
  .nci-sound { right:8px; top:8px; width:38px; height:38px; font-size:16px; } .nci-swipe-hint { top:54px; }
}
@media (prefers-reduced-motion:reduce) { .nci-island { animation:none !important; rotate:none; } .nci-fish,.nci-ring { display:none !important; } }


/* ===== 3.1 — compact shore labels + island view ===== */
.nci-island { top:calc(var(--y) + var(--ly,0%)); }
.nci-island-label { gap:6px; padding:4px 11px 4px 4px; font-size:clamp(10px,.8vw,12.5px); }
.nci-island-emoji { width:1.9em; height:1.9em; font-size:1.05em; }
@media (max-width:760px) { .nci-island-label { font-size:11px; padding:3px 9px 3px 3px; } }

html.nci-lock,html.nci-lock body { overflow:hidden !important; }
.nci-iv { position:fixed; inset:0; z-index:99990; overflow-y:auto; overflow-x:hidden; color:#fff; background:#04122c; -webkit-overflow-scrolling:touch; }
.nci-iv.is-in { animation:nci-fade .35s ease-out; }
.nci-iv-bg { position:fixed; inset:0; overflow:hidden; }
.nci-iv-bg img { display:block; width:100%; height:100%; object-fit:cover; filter:saturate(1.25) brightness(.85) blur(1.5px); }
.nci-iv.is-in .nci-iv-bg img { animation:nci-dive 1.2s cubic-bezier(.2,.7,.2,1) forwards; }
@keyframes nci-dive { from { transform:scale(1); } to { transform:translate(calc(var(--tx,0) * 1%),calc(var(--ty,0) * 1%)) scale(2.2); } }
.nci-iv-shade { position:fixed; inset:0; pointer-events:none; background:linear-gradient(90deg,#04122ce6 0,#04122ca8 36%,#04122c4d 100%),radial-gradient(ellipse at 70% 40%,transparent 0,#04122c80 100%); }
.nci-iv-close { position:fixed; left:clamp(14px,3vw,40px); top:16px; z-index:5; min-height:42px; padding:0 18px; border:1px solid #cfeaffcc; border-radius:999px; cursor:pointer; color:#fff; font:inherit; font-size:13px; font-weight:800;
  background:linear-gradient(180deg,#1a5fa8f2,#06244af5); box-shadow:inset 0 1px 0 #ffffff80,0 4px 0 #031c3e,0 12px 22px #00122c80; transition:transform .15s; }
.nci-iv-close:hover { transform:translateY(-2px); }
.nci-iv-panel { position:relative; z-index:2; min-height:100%; display:grid; grid-template-columns:minmax(300px,.78fr) minmax(0,1.5fr); gap:clamp(16px,2.4vw,34px); max-width:1380px; margin:0 auto; padding:78px clamp(14px,3vw,40px) 36px; }
.nci-iv-side { position:sticky; top:78px; align-self:start; display:flex; flex-direction:column; gap:16px; }
.nci-iv-head { display:flex; align-items:center; gap:14px; }
.nci-iv-emoji { display:grid; place-items:center; flex:0 0 64px; width:64px; height:64px; border-radius:20px; font-size:34px; background:linear-gradient(145deg,#fff,#d7edff); box-shadow:inset 0 -4px 0 #9cc7ee,0 10px 20px #00122c80; }
.nci-iv h2 { margin:4px 0 2px; color:#fff; font-size:clamp(24px,2.6vw,36px); letter-spacing:-.03em; line-height:1.1; }
.nci-iv-head p { margin:0; color:#bcd6f3; font-size:13px; }
.nci-iv-bot { position:relative; display:flex; align-items:flex-end; gap:8px; min-height:210px; }
.nci-iv-bot img { display:block; flex:0 0 auto; width:clamp(110px,11vw,160px); height:auto; filter:drop-shadow(0 14px 14px #00122c99); opacity:0; }
.nci-iv.is-bot .nci-iv-bot img { animation:nci-bot-pop .85s cubic-bezier(.2,1.4,.3,1) forwards,nci-float2 4s ease-in-out .9s infinite; }
@keyframes nci-bot-pop { from { opacity:0; transform:translate(-110px,70px) scale(.4) rotate(-18deg); } 60% { opacity:1; transform:translate(6px,-10px) scale(1.06) rotate(3deg); } to { opacity:1; transform:none; } }
@keyframes nci-float2 { 0%,100% { translate:0 0; } 50% { translate:0 -8px; } }
.nci-iv-say { flex:1; align-self:center; min-height:3.6em; padding:12px 15px; border:1px solid #b8eaff; border-radius:16px 16px 16px 4px; background:#061a36f2; color:#e5f5ff; font-size:14px; font-weight:600; line-height:1.5; box-shadow:0 8px 26px #00142d66; opacity:0; transform:scale(.8); transform-origin:left bottom; transition:opacity .3s .5s,transform .3s .5s; }
.nci-iv.is-bot .nci-iv-say { opacity:1; transform:none; }
.nci-iv-chipslabel { color:#a9cdee; font-size:12px; font-weight:800; letter-spacing:.04em; }
.nci-iv .nci-chips { gap:8px; }
.nci-iv .nci-chip { padding:9px 14px; font-size:12px; }
.nci-iv-links { display:flex; flex-wrap:wrap; gap:18px; }
.nci-iv-links a { color:#d9eaff !important; font-size:13px; font-weight:750; text-decoration:none !important; }
.nci-iv-main { position:relative; min-width:0; align-self:start; padding:12px; border-radius:24px; background:#ffffffeb; color:#102748; box-shadow:0 30px 70px #00081c80,inset 0 0 0 1px #ffffff80; opacity:0; transform:translateY(26px); min-height:260px; }
.nci-iv.is-in .nci-iv-main { animation:nci-slideup .65s .35s cubic-bezier(.2,.8,.2,1) forwards; }
@keyframes nci-slideup { to { opacity:1; transform:none; } }
.nci-iv-main .nci-ai-card { margin:0; padding:0; border:0; background:transparent; box-shadow:none; }
@media (max-width:860px) {
  .nci-iv-panel { grid-template-columns:1fr; gap:14px; padding-top:66px; }
  .nci-iv-side { position:static; gap:12px; }
  .nci-iv-bot { min-height:120px; } .nci-iv-bot img { width:92px; } .nci-iv-say { font-size:13px; }
  .nci-iv-emoji { flex-basis:52px; width:52px; height:52px; font-size:28px; }
  .nci-iv-shade { background:linear-gradient(180deg,#04122cd9,#04122c99 60%,#04122ccc); }
}
@media (prefers-reduced-motion:reduce) {
  .nci-iv-main,.nci-iv-say { opacity:1 !important; transform:none !important; }
  .nci-iv-bot img { opacity:1 !important; transform:none !important; }
}


/* ===== 4.0 — full-screen world ===== */
body.dha-islands-page .nci-world { position:relative; --nci-head:76px; --nci-ar:1.7769; }
/* transparent header floating over the world */
body.dha-islands-page .nci-header { position:absolute; left:0; right:0; top:0; z-index:20; min-height:var(--nci-head);
  background:linear-gradient(180deg,#041532f0 0%,#041532a8 62%,#04153200 100%); border-bottom:0; box-shadow:none; }
/* the title becomes a glass card on the map; fades when you start playing */
body.dha-islands-page .nci-hero { position:absolute; z-index:15; left:50%; top:calc(var(--nci-head) + 6px); transform:translateX(-50%); width:min(660px,calc(100% - 28px)); padding:0; background:none;
  transition:opacity .6s ease,transform .6s ease; }
body.dha-islands-page .nci-hero.is-min { opacity:0; pointer-events:none; transform:translate(-50%,-14px); }
body.dha-islands-page .nci-hero-copy { display:block; padding:14px 20px 16px; border:1px solid #cfeaff99; border-radius:20px; text-align:center;
  background:linear-gradient(180deg,#0a3a6ed9,#06244ae6); box-shadow:inset 0 1px 0 #ffffff66,0 6px 0 #031c3e,0 18px 36px #00122c80; backdrop-filter:blur(8px); }
body.dha-islands-page .nci-eyebrow { justify-content:center; margin:0 0 4px; }
body.dha-islands-page .nci-hero h1 { margin:0 0 6px; font-size:clamp(20px,2.3vw,30px); line-height:1.1; }
body.dha-islands-page .nci-hero-copy > p { margin:0 auto; max-width:520px; font-size:clamp(12px,1.05vw,14px); line-height:1.5; }
body.dha-islands-page .nci-hero-links { justify-content:center; margin-top:10px; gap:18px; }
body.dha-islands-page .nci-primary-btn { min-height:38px; }
body.dha-islands-page .nci-resume { margin-top:10px; }
/* the stage = one screen */
body.dha-islands-page .nci-stage { padding:0; background:#04153a; }
body.dha-islands-page .nci-map { height:100vh; height:100dvh; border:0; border-radius:0; box-shadow:none; }
body.dha-islands-page .nci-viewport { height:100%; }
body.dha-islands-page .nci-scene { --W:max(100vw,calc(100dvh * var(--nci-ar))); width:var(--W); height:calc(var(--W) / var(--nci-ar)); aspect-ratio:auto; margin-top:calc((100dvh - var(--W) / var(--nci-ar)) / 2); }
@media (hover:hover) and (min-width:761px) { body.dha-islands-page .nci-viewport { overflow-x:hidden; } }
/* HUD / sound / hints sit below the header */
body.dha-islands-page .nci-hud { top:calc(var(--nci-head) + 10px); left:clamp(12px,2vw,28px); }
body.dha-islands-page .nci-sound { top:calc(var(--nci-head) + 10px); right:clamp(12px,2vw,28px); }
body.dha-islands-page .nci-swipe-hint { top:calc(var(--nci-head) + 70px); }
body.dha-islands-page .nci-map-caption { bottom:16px; right:clamp(12px,2vw,28px); }
.nci-scrollcue { position:absolute; left:50%; bottom:14px; z-index:10; transform:translateX(-50%); display:grid; place-items:center; width:46px; height:46px; border:1px solid #cfeaffcc; border-radius:50%; cursor:pointer; color:#fff; font-size:26px; line-height:1;
  background:linear-gradient(180deg,#1a5fa8f2,#06244af5); box-shadow:inset 0 1px 0 #ffffff80,0 4px 0 #031c3e,0 12px 22px #00122c80; animation:nci-cue 1.8s ease-in-out infinite; }
@keyframes nci-cue { 0%,100% { transform:translate(-50%,0); } 50% { transform:translate(-50%,6px); } }
/* passport becomes a slim bar under the world */
body.dha-islands-page .nci-passport { margin:0; padding:16px clamp(14px,3vw,46px); border-radius:0; border-left:0; border-right:0; border-bottom:0; }
/* speech bubble can open downwards under the header */
.nci-say.is-below { bottom:auto; top:calc(100% - 10%); }
.nci-say.is-below::after { bottom:auto; top:-7px; border:0; border-left:1px solid #b8eaff; border-top:1px solid #b8eaff; }
@media (max-width:760px) {
  body.dha-islands-page .nci-world { --nci-head:62px; }
  body.dha-islands-page .nci-header { padding:8px 12px; flex-wrap:nowrap; }
  body.dha-islands-page .nci-scene { width:var(--W); }
  body.dha-islands-page .nci-hero-copy { padding:12px 14px 14px; }
  body.dha-islands-page .nci-hero-copy > p { display:none; }
  body.dha-islands-page .nci-hero-links { margin-top:8px; }
  body.dha-islands-page .nci-search-mobile { margin:8px 0 0; }
  body.dha-islands-page .nci-hud { top:calc(var(--nci-head) + 8px); left:8px; }
  body.dha-islands-page .nci-sound { top:calc(var(--nci-head) + 8px); right:8px; }
}
@media (prefers-reduced-motion:reduce) { .nci-scrollcue { animation:none !important; } body.dha-islands-page .nci-hero { transition:none; } }

/* start position/size consistent with sailing scale; logo as a rounded badge */
body.dha-islands-page .nci-boat { left:17%; top:76%; --bs:.626; }
body.dha-islands-page .nci-brand img { box-sizing:border-box; padding:3px 9px; border-radius:11px; background:#fff; box-shadow:0 6px 16px #00122c66; }
body.dha-islands-page .nci-brand span { text-shadow:0 1px 6px #021030; }


/* ===== 4.1 — the page IS the game: nothing below, every island in view ===== */
html:has(body.dha-islands-page),body.dha-islands-page { overflow:hidden !important; }
body.dha-islands-page .nci-world { height:100vh; height:100dvh; min-height:0; overflow:hidden; }
body.dha-islands-page .nci-popular,body.dha-islands-page .nci-harbor { display:none !important; }
body.dha-islands-page .nci-ai-section { position:absolute !important; left:-9999px; top:0; width:min(980px,96vw); height:auto; padding:0 !important; overflow:hidden; opacity:0; pointer-events:none; }
body.dha-islands-page .nci-actions .nci-menu-jump,.nci-scrollcue { display:none !important; }
/* affiliate disclosure stays visible, but tiny and out of the way */
body.dha-islands-page .nci-footer { position:fixed; left:0; bottom:0; right:auto; z-index:6; padding:0 0 5px 14px; flex-direction:column; align-items:flex-start; gap:1px; background:none; color:#ffffffd9; font-size:10px; pointer-events:none; text-shadow:0 1px 4px #021030,0 0 8px #021030; }
body.dha-islands-page .nci-footer a { pointer-events:auto; color:#fff; }
.nci-iv-note { margin:0; color:#a9c9ec; font-size:11px; }
/* ambient blurred backdrop for the bands around the contained scene */
.nci-art-blur { position:absolute; left:-6%; top:-6%; width:112%; height:112%; z-index:0; object-fit:cover; filter:blur(22px) saturate(1.25) brightness(.9); pointer-events:none; }
body.dha-islands-page .nci-viewport { position:relative; z-index:1; }
/* passport lives inside the game as a slim pill */
body.dha-islands-page .nci-map > .nci-passport { position:absolute; left:50%; bottom:14px; transform:translateX(-50%); z-index:10; margin:0; padding:5px 14px 5px 12px; gap:10px; flex-wrap:nowrap; align-items:center;
  border:1px solid #cfeaffcc; border-radius:999px; background:linear-gradient(180deg,#1a5fa8ee,#06244af2); box-shadow:inset 0 1px 0 #ffffff80,0 4px 0 #031c3e,0 12px 22px #00122c80; color:#fff; }
.nci-passport-head b { font-size:0; } .nci-passport-head b::before { content:"🧭"; font-size:16px; }
.nci-map > .nci-passport .nci-stamp { width:30px; height:30px; font-size:15px; border-width:1.5px; }
.nci-map > .nci-passport .nci-stamps { flex-wrap:nowrap; gap:6px; }
.nci-map > .nci-passport .nci-passport-msg { position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; flex:none; }
/* desktop / tablet: contain the whole world under the header so no island is cropped */
@media (min-width:761px) {
  body.dha-islands-page .nci-scene { --top:62px; --W:min(100vw,calc((100dvh - var(--top)) * var(--nci-ar))); width:var(--W); height:calc(var(--W) / var(--nci-ar));
    margin-top:calc(var(--top) + (100dvh - var(--top) - var(--W) / var(--nci-ar)) / 2); margin-inline:auto; }
}
@media (max-width:760px) {
  body.dha-islands-page .nci-map > .nci-passport { left:8px; bottom:26px; transform:none; padding:4px 11px 4px 9px; }
  body.dha-islands-page .nci-map > .nci-passport .nci-stamps { display:none; }
  body.dha-islands-page .nci-map-caption { bottom:26px; right:8px; }
  body.dha-islands-page .nci-footer { padding:0 0 3px 10px; font-size:9px; }
}


/* ===== v4.2.0 — floating sky-islands look ===== */
.nci-art { filter:none; }
/* Each island is now a big clickable area over the artwork (the labels are painted in the art). */
.nci-island { top:var(--y); width:23%; height:40%; border-radius:46%; }
.nci-island-label { position:absolute; left:50%; bottom:2%; transform:translateX(-50%); opacity:0; pointer-events:none; }
.nci-island:hover,.nci-island:focus-visible { transform:translate(-50%,-52%) scale(1.04); }
.nci-island:focus-visible { outline:3px solid #ffe27a; outline-offset:2px; }
.nci-island::before { width:104%; height:104%; border:3px solid #ffe27ae6; }
.nci-island::after { width:120%; height:120%; transform:translate(-50%,-50%); background:radial-gradient(ellipse,#ffe58a99 0,#ffd05a33 42%,transparent 70%); z-index:-1; }
.nci-island:hover::after,.nci-island:focus-visible::after,.nci-island.is-selected::after { opacity:1; }
.nci-island.is-visited::marker { content:""; }
.nci-island.is-visited .nci-island-label::after { content:none; }
.nci-island.is-visited::before { content:"✓"; opacity:1; left:auto; right:6%; top:8%; width:26px; height:26px; transform:none; border:0; border-radius:50%; background:#2fd6a1; color:#04342a; font:900 15px/26px system-ui,sans-serif; text-align:center; animation:none; box-shadow:0 2px 8px #0006; }
.nci-pop { font-size:clamp(18px,2.4vw,34px); font-weight:900; color:#ffd84a; text-shadow:0 3px 8px #0009,0 0 14px #ffb800aa; }
