/* Pass 01 measurements are a visual specification, not inherited style code. */
/* Pass 22 — bright/light tokens; Pass 01 geometry and navigation remain unchanged. */
*{box-sizing:border-box}html{scroll-behavior:auto;touch-action:manipulation;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font:400 var(--type-ui-body)/1.6 var(--font-ui);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input,select,textarea{font:inherit}button{cursor:pointer;color:inherit}button:disabled{opacity:.38;cursor:not-allowed}button,select,input,textarea{outline-offset:3px}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--copper)}a{color:inherit}p{margin:0}h1,h2,h3{font-family:var(--head);letter-spacing:-.028em;margin:0;font-weight:700;line-height:1.35}h1{font-size:23px}h2{font-size:20px}h3{font-size:16px}.glyph{flex:0 0 auto;vertical-align:middle}button .glyph{pointer-events:none}.skip-link{position:absolute;left:10px;top:-80px;padding:8px;background:var(--white);z-index:10000}.skip-link:focus{top:calc(10px + var(--safe-top))}.app-shell{max-width:1050px;margin:auto;padding:20px 16px calc(96px + env(safe-area-inset-bottom,0px));min-height:calc(100dvh - 69px)}.app-header{height:calc(69px + var(--safe-top));padding-top:var(--safe-top);background:var(--white);border-bottom:1px solid var(--outline-faint);position:relative;z-index:15}.header-inner{max-width:1050px;margin:auto;padding:0 16px;height:100%;display:flex;align-items:center;justify-content:space-between}.brand{border:0;background:transparent;padding:0;display:flex;align-items:center;gap:8px;text-align:left;color:var(--ink);text-decoration:none}.brand-logo{position:relative;flex:0 0 42px;width:42px;height:42px;display:grid;place-items:center;isolation:isolate;border:1px solid #d8b7a5;border-radius:13px;background:#fff9f5;color:var(--copper-strong);box-shadow:inset 0 0 0 3px #fff,0 1px 2px rgba(63,33,20,.045)}.brand-logo:before{content:"";position:absolute;inset:5px;border:1px solid rgba(167,70,36,.18);border-radius:50%}.brand-monogram{position:relative;z-index:1;display:block;font:700 29px/.95 var(--head);transform:translate(-1px,0);letter-spacing:-.06em}.brand-plate{position:absolute;left:10px;right:10px;bottom:8px;height:7px;border-bottom:1.3px solid var(--copper);border-radius:0 0 50% 50%;opacity:.9}.brand-copy{display:flex;flex-direction:column;justify-content:center;min-width:0;line-height:1.15}.brand-title{display:block;font:700 21px/1.2 var(--head);color:var(--ink);letter-spacing:-.035em;white-space:nowrap}.brand-title em{font-style:normal;color:var(--copper-strong);margin-left:2px}.brand-copy small{font:400 9px/1.6 var(--head);color:var(--text-secondary);margin-top:4px;white-space:nowrap}.header-tools{display:flex}.menu-trigger{width:48px;height:48px;min-width:48px;min-height:48px;display:grid;place-items:center;border-radius:16px;border:1px solid var(--outline);background:var(--surface-elevated);box-shadow:0 2px 10px rgba(75,42,26,.045);color:var(--copper);transition:background .25s ease,transform .25s ease,box-shadow .25s ease}.menu-trigger:hover{background:var(--surface-tint);box-shadow:0 5px 15px rgba(75,42,26,.085);transform:translateY(-1px)}.menu-trigger:active{transform:scale(.96)}.menu-trigger[aria-expanded="true"]{background:var(--accent-subtle);border-color:var(--outline-strong)}.rb-hamburger{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;width:23px;height:23px}.rb-hamburger i{display:block;width:21px;height:1.8px;border-radius:5px;background:currentColor;transform-origin:center;transition:transform .28s ease,width .28s ease,opacity .2s ease}.rb-hamburger i:nth-child(2){width:15px;align-self:flex-end}.menu-trigger[aria-expanded="true"] .rb-hamburger i:first-child{transform:translateY(5.8px) rotate(45deg)}.menu-trigger[aria-expanded="true"] .rb-hamburger i:nth-child(2){opacity:0;transform:scaleX(.3)}.menu-trigger[aria-expanded="true"] .rb-hamburger i:last-child{transform:translateY(-5.8px) rotate(-45deg)}.section-line{display:flex;justify-content:space-between;gap:10px;align-items:center}.section-line h2{font-size:var(--type-section-title)}.footer{margin:38px 0 8px;padding:20px 2px;border-top:1px solid var(--outline-faint);display:flex;gap:12px;justify-content:space-between;align-items:center;font:400 var(--type-small)/1.5 var(--font-ui);color:var(--muted)}.footer-personal{flex-direction:column;justify-content:center;align-items:center;gap:7px;margin-top:30px;padding:18px 10px 14px;text-align:center}.footer-dedication{display:flex;flex-direction:column;align-items:center;gap:1px;max-width:100%}.footer-dedication-intro{font:400 var(--type-small)/1.5 var(--font-ui);color:var(--text-secondary);letter-spacing:.015em}.footer-dedication-name{font:700 17px/1.4 var(--head);letter-spacing:-.025em;color:var(--copper);position:relative;padding:0 9px 5px}.footer-dedication-name:after{content:"";position:absolute;bottom:0;left:calc(50% - 18px);width:36px;height:1px;background:var(--outline-strong);border-radius:10px}.footer-copyright{font:400 var(--type-micro)/1.5 var(--font-ui);color:var(--muted)}.bottom-nav{position:fixed;bottom:0;left:0;right:0;margin:auto;width:min(100%,520px);background:var(--white);border:1px solid var(--outline);border-bottom:0;border-radius:20px 20px 0 0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:8px 9px calc(4px + env(safe-area-inset-bottom,0px));box-shadow:0 -6px 28px rgba(84,53,28,.04);z-index:20}.bottom-nav .nav-item{grid-row:1;position:relative;z-index:1}.bottom-nav .nav-item:nth-of-type(1){grid-column:1}.bottom-nav .nav-item:nth-of-type(2){grid-column:2}.bottom-nav .nav-item:nth-of-type(3){grid-column:3}.bottom-nav .nav-item:nth-of-type(4){grid-column:4}.bottom-nav .nav-item:nth-of-type(5){grid-column:5}.nav-rail-pill{grid-row:1;position:relative;z-index:0;pointer-events:none;background:var(--accent-subtle);border-radius:14px;animation:rb-nav-pill-travel var(--motion-medium) var(--motion-ease) both}.bottom-nav.is-switching .nav-item.active{background:transparent}.bottom-nav.is-switching .nav-item.active .glyph{animation:rb-nav-icon-enter var(--motion-medium) var(--motion-ease) both}.bottom-nav.is-switching .nav-item.active span{animation:rb-nav-label-enter var(--motion-medium) var(--motion-ease) both}.app-shell.is-tab-entering{animation:rb-tab-content-enter var(--motion-medium) var(--motion-ease) both}@keyframes rb-nav-pill-travel{from{transform:translateX(var(--nav-move));opacity:.86}to{transform:translateX(0);opacity:1}}@keyframes rb-nav-icon-enter{from{transform:translateY(3px) scale(.94)}to{transform:translateY(0) scale(1)}}@keyframes rb-nav-label-enter{from{opacity:.65}to{opacity:1}}@keyframes rb-tab-content-enter{from{opacity:.74}to{opacity:1}}.nav-item{transition:background-color var(--motion-fast) ease,color var(--motion-fast) ease,border-color var(--motion-fast) ease;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:0;background:transparent;min-height:54px;color:var(--text-secondary);border-radius:14px;font:500 var(--type-small)/1.35 var(--font-ui)}.nav-item.active{color:var(--copper);background:var(--accent-subtle);font-weight:700}.nav-item .glyph{width:22px;height:22px}.global-timer{position:fixed;z-index:19;bottom:calc(79px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);border:1px solid var(--outline-strong);background:var(--copper);box-shadow:0 10px 25px #54290e33;color:white;display:flex;align-items:center;justify-content:center;gap:6px;min-width:185px;border-radius:25px;padding:9px 17px;font-size:var(--type-support)}.global-timer[hidden]{display:none!important}body.has-overlay{overflow:hidden}
@media(min-width:700px){.app-shell{padding:26px 24px 115px}.header-inner{padding:0 24px}.bottom-nav{width:480px}.footer{margin-top:48px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.menu-trigger:hover,.menu-trigger:active{transform:none!important}}

/* Pass 45: intentional reading zoom remains available. Double-tap on controls
   must not magnify the layout, and ordinary app chrome should not select. */
#rbApp, #rbDialogs { -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; }
#rbApp :is(input,textarea,[contenteditable="true"]),
#rbDialogs :is(input,textarea,[contenteditable="true"]) {
  -webkit-user-select: text; user-select: text; -webkit-touch-callout: default;
}
#rbApp img, #rbDialogs img { -webkit-user-drag: none; }
/* iOS Safari zooms the entire viewport when an editing control has <16px type.
   Keep this within the common form/control owner, not screen-by-screen patches. */
@media (max-width: 900px), (pointer: coarse) {
  #rbApp :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea),
  #rbDialogs :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea) {
    font-size: 16px;
  }
}

/* Pass 47: footer credit follows the existing compact Noto UI language. */
.footer-credits{display:flex;flex-direction:column;align-items:center;gap:2px;max-width:100%;}.footer-credits small{font:400 var(--type-micro)/1.5 var(--font-ui);color:var(--text-secondary);overflow-wrap:anywhere;}

/* Shared accessible helper for descriptive form instructions. */
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
