:root{--font-inter: "Inter", system-ui, -apple-system, sans-serif;--color-bg: #e7ebea;--color-text: #1a1a1a;--color-text-dim: #555555;--color-accent: #000000;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: min(2rem, 5vw);--spacing-xl: min(4rem, 10vw);--top-slot-height: clamp(9rem, 25vh, 14rem);--bottom-slot-height: clamp(7rem, 18vh, 11rem);--timer-readout-height: clamp(5.1rem, 12.8vh, 7.7rem);--timer-progress-height: clamp(4.6rem, 11.4vh, 6.9rem);--app-max-width: 480px;--app-width: min(100vw, var(--app-max-width));--image-width: calc(var(--app-width) * .8333)}html{height:100%;overflow:hidden;overscroll-behavior:none}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-inter);background-color:var(--color-bg);color:var(--color-text);line-height:1.5;height:100%;overflow:hidden;display:flex;flex-direction:column;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;user-select:none;-webkit-user-select:none}#root{display:flex;flex-direction:column;height:100%;width:100%;overflow:hidden}button{font-family:inherit;background:transparent;color:inherit;border:1px solid rgba(0,0,0,.2);padding:.75rem 1.5rem;border-radius:4px;cursor:pointer;transition:all .2s ease;font-size:.9rem;letter-spacing:.05em;text-transform:uppercase}button:hover:not(:disabled){background:#0000000d;border-color:#00000080}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--color-text);color:var(--color-bg);border-color:var(--color-text);font-weight:500}button.primary:hover:not(:disabled){background:#333;border-color:#333}button.danger{border-color:#ff50504d;color:#ff6b6b}button.danger:hover:not(:disabled){background:#ff50501a;border-color:#ff505099}.loader{border:2px solid rgba(0,0,0,.1);border-top:2px solid var(--color-text);border-radius:50%;width:24px;height:24px;animation:spin .8s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.app-container{display:flex;flex-direction:column;padding:var(--spacing-lg);width:var(--app-width);height:100dvh;margin:auto;position:relative;background:#fff;box-shadow:0 10px 30px #0000000d;border-radius:clamp(0px,(var(--app-max-width) - 100vw) * 100,16px);overflow:hidden}@media(max-width:768px){html,body,#root{height:100dvh;min-height:100dvh;overflow:hidden}.app-container{width:100vw;height:100dvh;min-height:100dvh;max-height:100dvh;margin:0;border-radius:0}}.header{display:flex;justify-content:space-between;align-items:center;margin-bottom:clamp(.25rem,1.5vh,.9rem);min-height:46px}.logo{font-size:1.25rem;font-weight:300;letter-spacing:.1em;text-transform:uppercase}.main-content{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}.setup-screen,.active-timer-screen{display:flex;flex-direction:column;align-items:center;width:100%;height:100%;flex:1}.top-slot{flex:1;width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;position:relative}.middle-slot{width:var(--image-width);height:var(--image-width);display:flex;justify-content:center;align-items:center;position:relative;flex-shrink:0;border-radius:16px;overflow:hidden;-webkit-mask-image:-webkit-radial-gradient(white,black)}.bottom-slot{flex:1;width:100%;display:flex;justify-content:center;align-items:center}.setup-title{font-size:clamp(1.8rem,8vw,2.5rem);font-weight:200;letter-spacing:-.02em;margin-bottom:var(--spacing-sm);line-height:1.1}.setup-subtitle{color:var(--color-text-dim);font-size:1.1rem;font-weight:300}.structure-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg);width:100%}.structure-card{background:#00000005;border:1px solid rgba(0,0,0,.1);border-radius:8px;padding:var(--spacing-lg);cursor:pointer;transition:all .3s ease;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm)}.structure-card:hover{background:#0000000d;transform:translateY(-4px);border-color:#0000004d}.structure-card.selected{border-color:var(--color-text);background:#00000014}.structure-name{font-size:1.25rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase}.structure-time{color:var(--color-text-dim);font-family:monospace;font-size:1.1rem}.active-timer-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;flex:1}.timer-display-wrapper{height:clamp(6rem,15vh,9rem);width:100%;display:flex;justify-content:center;align-items:center}.timer-display{font-family:monospace;font-size:clamp(3.5rem,15vw,5.5rem);font-weight:200;letter-spacing:-.05em;font-variant-numeric:tabular-nums;line-height:1}.setup-screen .top-slot,.active-timer-screen .top-slot{flex:0 0 var(--timer-readout-height);min-height:var(--timer-readout-height)}.timer-controls{display:flex;gap:var(--spacing-md);margin-top:auto;margin-bottom:0}.timer-controls button{min-width:120px}.visualizer-container{width:100%;height:100%;position:relative;display:flex;flex-direction:column;align-items:center;overflow:hidden}.structure-wrapper{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;border-radius:16px;border:1px solid rgba(0,0,0,.08);overflow:hidden;isolation:isolate;clip-path:inset(0 round 16px);-webkit-mask-image:-webkit-radial-gradient(white,black);mask-image:radial-gradient(#fff,#000);background:var(--color-bg)}.structure-image{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;transition:opacity 1.5s ease-in-out;opacity:0;pointer-events:none;filter:drop-shadow(0 4px 6px rgba(0,0,0,.05));transform:translateZ(0);backface-visibility:hidden}.structure-image.active{opacity:1}.structure-image.anim-frame{transition:opacity 1s ease-in-out}.structure-image.active-fast{opacity:1;transition:none}.status-overlay{width:100%;max-width:var(--image-width);text-align:center}.progress-bar-container{width:100%;height:4px;background:#e0e0e0;border-radius:2px;margin-bottom:.5rem;overflow:hidden}.progress-bar-fill{height:100%;background:var(--color-text);transition:width .5s linear;float:right}.phase-text{font-size:.85rem;color:#888;text-transform:uppercase;letter-spacing:.05em}.phase-label{color:var(--color-text);font-weight:500}
