@font-face{font-family:Fraunces;src:url('./fonts/Fraunces.ttf') format('truetype');font-weight:100 900;font-display:swap}
@font-face{font-family:'Source Sans 3';src:url('./fonts/SourceSans3-Regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Source Sans 3';src:url('./fonts/SourceSans3-Semibold.woff2') format('woff2');font-weight:600 900;font-display:swap}
:root{--cream:#FFF7E8;--forest:#173F35;--ink:#18352B;--muted:#52665B;--amber:#E5AD4A;--parchment:#F4EBD9;--sage:#DCE8D5;--error:#9B3C39;--ui:'Source Sans 3',sans-serif;--heading:Fraunces,Georgia,serif;--space:8px}
body{font-family:var(--ui);font-size:1rem;line-height:1.5;color:var(--ink);background:var(--cream)}
h1,h2,h3,.game-brand h1{font-family:var(--heading);font-weight:600;font-optical-sizing:auto;font-variation-settings:'SOFT' 30,'WONK' 0;line-height:1.15}h1{font-size:1.75rem;line-height:2.25rem}h2{font-size:1.5rem;line-height:2rem}h3{font-size:1.125rem;line-height:1.75rem}
button,input,select,textarea{font-family:var(--ui);font-size:1rem;line-height:1.5rem}button{font-weight:600;min-height:48px;border-radius:12px;padding:8px 16px;background:var(--forest);color:var(--cream);border:1px solid var(--forest);transition:background-color 180ms,color 180ms}button.secondary,button.ghost{background:var(--parchment);color:var(--forest);border:1px solid var(--forest)}button:disabled,.world-view-actions button:disabled{opacity:1;cursor:default;background:var(--parchment);color:var(--muted);border-color:var(--muted)}button.danger{background:var(--error);border-color:var(--error);color:var(--cream)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--forest);outline-offset:2px;box-shadow:0 0 0 6px var(--amber)}
.card,dialog{background:var(--cream);color:var(--ink);border:1px solid var(--muted);border-radius:16px;padding:16px}.muted,.hint,small{color:var(--muted)}.hint{background:var(--sage);color:var(--forest)}.section-head,.space{margin-top:24px}dialog[data-drawer=habits]{border-radius:16px;padding:16px}.habit{gap:8px}.habit-actions{gap:8px}.pill,.tag{background:var(--sage);color:var(--forest)}.bar{background:var(--sage)}.bar i{background:var(--forest)}.top{color:var(--forest)}
.game-hud.island-experience{color:var(--ink);background:var(--parchment);height:100dvh;min-height:640px}.game-top{gap:8px;padding:8px 16px;background:var(--forest);color:var(--cream);border-bottom:2px solid var(--amber);box-shadow:none;flex-wrap:wrap}.game-brand>span{font:600 .875rem/1.25rem var(--ui);letter-spacing:.12em;color:var(--cream)}.game-brand h1{font:600 1.5rem/2rem var(--heading);margin:0;white-space:normal;overflow-wrap:normal}.game-stats{gap:8px}.game-stats>span{padding:4px 8px;background:var(--forest);border:1px solid var(--sage);border-radius:12px;color:var(--cream);font-size:1rem;font-variant-numeric:tabular-nums}.game-stats small{font:400 .875rem/1.25rem var(--ui);color:var(--cream)}.game-stats button{font:600 1rem/1.5rem var(--ui);min-height:48px;padding:8px;background:var(--forest);border:1px solid var(--sage);color:var(--cream);border-radius:12px}
.game-hud .region-jumps{max-width:none;gap:8px;padding:8px 16px;background:var(--parchment);border-bottom:1px solid var(--muted)}.game-hud .region-jumps button{font:600 1rem/1.5rem var(--ui);min-height:48px;padding:8px 16px;color:var(--forest);background:var(--parchment);border:1px solid var(--muted);border-radius:12px}.game-hud .region-jumps button[aria-current=true]{background:var(--forest);color:var(--cream);border:1px solid var(--forest);box-shadow:inset 0 -3px var(--amber)}
.world-toolbar{padding:8px 16px;gap:8px;background:var(--cream);border-top:1px solid var(--muted)}.companion-summary{gap:8px}.companion-summary button,.world-toolbar button{font:600 1rem/1.5rem var(--ui);min-height:48px;padding:8px 12px;background:var(--cream);color:var(--forest);border:1px solid var(--muted);border-radius:12px}.companion-summary small{font-size:.875rem;line-height:1.25rem;color:var(--muted)}.game-hud .world-view-actions{gap:8px}.game-hud .camera-extra{gap:8px;padding:16px;background:var(--sage);grid-template-columns:repeat(auto-fit,minmax(112px,1fr))}.game-hud .camera-extra button{font:600 1rem/1.5rem var(--ui);min-height:48px;border-radius:12px;padding:8px}
.game-dock{gap:8px;padding:8px 16px;background:var(--parchment);border-top:1px solid var(--muted);display:flex;flex-wrap:wrap}.game-dock button{font:600 1rem/1.5rem var(--ui);flex:1 0 20%;min-width:max-content;min-height:64px;padding:8px;border-radius:12px;border:1px solid var(--forest);box-shadow:none;color:var(--forest);background:var(--cream);overflow-wrap:normal}.game-dock button[aria-current=true],.game-dock button[aria-current=page]{background:var(--forest);color:var(--cream);box-shadow:inset 0 -3px var(--amber)}.game-dock button>span{font-family:var(--ui);font-size:1.5rem;line-height:1.5rem;margin-bottom:4px}.game-dock small{font-size:.875rem;color:inherit;font-variant-numeric:tabular-nums}.game-footnote{font:400 .875rem/1.25rem var(--ui);padding:4px 8px max(8px,env(safe-area-inset-bottom));color:var(--cream);background:var(--forest)}.game-hud button:focus-visible{outline:3px solid var(--forest);outline-offset:2px;box-shadow:0 0 0 6px var(--amber)}.game-hud .world-toolbar .companion-summary button{min-height:48px}
@media(max-width:420px){.game-top{padding:8px}.game-brand h1{font-size:1.5rem}.world-toolbar,.game-dock,.game-hud .region-jumps{padding-left:8px;padding-right:8px}.world-toolbar .companion-summary{width:100%}.companion-summary small{display:none}.game-dock button{padding:8px 4px}}
@media(max-height:520px) and (min-width:600px){.game-hud.island-experience{min-height:390px}.game-top{padding:4px 16px}.game-brand>span{display:none}.game-brand h1{font-size:1.5rem;line-height:2rem}.game-hud .region-jumps{padding-top:4px;padding-bottom:4px}.game-hud #island-stage{min-height:160px}.world-toolbar{padding-top:4px;padding-bottom:4px}.game-dock{padding-top:4px;padding-bottom:4px}.game-dock button{min-height:48px;display:flex;align-items:center;justify-content:center;gap:8px}.game-dock button>span{margin:0}.game-footnote{padding-top:4px;padding-bottom:4px}}
@media(prefers-reduced-motion:reduce){button{transition:none}}
.reduce button{transition:none}
/* Sky-compatible utility layer: one fixed track; secondary actions disclose above it. */
:root{--forest:#244C66;--ink:#233E52;--muted:#526775;--cream:#FFF9EF;--parchment:#EDF4F8;--sage:#D6E8F3;--amber:#E5AD4A}
.game-top{background:#EDF4F8;color:var(--ink);border-bottom:1px solid #91AABA}.game-brand>span{color:var(--muted)}.game-stats>span,.game-stats button{background:#FFF9EF;color:var(--ink);border-color:#91AABA}.game-stats small{color:var(--muted)}
.game-footnote{background:#EDF4F8;color:var(--ink)}.game-hud .world-toolbar{position:relative;display:flex;flex-flow:row nowrap;align-items:center;justify-content:space-between;height:64px;min-height:64px;max-height:64px;flex:0 0 64px;padding:8px;overflow:visible;background:#F8FBFD;border-color:#91AABA;z-index:5}.game-hud .companion-summary{width:auto;min-width:0;flex:1;display:flex}.game-hud .companion-summary small{display:none}.game-hud .companion-summary button{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;height:48px}.game-hud [data-action=world-more]{flex:none;height:48px}.game-hud .world-view-actions{position:absolute;bottom:100%;right:8px;left:8px;display:flex;flex-wrap:wrap;background:#F8FBFD;border:1px solid #91AABA;border-radius:16px;padding:12px;box-shadow:0 -4px 24px #233e5220;max-height:50dvh;overflow:auto}.game-hud .world-view-actions[hidden],.game-hud .camera-extra[hidden]{display:none}.game-hud .camera-extra{position:absolute;bottom:160px;left:8px;right:8px;z-index:7;max-height:45dvh;overflow:auto;border:1px solid #91AABA;border-radius:16px;background:#EDF4F8;box-shadow:0 -4px 24px #233e5220}.game-hud.island-experience{position:relative}.game-hud .world-toolbar button{background:#FFF9EF;color:#244C66}.game-hud .world-view-actions button:disabled{background:#EDF4F8;color:#526775}
.game-hud .world-toolbar>.companion-summary button,.game-hud .world-toolbar>[data-action=world-more]{padding:0 12px;line-height:1.25rem}
/* Shared journal and field-guide surfaces. */
body{background:#EDF4F8;color:#233E52}.shell .top{background:#F8FBFD;border-color:#C0D1DD}.brand{color:#244C66}.page{max-width:1120px;margin:0 auto;padding:24px 16px 112px}.page-heading h1,.heading h1{font-family:var(--heading)}.card{border:1px solid #C0D1DD;background:#FFFDF8;box-shadow:0 4px 16px #244c6607;padding:24px;border-radius:16px}.hint{background:#E7F1F7;color:#244C66;border-color:#C0D1DD}.muted,.footer-note{color:#526775}.pill{background:#E7F1F7;color:#244C66}.mobile-nav{background:#F8FBFD;border-color:#C0D1DD;padding:8px 4px max(8px,env(safe-area-inset-bottom));gap:2px}.mobile-nav button{color:#526775;min-width:0;font:600 .875rem/1.25rem var(--ui);padding:8px 2px;min-height:56px;border-radius:12px}.mobile-nav button.active,.top nav button.active{background:#244C66;color:#FFF9EF}.date-nav{display:flex;flex-wrap:wrap;align-items:end;gap:8px;margin:24px 0}.date-nav label{margin:0;flex:1;min-width:144px;max-width:260px;color:#526775;font-size:.875rem}.date-nav input{min-height:48px;margin:0;background:#FFFDF8}.date-nav>button{min-width:48px}.journal-summary{display:flex;align-items:center;flex-wrap:wrap;gap:24px;border:1px solid #C0D1DD;border-radius:16px;padding:24px;background:#DDECF6;margin-bottom:24px}.journal-summary>div{display:flex;flex-direction:column;flex:1;min-width:130px}.journal-summary strong{font:600 1.75rem/2.25rem var(--heading);font-variant-numeric:tabular-nums}.journal-summary span{color:#526775;font-size:.875rem}.practice-list .row{flex-wrap:wrap;gap:12px}.journal-entry{display:block;padding:24px 0;border-bottom:1px solid #D8E3EA}.journal-entry:last-of-type{border-bottom:0}.entry-state{display:inline-block;color:#244C66;background:#E7F1F7;padding:4px 8px;border-radius:8px;font-size:.875rem}.journal-entry h3{font:600 1.5rem/2rem var(--heading);margin:12px 0 4px}.journal-entry.done{background:transparent}.target-pair{display:grid;gap:8px;margin:12px 0}.target-pair>span{display:block;color:#526775}.target-pair b{display:block;color:#233E52}.journal-entry .habit-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.journal-entry .habit-actions button{flex:1;min-width:135px}.guide-filters{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0}.guide-filters button[aria-pressed=true]{background:#244C66;color:#FFF9EF}.catalog .card{display:flex;flex-direction:column}.catalog .card .space{margin-top:auto;padding-top:16px}.catalog .animal-card-art{border-radius:12px;background:#E7F1F7}.week{gap:4px}.week .day{min-width:0;min-height:64px;padding:8px 2px;background:#EDF4F8;color:#244C66;border:1px solid #C0D1DD}.week .day.yes{background:#244C66;color:#FFF9EF}.week .day span,.week .day b{display:block}.stats{gap:16px}.stat strong{font-family:var(--heading)}.top nav button{color:#244C66}.page h1{font:600 2rem/2.5rem var(--heading);overflow-wrap:normal}.page h2{font:600 1.5rem/2rem var(--heading)}
@media(max-width:600px){.card{padding:16px}.page{padding:20px 12px 112px}.journal-summary{padding:16px;gap:16px}.date-nav{margin:16px 0}.date-nav>button:last-child{flex:1}.habit{flex-wrap:wrap}.habit-body{min-width:0}.mobile-nav{flex-wrap:wrap}.mobile-nav button{flex:1;overflow-wrap:normal}.grid{gap:16px}.catalog{grid-template-columns:1fr}}
.week .day b{background:transparent;color:inherit;border-radius:0}.page{padding-bottom:calc(9rem + env(safe-area-inset-bottom))}.mobile-nav button{flex:1 0 auto;min-width:max-content}.mobile-nav{flex-wrap:wrap}
.date-nav input{width:100%;min-width:0;max-width:100%}
.game-hud .game-brand h1{font:600 1.5rem/2rem var(--heading);margin:0}
