/* Approved turquoise / green / cream direction, 2026-10-03.
   The existing sculpted art and canonical state remain the source of truth.
   Aqua leads practice, green builds, and cream supports the quieter tools. */
html.island-coast{
 --dw-island-top-inset:86px;--ic-bar-inset:124px;
 --island-ui-cream:#fff8e7;--island-ui-ink:#123e50;--island-ui-muted:#536d73;
 --island-ui-aqua:#27c7c9;--island-ui-green:#70cf49;--island-ui-line:#dccfb2;
 --island-ui-focus:#0b667f;--island-ui-danger:#963f35;
 --island-ui-paper:linear-gradient(180deg,#fffdf5 0%,#fff8e7 75%,#f8eed6 100%);
 --island-ui-utility:linear-gradient(180deg,#fffefa 0%,#fff8e7 68%,#f5e9cf 100%);
 --island-ui-active:linear-gradient(180deg,#86eee0 0%,#27c7c9 58%,#1bb7c0 100%);
 --island-ui-grow:linear-gradient(180deg,#b7f17b 0%,#70cf49 58%,#55b937 100%);
 --island-ui-raised:inset 0 2px 0 #fff, inset 0 -2px 0 #d8cbb144, 0 4px 0 #c8bfa6, 0 7px 12px #164c631c;
 --island-ui-aqua-shadow:inset 0 2px 0 #d8fff6, inset 0 -2px 0 #1598a044, 0 4px 0 #128d9d, 0 7px 12px #087c8d26;
 --island-ui-green-shadow:inset 0 2px 0 #e6ffc5, inset 0 -2px 0 #439c2a44, 0 4px 0 #40932b, 0 7px 12px #27661d26;
 --island-ui-panel-shadow:inset 0 2px 0 #fff, inset 0 -3px 0 #ded0b26b, 0 5px 0 #c9bda1, 0 16px 36px #123e502e;
 --hud-ink:var(--island-ui-ink);--hud-cream:var(--island-ui-cream);--hud-cream-2:#f8eed6;
 --hud-line:var(--island-ui-line);--hud-green:#70cf49;--hud-green-2:#40932b;--hud-muted:var(--island-ui-muted)
}
.island-coast body{color:var(--hud-ink);font-family:var(--app-font,system-ui,-apple-system,sans-serif)}
/* Availability remains controller-owned; author display rules must respect hidden controls. */
.island-coast [hidden]:not([hidden="until-found"]){display:none!important}
.island-coast :is(#ip-home,#ip-happy,#ip-tools){font-family:inherit}
.island-coast #ip-activities{display:none!important}
.island-coast body[data-island-phase="onboarding"] :is(#ip-wallet,#ip-era,#ip-happy,#ip-tools,#ip-rail-l){visibility:hidden}
.island-coast body[data-island-phase="onboarding"] .ip-tut-spot{visibility:visible}
/* the return walkthrough shows the wallet from the coins-fly beat on: the farm beat says the coins are there (founder, 2 Oct 2026) */
.island-coast body[data-island-phase="onboarding"][data-onb-path="C"] #ip-wallet{visibility:visible}
.island-coast #ip-onb{box-sizing:border-box;width:382px;max-width:calc(100vw - 24px);bottom:var(--ic-bar-inset)}
/* The tutorial must leave its illustrated target exposed even on short screens. */
@media(max-height:460px){
 .island-coast #ip-onb{padding:15px 14px 10px}
 .island-coast #ip-onb .say{min-height:0;font-size:15px;line-height:1.45}
 .island-coast #ip-onb .ft{margin-top:8px}
 .island-coast #ip-onb .cta{min-height:44px;padding:8px 18px}
 .island-coast #ip-onb-card{padding:12px 12px calc(env(safe-area-inset-bottom,0px) + 8px)}
 .island-coast #ip-onb-card button{padding:8px 12px}
 .island-coast #ip-onb-card .th{width:48px;height:48px}
}
.island-coast #ip-status{bottom:var(--ic-bar-inset);z-index:45;max-width:calc(100vw - 32px)}
.island-coast .ip-object{object-fit:contain;pointer-events:none;user-select:none;-webkit-user-drag:none}

/* Small top controls frame the existing citizen/happiness panel. */
.island-coast #ip-home,.island-coast #ip-happy,.island-coast #ip-wallet .tok{border:1px solid var(--island-ui-line);background:var(--island-ui-paper);box-shadow:var(--island-ui-raised);color:var(--hud-ink)}
.island-coast #ip-home{z-index:35;min-height:44px;padding:2px 12px 2px 5px;gap:3px;border-radius:19px}
.island-coast #ip-home .ip-home-back{font-size:17px;font-weight:700;line-height:1;margin-left:3px;margin-right:-3px;pointer-events:none}
.island-coast #ip-home .hi{width:40px;height:40px;display:flex;align-items:center;justify-content:center}
.island-coast #ip-home .ip-object{width:44px;height:44px;max-width:none}
.island-coast #ip-home .hj{font-size:13px;font-weight:700}
.island-coast #ip-wallet{gap:5px}
.island-coast #ip-wallet .tok{min-height:38px;padding:3px 8px 3px 6px;gap:4px}
.island-coast #ip-wallet .tok b{font-size:13px;font-weight:700}
.island-coast #ip-wallet .tok .ip-ccy{width:20px;height:20px}
.island-coast #ip-happy{max-width:calc(100vw - 94px);border-radius:20px;padding:9px 11px 6px;background:radial-gradient(ellipse at 13% 22%,#ffe6d780,transparent 47%),var(--island-ui-paper)}
.island-coast #ip-happy .hemblem{left:5px;top:0;width:57px;height:57px;isolation:isolate;transform-origin:50% 60%}
.island-coast #ip-happy .hemblem::before{content:"";position:absolute;inset:4px;border-radius:50%;background:radial-gradient(circle,#ffc5b45c,transparent 70%);z-index:-1}
.island-coast #ip-happy .hh{align-items:center;min-height:20px;margin-left:55px;gap:4px}
.island-coast #ip-happy .hlab{font-size:10px;font-weight:700;color:#526b70;letter-spacing:.02em}
.island-coast #ip-happy .htier{font-size:11px;line-height:1.5;font-weight:750;padding:1px 8px;border-radius:20px;color:#226444;background:#e0efdd;box-shadow:inset 0 1px 0 #ffffffb3}
.island-coast #ip-happy .htrack{position:relative;height:13px;margin:4px 0 7px 55px;padding:2px;box-sizing:border-box;background:#dce5d9;border:1px solid #bcccb6;box-shadow:inset 0 1px 3px #42684b30,0 1px 0 #fff9ed;overflow:hidden}
.island-coast #ip-happy .hfill{display:block;position:relative;height:100%;box-shadow:inset 0 1px 0 #e4ffc9;transition:width .5s ease}
.island-coast #ip-happy[data-tier=happy] .hfill{background:linear-gradient(180deg,#a8e270 0%,#78cc58 47%,#47aa5e 53%,#58ba69 100%)}
.island-coast #ip-happy[data-tier=ok] .hfill{background:linear-gradient(180deg,#9ddfc6,#5aac92);box-shadow:inset 0 1px 0 #e0ffef}
.island-coast #ip-happy[data-tier=low] .hfill{background:linear-gradient(180deg,#f6bd9c,#de8064);box-shadow:inset 0 1px 0 #ffe3cd}
.island-coast #ip-happy[data-tier=ok] .htier{color:#286856;background:#dcefe6}
.island-coast #ip-happy[data-tier=low] .htier{color:#785b47;background:#f0e2cc}
.island-coast #ip-happy[data-tier=happy] .hemblem{animation:ic-mood-bob 4.8s ease-in-out infinite}
.island-coast #ip-happy .hfoot{gap:6px;margin-top:0;padding-top:3px;border-top:1px solid #e8dfc980}
.island-coast #ip-happy .hsub{font-size:10px;line-height:1.4;margin:0;color:#57746b}
@keyframes ic-mood-bob{0%,64%,100%{transform:translateY(0) rotate(-3deg)}73%{transform:translateY(-2px) rotate(2deg)}84%{transform:translateY(0) rotate(-3deg)}}
.island-coast #ip-happy #ip-era{min-height:44px;padding:4px 0;color:var(--hud-ink);border-radius:6px}
.island-coast #ip-happy #ip-era-tx{font-size:13px;font-weight:700}
.island-coast #ip-happy #ip-era b{color:#008fba}
@media(prefers-reduced-motion:reduce){.island-coast #ip-happy[data-tier=happy] .hemblem{animation:none}.island-coast #ip-happy .hfill{transition:none}}

/* Four tactile actions: Tasks · Practice · Build · Arrange. */
.island-coast #ip-tools{box-sizing:border-box;width:min(540px,calc(100vw - 24px - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px)));max-width:540px;padding:12px 9px 10px;gap:8px;border:2px solid #fffdf5;border-radius:29px;background:var(--island-ui-paper);box-shadow:var(--island-ui-panel-shadow);overflow:visible}
.island-coast #ip-tools button{--dock-face:var(--island-ui-utility);--dock-edge:var(--island-ui-line);--dock-shadow:var(--island-ui-raised);position:relative!important;flex:1 1 0;min-width:0;width:auto;min-height:100px;height:100px;margin-top:-18px;padding:0 2px 9px;justify-content:flex-end;gap:0;border:0;border-radius:20px;background:none;color:var(--island-ui-ink);box-shadow:none;isolation:isolate;transition:transform .14s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent;overflow:visible}
.island-coast #ip-tools button::before{content:"";position:absolute;inset:18px 0 0;z-index:-1;border:1px solid var(--dock-edge);border-radius:20px;background:var(--dock-face);box-shadow:var(--dock-shadow);pointer-events:none;transition:box-shadow .14s ease}
.island-coast #ip-tools button .ip-object{position:absolute;left:50%;bottom:25px;transform:translateX(-50%);width:76px;height:76px;max-width:none}
.island-coast #ip-tools button .lbl{font-size:13px;line-height:1.25;font-weight:800;letter-spacing:0;color:var(--island-ui-ink);pointer-events:none}
.island-coast #ip-tools #ip-play-btn{--dock-face:var(--island-ui-active);--dock-edge:#69dfdd;--dock-shadow:var(--island-ui-aqua-shadow);flex:1.3 1 0}
/* IslandPage injects legacy Build rules after this link loads; explicit ownership
   keeps its real button transparent while the raised face lives on ::before. */
.island-coast #ip-tools button[data-tool=build]{--dock-face:var(--island-ui-grow);--dock-edge:#8cda61;--dock-shadow:var(--island-ui-green-shadow);flex:1.2 1 0;background:none;border:0;box-shadow:none;color:var(--island-ui-ink)}
.island-coast #ip-tools button[data-tool=build]:is(:hover,:active):not(:focus-visible){box-shadow:none}
.island-coast #ip-tools :is(#ip-play-btn,[data-tool=build]){height:110px;min-height:110px;margin-top:-28px;padding-bottom:9px;border-radius:22px}
.island-coast #ip-tools :is(#ip-play-btn,[data-tool=build])::before{top:20px;border-radius:22px}
.island-coast #ip-tools :is(#ip-play-btn,[data-tool=build]) .ip-object{width:88px;height:88px;bottom:25px}
.island-coast #ip-tools :is(#ip-play-btn,[data-tool=build]) .lbl{font-size:15px;color:var(--island-ui-ink);text-shadow:0 1px 0 #ffffff50}
.island-coast #ip-tools button.on::before{outline:3px solid var(--island-ui-focus);outline-offset:2px}
.island-coast #ip-tools #ip-arrange-btn[data-active-tool=delete]::before{--dock-face:linear-gradient(180deg,#fff7ef,#f6d8cc);--dock-edge:#cc8a77;outline-color:var(--island-ui-danger)}
.island-coast #ip-tools button:active{transform:translateY(3px)}
.island-coast #ip-tools button:active::before{box-shadow:inset 0 2px 3px #123e5018,0 1px 0 var(--dock-edge)}
.island-coast #ip-quest-btn .qdot{z-index:2;top:1px;right:-3px;min-width:23px;height:23px;padding:0 4px;box-sizing:border-box;border:2px solid #fff8e7;background:linear-gradient(180deg,#49b75f,#278549);color:#fff;box-shadow:0 2px 3px #17483529;font-size:12px;line-height:19px}

#ic-ui{--ink:var(--island-ui-ink);--paper:var(--island-ui-cream);--sea:var(--island-ui-aqua);color:var(--ink);font-family:inherit}
#ic-ui [hidden]{display:none!important}
#ic-ui button{font:inherit;cursor:pointer;color:inherit;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
#ic-ui button:focus-visible,.island-coast button:focus-visible,.island-coast a:focus-visible{outline:3px solid #fff;outline-offset:2px;box-shadow:0 0 0 5px #126d96}
#ic-ui .ic-button,#ic-ui .ic-camera{background:var(--island-ui-paper);border:1px solid var(--island-ui-line);border-radius:16px;box-shadow:var(--island-ui-raised)}
#ic-menu{position:fixed;right:calc(10px + env(safe-area-inset-right,0px));top:calc(65px + env(safe-area-inset-top,0px));width:58px;height:64px;padding:1px 2px 7px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:1px;z-index:36;transition:transform .12s ease}
#ic-menu .ip-object{width:48px;height:48px}
.ic-menu-dots{display:flex;align-items:center;justify-content:center;gap:4px;height:7px;pointer-events:none}
.ic-menu-dots i{width:5px;height:5px;display:block;background:var(--island-ui-ink);border-radius:50%}
#ic-menu:active{transform:translateY(2px)}
.ic-camera{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(var(--ic-bar-inset) + 5px);display:flex;z-index:34;overflow:hidden}
.ic-camera button{background:transparent;border:0;min-width:48px;height:44px;font-size:17px!important}.ic-camera button+button{border-left:1px solid #e4dbc9}
@media(max-width:800px),(pointer:coarse){.ic-camera{display:none!important}}

/* Expanded menu: generous, consistent object-and-label pairs on a single surface. */
#ic-ui dialog{box-sizing:border-box;background:var(--island-ui-paper);color:var(--ink);border:2px solid #fffcf3;border-radius:28px;padding:24px 18px 20px;box-shadow:var(--island-ui-panel-shadow);font:inherit;width:min(440px,calc(100vw - 24px));max-height:calc(100dvh - 40px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));overflow:auto}
#ic-place,#ic-drawer,#ic-arrange{margin:auto auto calc(16px + env(safe-area-inset-bottom));animation:ic-rise .18s ease-out}
#ic-ui dialog::backdrop{background:#123e5042;backdrop-filter:blur(3px)}
#ic-ui .ic-close{position:absolute;right:12px;top:12px;display:grid;place-items:center;background:transparent;border:0;border-radius:12px;font-size:31px;font-weight:650;width:44px;height:44px;line-height:1}
#ic-ui .ic-close:hover{background:#eadfc669}
#ic-place-en{display:none!important}
#ic-ui h2{font-size:23px;font-weight:700;margin:8px 42px 14px 2px;letter-spacing:.02em}
#ic-ui dialog>small{display:block;font-size:10px;letter-spacing:2px;color:#44636d}
#ic-ui dialog>p{font-size:14px;line-height:1.8;margin:0 0 18px}
#ic-drawer{width:min(540px,calc(100vw - 24px));padding:18px 13px 19px}
#ic-drawer h2{font-size:23px;text-align:center;margin:7px 42px 13px;padding-bottom:17px}
#ic-drawer-content{border-top:1px solid #e4dac4;padding-top:8px}
.ic-location-list{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:11px 9px}
#ic-ui .ic-secondary{display:block;width:100%;text-align:left;padding:13px 15px;margin-top:8px;background:#fffcf4;border:1px solid #dfd5bf;border-radius:13px;min-height:48px;font-weight:750;box-shadow:inset 0 1px 0 #fff,0 2px 0 #c7bea34d}
.island-coast #ic-ui button.ic-object-action{display:flex;align-items:center;gap:3px;min-width:0;min-height:95px;margin:0;padding:5px 3px;background:var(--island-ui-utility);border:1px solid var(--island-ui-line);box-shadow:var(--island-ui-raised);border-radius:18px;text-align:left;transition:background-color .12s ease,transform .12s ease}
.island-coast #ic-ui button.ic-object-action .ip-object{width:76px;height:76px;flex:0 0 76px;max-width:none}
#ic-ui .ic-action-label{font-size:13px;font-weight:700;line-height:1.5;overflow-wrap:anywhere;pointer-events:none;word-break:normal}
#ic-drawer .ic-action-label{line-break:strict;text-wrap:balance;max-width:5.4em}
#ic-drawer img.ip-object[src$="/lessons.webp"] + .ic-action-label{max-width:4.5em;text-wrap:wrap}
.island-coast #ic-ui button.ic-object-action:hover{background:#fffdf5;border-color:#9fbfae}
.island-coast #ic-ui button.ic-object-action:active{background:#e6eedf;transform:translateY(1px)}
#ic-ui .ic-primary{display:flex;align-items:center;justify-content:center;gap:18px;background:var(--island-ui-active);color:var(--island-ui-ink);border:1px solid #54c9c5;border-radius:17px;box-shadow:var(--island-ui-aqua-shadow);width:100%;padding:14px 18px;font-weight:700;min-height:52px}
#ic-edit-done{position:fixed;bottom:var(--ic-bar-inset);left:50%;transform:translateX(-50%);padding:12px 20px;min-height:46px;z-index:40;white-space:nowrap;font-weight:750!important}

/* Existing build, task, activity, catalogue and management actions share the finish. */
.island-coast #ip-sel,.island-coast #ip-bubble,.island-coast #ip-walker{box-sizing:border-box;max-width:calc(100vw - 24px);max-height:55dvh;overflow:auto;top:auto!important;bottom:calc(18px + env(safe-area-inset-bottom))!important;left:50%!important;transform:translateX(-50%);width:min(440px,calc(100vw - 24px));background:var(--island-ui-paper);color:var(--island-ui-ink);padding:20px;border-radius:25px;z-index:42}
.island-coast #ip-sel{font-size:15px;line-height:1.5;border:1px solid var(--island-ui-line);box-shadow:0 3px 0 #c7bea34d,0 8px 28px #163c5933}
.island-coast #ip-sel-name{display:block;font-size:20px;margin-bottom:12px}
.island-coast #ip-sel>div:first-of-type{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.island-coast #ip-sel button{min-height:46px;padding:10px 14px;font-size:14px;margin:0;border-radius:12px}
.island-coast #ip-sel #ip-sel-rot{background:#fffcf4;color:var(--island-ui-ink);border:1px solid #dfd5bf;box-shadow:inset 0 1px 0 #fff,0 2px 0 #c7bea34d}
.island-coast #ip-sel #ip-sel-up{grid-column:1/-1;background:var(--island-ui-grow);color:var(--island-ui-ink);border:1px solid #8bd76a;box-shadow:var(--island-ui-green-shadow)}
.island-coast #ip-sel #ip-sel-del{color:var(--island-ui-danger);background:linear-gradient(180deg,#fff7ef,#f6d8cc);border:1px solid #dbab98;box-shadow:inset 0 2px 0 #fff,0 3px 0 #cb9986}
.island-coast #ip-sel .ic-legacy-close{margin-top:14px;width:100%;background:#f2ecd9;color:#24394a}
.island-coast :is(#ip-menu,#ip-quest,#ip-zukan,#ip-activity-dialog){background:var(--island-ui-paper);color:var(--island-ui-ink);border:2px solid #fffcf3;border-radius:27px;font-family:inherit;box-shadow:var(--island-ui-panel-shadow)}
.island-coast #ip-menu{box-sizing:border-box;max-height:70dvh;border-radius:27px 27px 0 0;padding:13px 14px calc(16px + env(safe-area-inset-bottom,0px))}
.island-coast #ip-menu-tabs{padding:4px;gap:4px;border:1px solid #d7dac5;border-radius:17px;background:#eeeeda}
.island-coast #ip-menu-tabs button{border-radius:11px;font-weight:700;color:#476879;opacity:1}
.island-coast #ip-menu-tabs button.on{background:var(--island-ui-grow);color:var(--island-ui-ink);box-shadow:inset 0 2px 0 #e6ffc5,0 3px 0 #4c9934;outline:1px solid #78b654}
.island-coast #ip-menu .ip-mi{flex-basis:128px;background:var(--island-ui-utility);border-color:var(--island-ui-line);border-radius:20px;box-shadow:var(--island-ui-raised);padding:11px 9px 12px}
.island-coast #ip-menu .ip-mi .th{width:96px;height:96px;background-color:#edf5db;border-radius:15px}
.island-coast #ip-menu .ip-mi .nm{font-size:14px;line-height:1.4;color:var(--island-ui-ink)}
.island-coast #ip-menu .ip-mi .cost,.island-coast #ip-menu .ip-mi .free{font-size:13px}
.island-coast #ip-menu button:not(.ip-mi){min-height:44px}
.island-coast #ip-menu-foot{border-top:1px solid #e5dbc5}
.island-coast :is(#ip-menu-foot button,#ip-quest-close,#ip-zk-close){min-height:46px;border-radius:13px;font-weight:700;background:#fffcf4;border:1px solid #dfd5bf;color:var(--island-ui-ink);box-shadow:inset 0 1px 0 #fff,0 2px 0 #c7bea34d}
.island-coast #ip-menu-foot #ip-auto{background:var(--island-ui-grow);border-color:#8bd76a;color:var(--island-ui-ink);box-shadow:var(--island-ui-green-shadow)}
.island-coast #ip-quest .qrow{background:#fffcf4;border:1px solid #e2d8c2;border-radius:15px;box-shadow:0 2px 0 #c7bea326}
/* Task progress is factual; turquoise offers the next action and green records completion. */
.island-coast #ip-quest-modal{box-sizing:border-box;background:#123e5042;padding:18px 12px calc(14px + env(safe-area-inset-bottom,0px));backdrop-filter:blur(2px)}
.island-coast #ip-quest{position:relative;box-sizing:border-box;display:flex;flex-direction:column;width:min(520px,100%);max-height:min(790px,calc(100dvh - 36px - env(safe-area-inset-bottom,0px)));padding:0 15px 13px;overflow:hidden;border:1px solid var(--island-ui-line);border-radius:27px;background:radial-gradient(ellipse at 13% 0%,#dbfaf199,transparent 42%),var(--island-ui-paper);animation:ic-rise .22s ease-out}
.island-coast #ip-quest .qgrip{margin:8px auto 0;width:34px;height:4px;background:#d9ceb6;flex-shrink:0}
.island-coast #ip-quest-x{position:absolute;top:12px;right:9px;width:44px;height:44px;display:grid;place-items:center;border:0;background:none;color:#365d69;border-radius:13px;font:500 30px/1 system-ui;cursor:pointer;z-index:1}
.island-coast #ip-quest-x:hover{background:#eee6d4}
.island-coast #ip-quest .qhead{display:flex;align-items:center;gap:5px;margin:0 37px 0 -2px;min-height:94px;flex-shrink:0}
.island-coast #ip-quest .qhero{width:88px;height:88px;flex:0 0 88px;transform:rotate(-6deg)}
.island-coast #ip-quest .qhero .ip-object{width:100%;height:100%;object-fit:contain}
.island-coast #ip-quest .qhead-copy{min-width:0}
.island-coast #ip-quest .qh1{font-size:23px;font-weight:800;line-height:1.4;margin:2px 0 0;letter-spacing:.01em}
.island-coast #ip-quest .qsub{font-size:11px;line-height:1.5;font-weight:650;letter-spacing:.06em;color:#527b78}
.island-coast #ip-quest .qjourney{padding:9px 12px 11px;margin:0 0 13px;border:1px solid #cbded0;border-radius:15px;background:linear-gradient(180deg,#e8fbd7,#ddf3c9);box-shadow:inset 0 1px 0 #fff9;flex-shrink:0}
.island-coast #ip-quest .qjourney-copy{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:11px;line-height:1.6;color:#466c59;margin-bottom:6px}
.island-coast #ip-quest-count{font-size:14px;line-height:1.25;color:#287b50;white-space:nowrap}
.island-coast #ip-quest .qjourney-track{height:9px;border:1px solid #b9ceb3;border-radius:20px;background:#d5e3ce;box-shadow:inset 0 1px 2px #35584122;overflow:hidden;padding:1px;box-sizing:border-box}
.island-coast #ip-quest .qjourney-track i{display:block;height:100%;border-radius:20px;background:var(--island-ui-grow);box-shadow:inset 0 1px 0 #ddffe1;transition:width .35s ease}
.island-coast #ip-quest-list{overflow-y:auto;overscroll-behavior:contain;min-height:0;padding:1px 2px 5px;margin:0 -2px;scrollbar-width:thin;scrollbar-color:#b6c9bb transparent}
.island-coast #ip-quest .qrow{box-sizing:border-box;position:relative;min-height:99px;padding:9px 9px 9px 2px;gap:7px;margin-bottom:11px;border-radius:18px;background:var(--island-ui-utility);box-shadow:inset 0 1px 0 #fff,0 3px 0 #d9cdb642;transition:transform .12s ease,background-color .12s ease}
.island-coast #ip-quest .qrow:not(:disabled):hover{border-color:#9bcdbb;background:#f6fcf3}
.island-coast #ip-quest .qrow:not(:disabled):active{transform:translateY(2px)}
.island-coast #ip-quest .qav{width:75px;height:75px;flex:0 0 75px;background:none;border:0;overflow:visible;border-radius:0}
.island-coast #ip-quest .qav .ip-object{width:100%;height:100%;object-fit:contain;pointer-events:none}
.island-coast #ip-quest .qnm{font-size:13px;line-height:1.5;font-weight:750;color:#194e60}
.island-coast #ip-quest .qask{font-size:11px;line-height:1.5;white-space:normal;text-overflow:clip;overflow:visible;color:#54767a;margin-top:2px}
.island-coast #ip-quest .qst{display:flex;flex-direction:column;align-items:center;gap:0;justify-content:center;min-width:52px;min-height:47px;box-sizing:border-box;padding:4px 5px;border-radius:12px;font-size:9px;line-height:1.5;border:1px solid #9bc9ae}
.island-coast #ip-quest .qst.todo{color:var(--island-ui-ink);border-color:#58cfc7;background:var(--island-ui-active);box-shadow:var(--island-ui-aqua-shadow);font-weight:800}
.island-coast #ip-quest .qst.todo i{font-style:normal;font-size:23px;line-height:16px;font-weight:600}
.island-coast #ip-quest .qst.done{color:#285534;background:#e0f2ce;border:1px solid #a2c98a;box-shadow:inset 0 1px 0 #fff}
.island-coast #ip-quest .qst.done i{font-size:21px;line-height:23px;font-style:normal}
.island-coast #ip-quest .qtask[disabled]{opacity:1;background:#f2f3e8;border-color:#d2dfc9;box-shadow:none}
.island-coast #ip-quest .qtask[disabled] .qactivity{opacity:.8}
.island-coast #ip-quest .qsec{font-size:13px;line-height:1.6;color:#315e68;margin:15px 2px 11px;padding-top:8px;border-top:1px solid #ded9c6;text-transform:none;letter-spacing:0}
.island-coast #ip-quest .qsec span{font-size:10px;color:#7a8c88;margin-left:5px}
.island-coast #ip-quest .qisland{min-height:73px;padding:6px 12px 6px 4px;background:#fffdf580}
.island-coast #ip-quest .qisland .qav{width:55px;height:55px;flex-basis:55px}
.island-coast #ip-quest .qisland .qnm{font-size:12px}
.island-coast #ip-quest .qisland .qnm small{font-size:9px;font-weight:500;color:#55716d}
.island-coast #ip-quest .qisland[disabled]{opacity:1;box-shadow:none}
.island-coast #ip-quest .qdotmini{top:3px;left:auto;right:2px;transform:none;background:#49b981;border:2px solid #fff9ed;width:10px;height:10px}
.island-coast #ip-quest .qchev{font-size:23px;color:#478d79}
.island-coast #ip-quest .qempty{padding:22px 12px;color:#638076;line-height:1.7}
.island-coast #ip-quest-close{flex-shrink:0;margin-top:9px;min-height:47px;background:var(--island-ui-utility);font-size:13px;cursor:pointer}
@media(max-width:374px){.island-coast #ip-quest{padding-left:11px;padding-right:11px}.island-coast #ip-quest .qh1{font-size:21px}.island-coast #ip-quest .qav{width:63px;height:63px;flex-basis:63px}.island-coast #ip-quest .qrow{gap:5px}.island-coast #ip-quest .qnm{font-size:12px}.island-coast #ip-quest .qst{min-width:49px}}
@media(prefers-reduced-motion:reduce){.island-coast #ip-quest{animation:none}.island-coast #ip-quest .qrow,.island-coast #ip-quest .qjourney-track i{transition:none}}
/* Play shares the illustrated task-board family; the activity catalogue stays canonical. */
.island-coast #ip-activity-dialog{position:fixed;width:min(560px,calc(100vw - 24px));max-height:calc(100dvh - 30px - env(safe-area-inset-bottom,0px));padding:0 15px 13px;overflow:hidden;border-radius:27px;background:radial-gradient(ellipse at 13% 0%,#dbfaf199,transparent 42%),var(--island-ui-paper)}
.island-coast #ip-activity-dialog[open]{display:flex;flex-direction:column;animation:ic-rise .22s ease-out}
.island-coast #ip-activity-dialog::backdrop{background:#14374f38;backdrop-filter:blur(2px)}
.island-coast #ip-activity-dialog .saplay-grip{width:34px;height:4px;min-height:4px;background:#d9ceb6;border-radius:99px;margin:8px auto 0;flex-shrink:0}
.island-coast #ip-activity-dialog .sa-close{position:absolute;right:9px;top:12px;float:none;width:44px;height:44px;min-width:44px;min-height:44px;display:grid;place-items:center;background:transparent;color:#365d69;border:0;border-radius:13px;font:500 30px/1 system-ui;cursor:pointer}
.island-coast #ip-activity-dialog .sa-close:hover{background:#eee6d4}
.island-coast #ip-activity-dialog .saplay-head{display:flex;align-items:center;gap:10px;min-height:92px;margin-right:34px;flex-shrink:0}
/* Leave room for a complete Retry target inside the short-screen scroll area. */
@media(max-height:420px){.island-coast #ip-activity-dialog .saplay-head{min-height:82px}}
.island-coast #ip-activity-dialog .saplay-hero{transform:rotate(-7deg)}
.island-coast #ip-activity-dialog .saplay-kicker{font-size:11px;font-weight:650;letter-spacing:.05em;line-height:1.5;color:#527b78}
.island-coast #ip-activity-dialog h2{font-size:24px;line-height:1.4;font-weight:800;margin:2px 0 0;color:var(--island-ui-ink)}
.island-coast #ip-activity-dialog #ip-activity-intro{font-size:11.5px;line-height:1.75;margin:1px 3px 13px;color:#4e7375;flex-shrink:0}
.island-coast #ip-activity-dialog .saplay-scroll{overflow-y:auto;overscroll-behavior:contain;min-height:0;padding:1px 2px 5px;margin:0 -2px;scrollbar-width:thin;scrollbar-color:#b6c9bb transparent}
.island-coast #ip-activity-dialog .sa-grid{display:flex;flex-direction:column;gap:12px}
.island-coast #ip-activity-dialog .sa-activity{box-sizing:border-box;display:flex;align-items:center;gap:9px;min-height:128px;padding:10px 9px 10px 3px;background:var(--island-ui-utility);border:1px solid #e2d8c2;border-radius:18px;color:#194e60;box-shadow:inset 0 1px 0 #fff,0 3px 0 #d9cdb642;transition:transform .12s ease,background-color .12s ease}
.island-coast #ip-activity-dialog .sa-activity:hover{border-color:#9bcdbb;background:#f6fcf3}
.island-coast #ip-activity-dialog .sa-activity:active{transform:translateY(2px)}
.island-coast #ip-activity-dialog .sa-activity>img{width:75px;height:75px;flex:0 0 75px;object-fit:contain;pointer-events:none}
.island-coast #ip-activity-dialog .saplay-copy{flex:1 1 auto;min-width:0}
.island-coast #ip-activity-dialog .sa-activity strong{font-size:13px;line-height:1.5;font-weight:750;color:#194e60}
.island-coast #ip-activity-dialog .sa-detail{font-size:11px;line-height:1.6;margin:4px 0 0;color:#4e7375;overflow-wrap:anywhere}
.island-coast #ip-activity-dialog .sa-action{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;flex:0 0 66px;min-height:54px;padding:5px 4px;box-sizing:border-box;font-size:9px;line-height:1.5;border-radius:12px;border:1px solid #58cfc7;color:var(--island-ui-ink);background:var(--island-ui-active);box-shadow:var(--island-ui-aqua-shadow);text-align:center}
.island-coast #ip-activity-dialog .sa-action span{white-space:nowrap}
.island-coast #ip-activity-dialog .sa-action i{font:600 23px/16px system-ui}
.island-coast #ip-activity-dialog .sa-nav{display:flex;gap:8px;flex-shrink:0;margin:11px 0 9px;padding-top:10px;border-top:1px solid #ded9c6;flex-wrap:nowrap}
.island-coast #ip-activity-dialog .sa-nav a{display:flex;align-items:center;justify-content:center;gap:5px;flex:1 1 0;min-width:0;padding:5px 7px;background:#fffcf4;color:#285e69;border:1px solid #dfd5bf;border-radius:13px;min-height:47px;box-sizing:border-box;box-shadow:inset 0 1px 0 #fff,0 2px 0 #c7bea326;font-size:10px;line-height:1.5;text-decoration:none}
.island-coast #ip-activity-dialog .sa-nav .ip-object{width:34px;height:34px;object-fit:contain;flex:0 0 34px}
.island-coast #ip-activity-dialog .saplay-return{display:block;flex-shrink:0;width:100%;min-height:47px;margin:0;padding:9px;border:1px solid #dfd5bf;border-radius:13px;font-family:inherit;font-size:13px;font-weight:700;line-height:1.5;color:var(--island-ui-ink);background:var(--island-ui-utility);box-shadow:inset 0 1px 0 #fff,0 2px 0 #c7bea326;cursor:pointer}
@media(max-width:374px){.island-coast #ip-activity-dialog{padding-left:11px;padding-right:11px}.island-coast #ip-activity-dialog h2{font-size:21px}.island-coast #ip-activity-dialog .sa-activity{gap:6px}.island-coast #ip-activity-dialog .sa-activity>img{width:63px;height:63px;flex-basis:63px}.island-coast #ip-activity-dialog .sa-activity strong{font-size:12px}.island-coast #ip-activity-dialog .sa-action{flex-basis:66px}.island-coast #ip-activity-dialog .sa-nav a{padding:5px;font-size:9px}.island-coast #ip-activity-dialog .sa-nav .ip-object{width:30px;height:30px;flex-basis:30px}}
@media(prefers-reduced-motion:reduce){.island-coast #ip-activity-dialog[open]{animation:none}.island-coast #ip-activity-dialog .sa-activity{transition:none}}
.island-coast #ip-zukan .zk-cat{min-height:44px;border:1px solid #dfd5bf;border-radius:13px;background:#fffcf4;color:var(--island-ui-ink)}
.island-coast #ip-zukan .zk-cat.on{background:var(--island-ui-active);color:var(--island-ui-ink);border-color:#58cfc7;box-shadow:var(--island-ui-aqua-shadow)}
.island-coast #ip-zukan .zk-c{border:1px solid var(--island-ui-line);border-radius:18px;background:var(--island-ui-utility);box-shadow:var(--island-ui-raised)}
.island-coast :is(#ip-bubble,#ip-walker) button{min-height:44px;border-radius:13px}
.island-coast #ip-bubble .yes{background:var(--island-ui-active);color:var(--island-ui-ink);border:1px solid #58cfc7;box-shadow:var(--island-ui-aqua-shadow)}
.island-coast #ip-sh-card{background:var(--island-ui-paper)!important;color:var(--island-ui-ink)!important;border:1px solid var(--island-ui-line);border-radius:24px!important;box-shadow:var(--island-ui-panel-shadow)!important}
.island-coast #ip-sh-card button{min-height:46px;border-radius:13px!important}
.island-coast #ip-sh-card .ip-sh-action{background:#fffcf4!important;color:var(--island-ui-ink)!important;border:1px solid #dfd5bf!important;box-shadow:0 2px 0 #c7bea34d}
.island-coast #ip-sh-card .ip-sh-action.primary{background:var(--island-ui-active)!important;color:var(--island-ui-ink)!important;border-color:#58cfc7!important;box-shadow:var(--island-ui-aqua-shadow)}
.island-coast .ic-leaving #ic-ui{opacity:0;transition:opacity .18s}

/* Arrange contains the original edit controls, with removal made deliberate. */
#ic-ui #ic-arrange{width:min(440px,calc(100vw - 24px));padding:20px 18px 22px}
#ic-ui #ic-arrange-copy{color:var(--island-ui-muted);font-size:13px;line-height:1.65;margin-bottom:16px}
#ic-ui .ic-arrange-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:13px}
#ic-ui button.ic-arrange-action{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:5px;min-width:0;min-height:156px;padding:8px 9px 13px;border:1px solid var(--island-ui-line);border-radius:21px;background:var(--island-ui-utility);box-shadow:var(--island-ui-raised);font:inherit;color:var(--island-ui-ink)}
#ic-ui .ic-arrange-action .ip-object{width:76px;height:76px;flex-shrink:0}
#ic-ui .ic-arrange-action .lbl{font-size:16px;font-weight:800;line-height:1.4}
#ic-ui .ic-arrange-detail{font-size:11px;line-height:1.5;color:var(--island-ui-muted)}
#ic-ui button.ic-arrange-delete{background:linear-gradient(180deg,#fffaf1,#f9e8dc);border-color:#dec0b1;color:var(--island-ui-danger);box-shadow:inset 0 2px 0 #fff,0 4px 0 #c7a596,0 7px 12px #59312117}
#ic-ui .ic-arrange-delete .ic-arrange-detail{color:#8b5d52}
#ic-ui button.ic-arrange-action.on{outline:3px solid var(--island-ui-focus);outline-offset:3px}
#ic-ui button.ic-arrange-delete.on{outline-color:var(--island-ui-danger)}
#ic-ui #ic-edit-done{background:var(--island-ui-active);border-color:#58cfc7;color:var(--island-ui-ink);box-shadow:var(--island-ui-aqua-shadow)}

/* Terrain painting keeps its canonical swatch, instructions and finish button
   above the measured dock. Its finish replaces the duplicate generic edit exit. */
.island-coast #ip-paint{box-sizing:border-box;width:min(360px,calc(100vw - 24px - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px)));max-width:none;min-height:64px;bottom:var(--ic-bar-inset);grid-template-columns:16px minmax(0,1fr) auto;gap:10px;padding:8px 12px;border:1px solid var(--island-ui-line);border-radius:20px;background:var(--island-ui-paper);color:var(--island-ui-ink);box-shadow:var(--island-ui-raised);font-family:inherit;z-index:40}
.island-coast #ip-paint.on{display:grid}
.island-coast #ip-paint .pd{box-sizing:border-box;width:16px;height:16px;border-radius:5px;border-color:#547866}
.island-coast #ip-paint>span{min-width:0;line-height:1.4}
.island-coast #ip-paint .pt{font-size:13px;color:var(--island-ui-ink)}
.island-coast #ip-paint .ps{font-size:11px;white-space:normal;color:var(--island-ui-muted)}
.island-coast #ip-paint button{box-sizing:border-box;min-height:44px;min-width:64px;margin:0;padding:8px 12px;border:1px solid #58cfc7;border-radius:13px;background:var(--island-ui-active);color:var(--island-ui-ink);box-shadow:var(--island-ui-aqua-shadow);font-size:13px;font-weight:800;line-height:1.4;white-space:nowrap}
.island-coast body:has(#ip-paint.on) #ic-edit-done{display:none}

/* Build and catalog keep actual costs, locks, ownership and progress legible. */
.island-coast #ip-menu-list{padding:5px 3px 11px;gap:12px;scroll-padding-inline:3px}
.island-coast #ip-menu .ip-mi.sel{outline:3px solid #347e31;outline-offset:1px;background:linear-gradient(180deg,#faffef,#e2f6ce)}
.island-coast #ip-menu .ip-mi .req{font-size:11px;line-height:1.5;color:var(--island-ui-muted)}
.island-coast #ip-menu .ip-mi .free{color:#2c6839}
.island-coast #ip-menu-cap{font-size:12px;line-height:1.5;color:var(--island-ui-muted);padding:4px 2px}
.island-coast #ip-menu-cap.atcap .n,.island-coast #ip-menu-cap .warm{color:var(--island-ui-danger)}
.island-coast #ip-zukan{box-sizing:border-box;max-height:82dvh;padding:14px 15px calc(18px + env(safe-area-inset-bottom,0px))}
.island-coast #ip-zukan .zk-hero{background:linear-gradient(180deg,#e6fcf3,#d6f3e9);border:1px solid #b9ddce;border-radius:20px;box-shadow:inset 0 2px 0 #fff,0 3px 0 #9cbbb044;transform:none}
.island-coast #ip-zukan .zk-h1{font-size:23px;color:var(--island-ui-ink)}
.island-coast #ip-zukan :is(.zk-kick,.zk-sub,.zk-nm small){color:var(--island-ui-muted)}
.island-coast #ip-zukan .zk-meter{background:#ccdcd1;box-shadow:inset 0 1px 3px #123e5020}
.island-coast #ip-zukan .zk-meter i{background:var(--island-ui-grow);box-shadow:inset 0 1px 0 #efffd7}
.island-coast #ip-zukan .zk-cats{gap:8px;padding:2px 2px 6px;margin-inline:0;scroll-padding-inline:2px}
.island-coast #ip-zukan .zk-grid{gap:12px 10px;padding:1px 2px 8px}
.island-coast #ip-zukan .zk-well{height:76px;background:linear-gradient(180deg,#f0f8de,#e1ecca);border-radius:13px}
.island-coast #ip-zukan .zk-well img{max-height:70px}
.island-coast #ip-zukan .zk-c.ghost{box-shadow:inset 0 1px 0 #fff,0 2px 0 #cfc9ba;background:#f2eee3;border-style:dashed}
.island-coast #ip-zukan .zk-nm{font-size:12px;line-height:1.4}
.island-coast #ip-zukan .zk-nm small{font-size:10px}

/* Practice has one aqua next step even when every game room is guarded. */
.island-coast #ip-activity-dialog .sa-nav{gap:10px;padding-bottom:4px}
.island-coast #ip-activity-dialog .sa-nav a{min-height:62px;font-size:12px;font-weight:750;background:var(--island-ui-utility);box-shadow:var(--island-ui-raised);border-radius:16px}
.island-coast #ip-activity-dialog .sa-nav a:first-child{background:var(--island-ui-active);border-color:#58cfc7;color:var(--island-ui-ink);box-shadow:var(--island-ui-aqua-shadow)}
.island-coast #ip-activity-dialog .sa-nav .ip-object{width:38px;height:38px;flex-basis:38px}
.island-coast #ip-activity-dialog .sa-action{font-weight:800}
.island-coast #ip-activity-dialog .sa-activity[data-activity=farm] .sa-action{background:var(--island-ui-grow);border-color:#8bd76a;box-shadow:var(--island-ui-green-shadow)}
.island-coast #ip-quest :is(.qsub,.qask,.qisland .qnm small),.island-coast #ip-activity-dialog :is(.saplay-kicker,.sa-detail,#ip-activity-intro){color:var(--island-ui-muted)}

/* Sharing, visitors, requests and construction crews use the same sheet family.
   These legacy sheets set presentation inline, so the scoped overrides are intentional. */
.island-coast :is(#ip-sh-sheet,#ip-crew-modal,#ip-req-modal){background:#123e5042!important;backdrop-filter:blur(3px);box-sizing:border-box;padding:12px}
.island-coast #ip-sh-card{box-sizing:border-box;width:min(440px,100%)!important;max-width:440px!important;max-height:calc(100dvh - 32px - env(safe-area-inset-bottom,0px));overflow:auto;padding:22px!important;line-height:1.55}
.island-coast :is(#ip-crew,#ip-req-modal>div){box-sizing:border-box;width:min(520px,100%)!important;max-height:calc(100dvh - 36px - env(safe-area-inset-bottom,0px))!important;overflow:auto;background:var(--island-ui-paper)!important;color:var(--island-ui-ink)!important;border:2px solid #fffcf3!important;border-radius:27px!important;box-shadow:var(--island-ui-panel-shadow)!important;padding:20px 18px calc(20px + env(safe-area-inset-bottom,0px))!important;font-family:inherit!important}
.island-coast #ip-crew-hd{font-size:22px!important;line-height:1.45;margin-bottom:6px!important}
.island-coast #ip-crew-sub{color:var(--island-ui-muted)!important;font-size:13px!important;line-height:1.6}
.island-coast #ip-crew-list{gap:9px!important;padding:4px 2px 7px}
.island-coast :is(#ip-crew button,#ip-req-modal button){min-height:46px;border-radius:15px!important;font-family:inherit!important;line-height:1.5}
.island-coast :is(#ip-crew-list button,#ip-crew-later,#ip-req-close,#ip-req-list button){background:var(--island-ui-utility)!important;color:var(--island-ui-ink)!important;border:1px solid var(--island-ui-line)!important;box-shadow:var(--island-ui-raised)}
.island-coast #ip-crew-go{background:var(--island-ui-grow)!important;color:var(--island-ui-ink)!important;border:1px solid #8bd76a!important;box-shadow:var(--island-ui-green-shadow)}
.island-coast #ip-req-list{gap:12px!important;padding:3px 1px 5px}
.island-coast #ip-sh-card :is(.fr-go,.fr-gift,.fr-pick,.fr-rm){display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-height:44px;padding:8px 12px!important;border:1px solid var(--island-ui-line)!important;border-radius:13px!important;background:var(--island-ui-utility)!important;color:var(--island-ui-ink)!important;font-weight:700;text-decoration:none;box-shadow:inset 0 1px 0 #fff,0 2px 0 #c8bfa6}
.island-coast #ip-sh-card .fr-go{background:var(--island-ui-active)!important;border-color:#58cfc7!important;box-shadow:var(--island-ui-aqua-shadow)}
.island-coast #ip-sh-card .fr-rm{color:var(--island-ui-danger)!important;background:#fceee5!important;border-color:#dfbaa8!important}
.island-coast #ip-sh-x{color:var(--island-ui-muted)!important;font-weight:700}
.island-coast :is(#ip-sh-card,#ip-crew,#ip-req-modal) :is(input:not([type=checkbox]),textarea,select){box-sizing:border-box;max-width:100%;min-height:46px;border:1px solid #adc6c1!important;border-radius:13px!important;background:#fffef8!important;color:var(--island-ui-ink)!important;padding:10px 12px!important;font:inherit;box-shadow:inset 0 2px 3px #123e5010}
.island-coast #ip-sh-card input[type=checkbox]{accent-color:#098f9e}
.island-coast #ip-sh-card label:has(input[type=checkbox]){display:flex;align-items:center;min-height:44px;gap:8px}
.island-coast :is(#ip-bubble,#ip-walker){border:1px solid var(--island-ui-line);box-shadow:var(--island-ui-panel-shadow)}
.island-coast #ip-bubble :is(.no,.close),.island-coast #ip-walker #ip-wk-gift{background:var(--island-ui-utility);border:1px solid var(--island-ui-line);color:var(--island-ui-ink);box-shadow:var(--island-ui-raised)}
.island-coast #ip-walker :is(#ip-wk-jp,#ip-wk-mark,#ip-wk-rest){color:var(--island-ui-muted)!important;line-height:1.55}

/* Tutorial layout stays measured by its controller; only its material changes. */
.island-coast #ip-onb{background:var(--island-ui-paper);color:var(--island-ui-ink);border:2px solid #fffdf5;border-radius:25px;box-shadow:var(--island-ui-panel-shadow);font-family:inherit}
.island-coast #ip-onb .tag{background:linear-gradient(180deg,#ef8b70,#d66c58);color:#4b201f;box-shadow:0 2px 0 #a55143}
.island-coast #ip-onb .say b{color:#126879}
.island-coast #ip-onb .n{color:var(--island-ui-muted)}
.island-coast #ip-onb .dots i{background:#ddd5be;border:1px solid #c9bfa8;box-sizing:border-box}
.island-coast #ip-onb .dots i.on{background:#149ca8;border-color:#0b7587;box-shadow:0 0 0 2px #c8f1e9}
.island-coast #ip-onb .cta{min-height:46px;background:var(--island-ui-active);border:1px solid #58cfc7;border-radius:16px;color:var(--island-ui-ink);box-shadow:var(--island-ui-aqua-shadow)}
.island-coast #ip-onb-greet{background:var(--island-ui-active);border-color:#58cfc7;color:var(--island-ui-ink);box-shadow:var(--island-ui-aqua-shadow)}
.island-coast #ip-onb-card button{background:var(--island-ui-grow);color:var(--island-ui-ink);border:2px solid #ddffbc;border-radius:23px;box-shadow:var(--island-ui-green-shadow);font-family:inherit}
.island-coast #ip-onb-card :is(.nm,.cost){color:var(--island-ui-ink)}
.island-coast #ip-onb-card .th{background-color:#edffd8;box-shadow:inset 0 2px 0 #fff}
.island-coast #ip-onb-card .rib{background:var(--island-ui-utility);color:#365b34;box-shadow:0 2px 0 #9db582}
.island-coast #ip-onb-skip{box-sizing:border-box;min-height:44px;border-radius:14px;padding:10px 15px;background:#fff8e7ee;color:var(--island-ui-ink);text-shadow:none;text-underline-offset:3px}

/* Input state is visible without relying on hue alone. */
.island-coast :is(#ic-ui,#ip-tools,#ip-menu,#ip-quest,#ip-zukan,#ip-activity-dialog,#ip-sel,#ip-bubble,#ip-walker,#ip-paint,#ip-onb,#ip-sh-card,#ip-crew,#ip-req-modal) :is(button,a,input,textarea,select,[tabindex]):focus-visible{outline:3px solid var(--island-ui-focus);outline-offset:3px;box-shadow:0 0 0 3px #fff,0 0 0 6px var(--island-ui-focus)}
.island-coast #ip-home:focus-visible,.island-coast #ip-era:focus-visible{outline:3px solid var(--island-ui-focus);outline-offset:3px;box-shadow:0 0 0 3px #fff,0 0 0 6px var(--island-ui-focus)}
.island-coast :is(#ic-ui,#ip-menu,#ip-zukan,#ip-activity-dialog,#ip-sel,#ip-bubble,#ip-paint,#ip-sh-card,#ip-crew,#ip-req-modal) :is(button:disabled,[aria-disabled=true]),.island-coast #ip-menu .ip-mi.locked{background:#edece1!important;color:#63706b!important;border-color:#c9cec1!important;border-style:dashed!important;box-shadow:inset 0 1px 0 #fff!important;opacity:1;cursor:not-allowed;transform:none}
.island-coast #ip-menu .ip-mi.locked :is(.nm,.cost,.req){color:#63706b}
.island-coast #ip-menu .ip-mi.locked .th{opacity:.58}
.island-coast :is(#ip-sh-card,#ip-crew,#ip-req-modal) [aria-invalid=true]{border:2px solid var(--island-ui-danger)!important;background:#fff3ed!important}
.island-coast #ip-status{background:#123e50ed;color:#fff8e7;border:1px solid #ffffff40;font-size:13px;line-height:1.5}
.island-coast #ip-status .bad{color:#ffd1be}.island-coast #ip-status .good{color:#c9f4b0}

@media(hover:hover){
 .island-coast #ip-tools button:not(:disabled):hover{transform:translateY(-2px)}
 #ic-ui :is(.ic-primary,.ic-secondary,.ic-arrange-action):not(:disabled):hover,.island-coast #ip-menu .ip-mi:not(.locked):hover{outline:2px solid #3a87917a;outline-offset:2px}
 .island-coast #ip-activity-dialog .sa-nav a:hover{outline:2px solid #3a87917a;outline-offset:2px}
}
@media(max-width:374px){
 .island-coast #ip-tools{gap:5px;padding:10px 7px 9px;border-radius:24px}
 .island-coast #ip-quest .qhero{width:72px;height:72px;flex-basis:72px}
 .island-coast #ip-tools button{height:89px;min-height:89px;margin-top:-17px;padding-bottom:8px}
 .island-coast #ip-tools button::before{top:18px;border-radius:16px}
 .island-coast #ip-tools button .ip-object{width:62px;height:62px;bottom:24px}
 .island-coast #ip-tools :is(#ip-play-btn,[data-tool=build]){height:99px;min-height:99px;margin-top:-27px}
 .island-coast #ip-tools :is(#ip-play-btn,[data-tool=build]) .ip-object{width:74px;height:74px;bottom:23px}
 .island-coast #ip-tools button .lbl{font-size:12px}.island-coast #ip-tools :is(#ip-play-btn,[data-tool=build]) .lbl{font-size:13px}
 .island-coast #ip-home{padding-right:8px}.island-coast #ip-home .hj{font-size:12px}
 .island-coast #ip-wallet .tok{padding-right:6px;padding-left:5px;gap:3px}.island-coast #ip-wallet .tok b{font-size:12px}
 .island-coast #ic-ui button.ic-object-action .ip-object{width:62px;height:62px;flex-basis:62px}#ic-ui .ic-action-label{font-size:12px}
 .island-coast #ic-drawer button.ic-object-action img.ip-object[src$="/lessons.webp"]{width:56px;height:56px;flex-basis:56px}
 .island-coast #ip-activity-dialog .sa-nav a{font-size:11px;padding:6px;gap:3px}.island-coast #ip-activity-dialog .sa-nav .ip-object{width:30px;height:30px;flex-basis:30px}
 .island-coast #ip-sh-card{padding:18px!important}.island-coast #ip-zukan .zk-grid{gap:10px 7px}
}
@media(min-width:375px) and (max-width:479px){.island-coast #ic-ui button.ic-object-action .ip-object{width:64px;height:64px;flex-basis:64px}}
@media(min-width:480px){
 .island-coast #ic-ui button.ic-object-action{gap:7px;padding:7px 5px;min-height:110px}
 .island-coast #ic-ui button.ic-object-action .ip-object{width:84px;height:84px;flex-basis:84px}#ic-ui .ic-action-label{font-size:15px}
 #ic-drawer{padding:22px 20px}#ic-drawer h2{font-size:26px}
}
@media(min-width:800px){
 .island-coast #ip-tools{width:540px;max-width:calc(100vw - 24px - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px))}
 .island-coast #ip-tools button{height:115px;min-height:115px;margin-top:-24px}
 .island-coast #ip-tools button::before{top:24px}
 .island-coast #ip-tools button .ip-object{width:88px;height:88px;bottom:27px}
 .island-coast #ip-tools :is(#ip-play-btn,[data-tool=build]){height:126px;min-height:126px;margin-top:-35px}
 .island-coast #ip-tools :is(#ip-play-btn,[data-tool=build])::before{top:25px}
 .island-coast #ip-tools :is(#ip-play-btn,[data-tool=build]) .ip-object{width:101px;height:101px;bottom:28px}
 .island-coast #ip-tools button .lbl{font-size:15px}.island-coast #ip-tools :is(#ip-play-btn,[data-tool=build]) .lbl{font-size:18px}
 #ic-place,#ic-drawer,#ic-arrange{margin:auto 24px 24px}
 .island-coast body[data-island-phase="edit"] .ic-camera{left:auto;right:18px;transform:none}
}
@media(max-height:500px) and (orientation:landscape){
 .island-coast #ip-tools{padding-top:7px;max-width:430px}
 .island-coast #ip-tools button{height:82px;min-height:82px;margin-top:-18px}.island-coast #ip-tools button::before{top:18px}
 .island-coast #ip-tools button .ip-object{width:62px;height:62px;bottom:21px}
 .island-coast #ip-tools :is(#ip-play-btn,[data-tool=build]){height:91px;min-height:91px;margin-top:-27px}
 .island-coast #ip-tools :is(#ip-play-btn,[data-tool=build])::before{top:19px}
 .island-coast #ip-tools :is(#ip-play-btn,[data-tool=build]) .ip-object{width:71px;height:71px;bottom:23px}
 .island-coast #ip-tools button .lbl{font-size:12px}.island-coast #ip-tools :is(#ip-play-btn,[data-tool=build]) .lbl{font-size:14px}
 #ic-drawer{margin:auto;width:min(660px,calc(100vw - 32px));padding:12px 18px}#ic-drawer h2{margin-top:2px;margin-bottom:7px;padding-bottom:9px;font-size:21px}
 .island-coast #ic-ui button.ic-object-action{min-height:69px;padding:2px 8px}.island-coast #ic-ui button.ic-object-action .ip-object{width:64px;height:64px;flex-basis:64px}
 #ic-ui .ic-arrange-action .ip-object{width:56px;height:56px}#ic-ui button.ic-arrange-action{min-height:130px}
 .ic-camera{display:none!important}
}
@keyframes ic-rise{from{transform:translateY(10px);opacity:.2}to{transform:translateY(0);opacity:1}}
@media(prefers-reduced-motion:reduce){
 .island-coast :is(#ic-ui,#ip-tools,#ip-menu,#ip-quest,#ip-zukan,#ip-activity-dialog,#ip-sel,#ip-bubble,#ip-walker,#ip-paint,#ip-onb,#ip-onb-card,#ip-happy,#ip-sh-card,#ip-crew,#ip-req-modal),
 .island-coast :is(#ic-ui,#ip-tools,#ip-menu,#ip-quest,#ip-zukan,#ip-activity-dialog,#ip-sel,#ip-bubble,#ip-walker,#ip-paint,#ip-onb,#ip-onb-card,#ip-happy,#ip-sh-card,#ip-crew,#ip-req-modal) *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
 .island-coast #ip-tools button:not(:disabled):hover{transform:none}
 .island-coast .ic-leaving #ic-ui{transition:none}
}
