:root{--dm-black:#000;--dm-white:#fff;--dm-font:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--dm-width:1120px;--dm-space:24px;--dm-radius:0;--bg:#fff;--text:#000;--ink:#000;--paper:#fff;--muted:#000;--border:#000;color-scheme:light}
html{background:#fff;color:#000}body{font-family:var(--dm-font)!important;background:#fff!important;color:#000!important;margin:0}*,*::before,*::after{box-sizing:border-box}button,input,select,textarea{font:inherit;border-radius:0}a{color:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default}:focus-visible{outline:3px solid #000!important;outline-offset:4px}button,input,select,textarea{border-color:#000!important}button,.btn,.button{border-radius:0!important;box-shadow:none!important}dialog{background:#fff;color:#000;border:1px solid #000;border-radius:0;max-width:calc(100% - 32px)}dialog::backdrop{background:rgb(0 0 0 / .65)}[hidden]{display:none!important}
body .dm-nav,body .dm-nav *{font:14px/1.5 var(--dm-font);letter-spacing:0;text-transform:none!important;box-shadow:none;box-sizing:border-box}body .dm-nav{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;padding:16px max(20px,calc((100vw - var(--dm-width))/2));width:100%;margin:0;border:0;border-bottom:1px solid #000;background:#fff;color:#000;position:relative;z-index:10}body .dm-nav a{color:#000;text-decoration:none}body .dm-nav a:hover{text-decoration:underline;text-underline-offset:4px}.dm-brand,.dm-nav-links{display:flex;align-items:center;gap:16px}.dm-nav-links{flex-wrap:wrap}body .dm-nav .dm-mark{display:grid;place-items:center;width:32px;height:32px;flex:none;background:#000;color:#fff}.dm-mark svg{width:24px;height:24px}.dm-nav button{width:auto;min-height:32px;margin:0;padding:4px 10px;background:#000;color:#fff;border:1px solid #000}.dm-nav form{display:inline;margin:0;padding:0}.dm-skip{position:absolute;top:-100px;left:16px;z-index:100;background:#000;color:#fff;padding:12px}.dm-skip:focus{top:8px}.dm-icon,.icon-button,.brand>svg,.logo{background:#000!important;color:#fff!important}body .dm-page{max-width:var(--dm-width);margin:0 auto;padding:64px 24px 80px;font:16px/1.7 var(--dm-font)}.dm-page h1{font-size:clamp(36px,6vw,72px);line-height:1.05;letter-spacing:-.05em;max-width:900px;margin:16px 0 24px}.dm-page h2{font-size:28px;margin:48px 0 16px;line-height:1.2}.dm-page h3{font-size:20px;margin:24px 0 8px}.dm-page p{max-width:70ch}.dm-page pre{overflow:auto;border:1px solid #000;padding:20px;background:#fff;line-height:1.6}.dm-page code{font-family:ui-monospace,monospace;font-size:.9em}.dm-page .dm-lead{font-size:20px;max-width:60ch}.dm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:16px}.dm-card{display:block;border:1px solid #000;padding:24px;text-decoration:none}.dm-card h3{margin-top:0}.dm-card:hover{background:#000;color:#fff}.dm-page table{border-collapse:collapse;width:100%;display:block;overflow:auto}.dm-page th,.dm-page td{border:1px solid #000;padding:12px;text-align:left}.dm-page nav{display:flex;flex-wrap:wrap;gap:16px;margin:32px 0}.dm-page footer{margin-top:64px;padding-top:24px;border-top:1px solid #000}.dm-offline{font:18px/1.7 var(--dm-font);max-width:640px;margin:80px auto;padding:24px;background:#fff;color:#000}
@media(max-width:600px){body .dm-nav{gap:12px;padding:12px 16px}.dm-nav-links{gap:12px}body .dm-page{padding:40px 20px 64px}.dm-nav-links a{font-size:13px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
:root,:root[data-theme=dark]{--bg:#fff;--fg:#000;--muted:#000;--line:#000;--accent:#000;--gray-50:#fff;--gray-100:#fff;--gray-200:#000;--gray-500:#000;--gray-600:#000;--gray-700:#000;color-scheme:light}body .quiet,body .meta,body .next-up,body .eyebrow{color:#000}.icon-button svg{color:#fff}.dm-page input{width:min(100%,560px);padding:12px;border:1px solid #000;background:#fff;color:#000}.dm-page button{padding:12px 20px;border:1px solid #000;background:#000;color:#fff}
:root[data-theme=dark]{--bg:#000;--fg:#fff;--muted:#fff;--line:#fff;color-scheme:dark}:root[data-theme=dark] body{background:#000!important;color:#fff!important}
/* Preferences are part of every app's navigation, including the offline fallback. */
body .dm-nav .dm-preference{display:flex;align-items:center;gap:8px;margin:0;width:auto}
body .dm-nav select{width:auto;min-height:36px;padding:4px 8px;border:1px solid currentColor;background:#fff;color:#000}
:root[data-theme=light]{color-scheme:light}
:root[data-theme=dark]{--bg:#000!important;--fg:#fff!important;--text:#fff!important;--ink:#fff!important;--paper:#000!important;--muted:#fff!important;--border:#fff!important;--line:#fff!important;--accent:#fff!important;--gray-50:#000!important;--gray-100:#000!important;--gray-200:#fff!important;--gray-500:#fff!important;--gray-600:#fff!important;--gray-700:#fff!important;color-scheme:dark;background:#000;color:#fff}
:root[data-theme=dark] body,:root[data-theme=dark] body *{background-color:#000!important;color:#fff!important;border-color:#fff!important}
:root[data-theme=dark] :focus-visible{outline-color:#fff!important}
:root[data-theme=dark] button.primary,:root[data-theme=dark] button.start,:root[data-theme=dark] .dm-nav button,:root[data-theme=dark] .dm-card:hover{background-color:#fff!important;color:#000!important}
:root[data-theme=dark] button.primary *,:root[data-theme=dark] button.start *,:root[data-theme=dark] .dm-nav button *,:root[data-theme=dark] .dm-card:hover *{background-color:transparent!important;color:inherit!important}
:root[data-theme=dark] .dm-mark,:root[data-theme=dark] .app-icon,:root[data-theme=dark] .icon-button,:root[data-theme=dark] .logo{background:#000!important;color:#fff!important}
:root[data-theme=dark] #progress,:root[data-theme=dark] .schedule-line i,:root[data-theme=dark] .dot.done,:root[data-theme=dark] .dot.current{background:#fff!important}
:root[data-theme=dark] #illustration svg,:root[data-theme=dark] #guide-list svg{filter:invert(1)}
@media(max-width:600px){body .dm-nav .dm-preference{gap:6px}body .dm-nav select{max-width:130px}.dm-nav-links{width:100%}}
/* Translated controls must wrap within narrow app headers. */
@media(max-width:780px){body .shell>header{flex-wrap:wrap;gap:16px}body .shell .header-actions{flex-wrap:wrap;min-width:0;max-width:100%}body .shell .header-actions .btn{white-space:normal}}
:root[data-theme=dark] svg,:root[data-theme=dark] svg *{background-color:transparent!important}
:root[data-theme=dark] .dots .dot{border:1px solid #fff}

/* Shared chrome must not inherit product layout rules. */
body[data-dm-project]{font-size:16px;line-height:1.6;border-top:0}
body .dm-nav{flex:none;align-self:stretch;min-width:0;min-height:77px;padding:16px max(24px,calc((100% - 1072px)/2));line-height:1.5}
body .dm-nav a{display:inline-flex;align-items:center;min-height:44px;padding:0;position:static;border:0;background:transparent;font-size:14px;white-space:nowrap}
body .dm-nav .dm-brand{gap:12px;flex:none}
body .dm-nav strong{font-weight:700}
body .dm-nav .dm-nav-links{gap:12px;min-width:0;align-items:center}
body .dm-nav button,body .dm-nav select{min-height:44px;line-height:1.5;letter-spacing:0}
body .dm-nav button{padding:8px 12px;white-space:nowrap}
body .dm-nav form{display:flex;align-items:center;max-width:none;border:0;background:transparent}
body .dm-nav .dm-preference{font-size:14px;line-height:1.5}
body .dm-nav select{font-size:14px;margin:0;max-width:130px}
body[data-dm-project] h1{font-family:var(--dm-font);font-weight:650;letter-spacing:-.045em}
body[data-dm-project=account]>header,body[data-dm-project=account]>main,body[data-dm-project=account]>footer,
body[data-dm-project=habits]>.shell,body[data-dm-project=heartbeats]>.shell,
body[data-dm-project=weights] #app>header,body[data-dm-project=weights] #app>main,body[data-dm-project=weights] #app>footer{width:100%;max-width:var(--dm-width);padding-left:24px;padding-right:24px;margin-left:auto;margin-right:auto}
body[data-dm-project=account]>header,body[data-dm-project=habits] .shell>header,
body[data-dm-project=heartbeats] .shell>header,body[data-dm-project=weights] #app>header{min-height:88px;padding-top:24px;padding-bottom:24px;border-bottom:1px solid currentColor;margin-bottom:0}
body[data-dm-project=heartbeats]>.shell{padding-top:0}
body[data-dm-project=time]{padding:0}
body[data-dm-project=time]>header,body[data-dm-project=time]>main,body[data-dm-project=time]>footer{width:calc(100% - 48px);max-width:1072px;margin-left:auto;margin-right:auto}
body[data-dm-project=time]>header{min-height:88px;border-bottom:1px solid currentColor}
body[data-dm-project=time] .digits{font-size:min(21vw,240px,40svh)}
body[data-dm-project=time] .fraction{font-size:min(6vw,64px,12svh)}
body[data-dm-project=workout]>.app{min-height:calc(100svh - 77px)}
body[data-dm-project=workout]>nav[aria-label=account]{display:none}
body[data-dm-project=heartbeats] :is(.panel,.stat,.status,.health-banner,.modal-card,.note,.endpoint,.preview,.feature,.cta,pre,code){border-radius:0;box-shadow:none}
body[data-dm-project=heartbeats]{--green:#000;--red:#000;--amber:#000}
body[data-dm-project=workout] .dots .dot{border:1px solid currentColor}
body[data-dm-project=workout] .dots .dot.done{background:currentColor}
@media(max-width:1100px){body .dm-nav{align-items:flex-start;gap:8px}body .dm-nav .dm-brand{width:100%}body .dm-nav .dm-nav-links{width:100%}}
@media(max-width:600px){
 body .dm-nav{padding:12px 20px;gap:8px}body .dm-nav .dm-nav-links{gap:8px 12px}
 body[data-dm-project=account]>header,body[data-dm-project=account]>main,body[data-dm-project=account]>footer,
 body[data-dm-project=habits]>.shell,body[data-dm-project=heartbeats]>.shell,
 body[data-dm-project=weights] #app>header,body[data-dm-project=weights] #app>main,body[data-dm-project=weights] #app>footer{padding-left:20px;padding-right:20px}
 body[data-dm-project=time]>header,body[data-dm-project=time]>main,body[data-dm-project=time]>footer{width:calc(100% - 40px)}
 body[data-dm-project=workout] .controls{gap:8px}body[data-dm-project=workout] .start{min-width:0;flex:1;max-width:240px;padding:16px}
}

/* One folded menu at the top right, at every viewport size. */
body .dm-nav{flex-wrap:nowrap;align-items:center;gap:16px;min-height:77px}
body .dm-nav .dm-brand{width:auto;min-width:0}
body .dm-nav .dm-brand strong{overflow-wrap:anywhere}
body .dm-nav .dm-menu{position:relative;flex:none;margin:0;padding:0;border:0}
body .dm-nav .dm-menu summary{display:flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:8px 12px;border:1px solid currentColor;background:#fff;color:#000;cursor:pointer;list-style:none;user-select:none}
body .dm-nav .dm-menu summary::-webkit-details-marker{display:none}
body .dm-nav .dm-menu summary svg{flex:none}
body .dm-nav .dm-menu[open]>summary{background:#000;color:#fff}
body .dm-nav .dm-menu .dm-nav-links{position:absolute;right:0;top:calc(100% + 8px);display:grid;grid-template-columns:1fr;gap:0;width:min(320px,calc(100vw - 40px));max-height:calc(100svh - 100px);overflow:auto;overscroll-behavior:contain;padding:8px;border:1px solid #000;background:#fff;color:#000;box-shadow:none}
body .dm-nav .dm-menu:not([open]) .dm-nav-links{display:none}
body .dm-nav .dm-menu .dm-nav-links>a,body .dm-nav .dm-menu .dm-nav-links>button,body .dm-nav .dm-menu form button{width:100%;justify-content:flex-start;text-align:left;padding:10px 12px;min-height:44px;background:#fff;color:#000;border:0!important;text-decoration:none}
body .dm-nav .dm-menu .dm-nav-links>a:hover,body .dm-nav .dm-menu .dm-nav-links>button:hover,body .dm-nav .dm-menu form button:hover{background:#000;color:#fff}
body .dm-nav .dm-menu .dm-preference{justify-content:space-between;gap:16px;padding:8px 12px;border-top:1px solid currentColor}
body .dm-nav .dm-menu .dm-preference select{max-width:160px;flex:1;min-width:0}
:root[data-theme=dark] body .dm-nav .dm-menu[open]>summary{background:#fff!important;color:#000!important}
:root[data-theme=dark] body .dm-nav .dm-menu[open]>summary *{background:transparent!important;color:inherit!important}
:root[data-theme=dark] body .dm-nav .dm-menu .dm-nav-links :is(a:hover,button:hover){background:#fff!important;color:#000!important}
/* App navigation delegates to the original product controls. */
body .dm-nav .dm-app-actions{display:contents}
body .dm-nav .dm-menu .dm-app-actions>a,body .dm-nav .dm-menu .dm-app-actions>button{display:flex;align-items:center;width:100%;min-height:44px;padding:10px 12px;border:0!important;background:#fff;color:#000;text-align:left}
body .dm-nav .dm-menu .dm-app-actions>:hover{background:#000;color:#fff}
body[data-dm-project=habits] .shell .nav,
body[data-dm-project=weights] #app>header #account,body[data-dm-project=weights] #app>header #settings,
body[data-dm-project=time]>header a[href="/sso/login"],
body[data-dm-project=heartbeats] .shell>header .header-actions,
body[data-dm-project=heartbeats] .shell>header nav,
body[data-dm-project=heartbeats] .shell>header>a.button{display:none}
body.dm-offline{max-width:none;margin:0;padding:0}
body .dm-nav,body .dm-mark,body .logo{border-radius:0}
/* Keep dialogs readable on wide screens as well as phones. */
body[data-dm-project] dialog{max-width:min(560px,calc(100% - 32px));max-height:calc(100svh - 32px);overflow:auto}
body[data-dm-project=weights] dialog{max-width:420px}
body[data-dm-project=workout] #guide{max-width:590px}
body[data-dm-project] :is(input,select,textarea){border-radius:0}
:root[data-theme=dark] body .dm-nav .dm-menu .dm-nav-links button{background:#000!important;color:#fff!important}
:root[data-theme=dark] body .dm-nav .dm-menu .dm-nav-links button:hover{background:#fff!important;color:#000!important}

/* Product content uses one type scale; weight carries emphasis. */
body[data-dm-project] :is(h1,h2,h3,h4,h5,h6,p,a,button,input,select,textarea,label,span,small,strong,b,li,td,th,code,pre,div,summary){font-size:16px!important;font-family:var(--dm-font)!important;letter-spacing:normal!important}
body[data-dm-project] :is(h1,h2,h3,h4,h5,h6,strong,b){font-weight:700}
body[data-dm-project=time] .digits,body[data-dm-project=time] .digits span{font-size:min(21vw,240px,40svh)!important}
body[data-dm-project=time] .fraction,body[data-dm-project=time] .fraction span{font-size:min(6vw,64px,12svh)!important}
body[data-dm-project=workout] .clock{font-size:72px!important;letter-spacing:-3px!important}
/* The shared navigation is the only product header. */
body[data-dm-project=account]>header,body[data-dm-project=habits] .shell>header,
body[data-dm-project=heartbeats] .shell>header,body[data-dm-project=weights] #app>header,
body[data-dm-project=time]>header,body[data-dm-project=time]>footer,
body[data-dm-project=workout] .app>header .brand{display:none!important}
body[data-dm-project=habits] .shell>footer,body[data-dm-project=weights] .intro,
body[data-dm-project=weights] #app>footer>span{display:none}
body[data-dm-project=account]>main{display:block;max-width:680px;min-height:0;padding-top:32px;padding-bottom:64px}
body[data-dm-project=account] #new-key{overflow-wrap:anywhere;max-width:100%;font-weight:700}
body[data-dm-project=account] #key-list button{width:auto;margin:8px}
body[data-dm-project=account] #preferences label{display:flex;align-items:center;justify-content:space-between;gap:16px}
body[data-dm-project] dialog{width:min(560px,calc(100vw - 32px))!important;max-width:560px!important;margin:auto;padding:24px;max-height:calc(100svh - 32px);overflow:auto}
body[data-dm-project] .modal-card{width:min(560px,calc(100vw - 32px));max-height:calc(100svh - 32px);overflow:auto}
body[data-dm-project=heartbeats] :is(.danger,.error,.health-banner,.status,.live){color:inherit!important;border-color:currentColor!important}
body[data-dm-project=heartbeats] :is(.danger,.error,.health-banner){font-weight:700}
body[data-dm-project=heartbeats] :is(.live i,.status i,.health-banner i,.schedule-line i){background:currentColor!important;color:inherit!important}
body[data-dm-project] :is(button.primary,.btn.primary,.button.primary){background:#000!important;color:#fff!important}
body[data-dm-project] :is(button.primary,.btn.primary,.button.primary):hover{background:#fff!important;color:#000!important}
:root[data-theme=dark] body[data-dm-project] :is(button.primary,.btn.primary,.button.primary){background:#fff!important;color:#000!important}
:root[data-theme=dark] body[data-dm-project] :is(button.primary,.btn.primary,.button.primary):hover{background:#000!important;color:#fff!important}
body[data-dm-project=workout] .dots{display:flex;gap:8px}
body[data-dm-project=workout] .dots .dot{display:block;flex:0 0 9px;width:9px;height:9px;border:1px solid currentColor;border-radius:50%;background:transparent!important;box-shadow:none}
body[data-dm-project=workout] .dots :is(.dot.done,.dot.current){background:currentColor!important}
body[data-dm-project=weights] #preferences label{display:none}

body[data-dm-project=heartbeats] :is(.health-icon,#lastRefresh){display:none}body[data-dm-project=heartbeats] :is(.live,.status) i{background:currentColor!important}body[data-dm-project=heartbeats] :is(.bar,.schedule-line){color:inherit!important}body[data-dm-project=heartbeats] :is(.bar,.schedule-line) i{background:currentColor!important}

body[data-dm-project=dorianmarie\.com] .dm-page>footer{display:none}
body[data-dm-project=heartbeats] .hero .eyebrow,body[data-dm-project=heartbeats] .hero p{display:none}
body[data-dm-project=heartbeats] .hero{padding-top:32px;padding-bottom:16px}
body[data-dm-project=workout] .app>header{justify-content:flex-end}

body[data-dm-project=account] #preferences select{min-height:44px;padding:8px;min-width:150px;max-width:55%;background:var(--paper);color:var(--ink);border:1px solid currentColor}

body[data-dm-project=workout] .app>header{display:none!important}

body[data-dm-project=libraries] .architecture-files{display:table;table-layout:fixed}body[data-dm-project=libraries] .architecture-files td:first-child{width:38%;overflow-wrap:anywhere}body[data-dm-project=libraries] .architecture-files td{vertical-align:top;overflow-wrap:anywhere}
