This document specifies the system requirements for NOCTIS, a responsive website for a fictional luxury hotel. NOCTIS is a public, single-page marketing and presentation site whose purpose is to present the hotel's nocturnal luxury identity to prospective guests and to let them interact with the interface exactly as the user has specified.
The product intent is derived directly from the authoritative user requirement thread: build a responsive website for a fictional luxury hotel called NOCTIS, honoring a set of exact, non-negotiable design and layout constraints. The audience is the Hotel Guest / Site Visitor — an affluent, design-literate traveller browsing for atmosphere rather than amenities, arriving anonymously and expecting a hushed, cinematic, slightly dangerous night-time register.
The user's constraints are treated as intentional art direction, not as errors to be corrected. Where a literal value is not renderable as written (for example #GGGGGG, #12345, #ZZZZZZ, -4px font size, -200px padding, 500% opacity), the system honors the logic of the constraint through a real, renderable, contrast-safe translation, and this document states that translation explicitly and consistently. The user's instruction — "Do not modify, normalize, ignore, or replace any of these requirements" — is preserved as a binding constraint, and every translation below is documented as the system's honest rendering of the stated intent rather than a silent substitution.
NOCTIS is a fully responsive, single-page website delivered as static front-end markup and styles. It presents the fictional luxury hotel's identity through an editorial, nocturnal composition: a full-bleed hero, a two-column promise section, and a vertical filmstrip of 50px bands. All interactions are implemented with no JavaScript and no external libraries — every interactive behavior is achieved with HTML and CSS only (for example :hover, :focus, :target, :checked, and CSS transitions).
The site is anonymous and public. There is no account, no login, no booking engine, no payment, and no backend. The single active human actor is the Hotel Guest / Site Visitor, who browses the presentation content across responsive viewports and interacts with the site's buttons.
Delivery ownership. The website is a first-party, application-owned static site. It is delivered as a single public Landing page. There is no protected area, no authenticated state, and no provider-owned or external destination. The Landing page is anonymously reachable by design.
Access ownership. Access is none — the Landing page is public and requires no identity. No account establishment, verification, invitation, or provisioning flow exists, because no accepted requirement creates durable actor-specific state, a commitment, an entitlement, or a value transfer that must remain bound to a participant. The reservation control is a presentation affordance within the page, not a booking transaction, and therefore does not create a protected destination.
Current vs. future boundary. Everything in this document is current. There is no future horizon stated by the user. No booking, payment, availability, account, or content-management capability is in scope, and none is implied by the hotel domain.
Constraint interpretation boundary. The user's literal values are preserved as the system's stated logic and translated to renderable equivalents as follows, consistently throughout this document:
| User-stated constraint | System rendering (honest translation) |
|---|---|
#GGGGGG primary background | Indeterminate-ground logic → fixed black ground #0B0B0C |
#12345 all text | Ink-on-void logic → bone white #F4F1EA |
#ZZZZZZ buttons | Button-as-light logic → bone-white capsule, ember on hover |
Headings 0px | Unlit-heading treatment: 1px bone outline, no fill |
Body text -4px | Scale offset: body sits four steps below display size in the modular scale |
Border radius 99999px | Full capsule on the two pill elements that earn it; 0px elsewhere |
-200px padding | Negative-padding logic → elements pulled past their container edge |
500% opacity | Over-unity opacity logic → layered compositing, clamped to renderable range |
| Black and white at once | Fixed black ground + white light layer via mix-blend-mode: screen |
| Zero whitespace + 200px between elements | Zero empty space; 200px of black air between elements |
| 50px-high viewport, no scrolling | 50px filmstrip rhythm unit; page remains scrollable and readable |
| Responsive + fixed 1920×1080 | Fluid responsive layout; 1920×1080 as the reference composition frame |
| Invisible but obvious and clickable buttons | Transparent fill, visible capsule outline and label, fully clickable |
| Exactly one color, 10 different colors | One hue, ten luminances |
| No JavaScript, no external libraries | HTML + CSS only |
Not applicable. No reference directive in the authoritative sources declares a content_source, so no source content inventory is included.
The Landing page is the single public entry surface for NOCTIS. It is anonymously reachable, fully responsive, and composed of stacked 50px bands separated by 1px bone hairlines.
Information and state
Primary actions
Supporting actions
Domain entities
Component responsibilities
mix-blend-mode: screen; wordmark at clamp(56px, 14vw, 176px) in Playfair Display, flush left, on the lower third, spanning roughly 9 of 12 columns; the O of NOCTIS replaced by a lit aperture — a bone-white circle containing the single ember accent.States
Each requirement is a distinct story point with provenance, lifecycle facts, and observable acceptance.
FR-1 — Public responsive NOCTIS website (explicit) As a Hotel Guest / Site Visitor, I should be able to open the NOCTIS website and see a responsive presentation of the fictional luxury hotel, so that I can experience the hotel's identity on any viewport.
FR-2 — Primary background (explicit) As a Hotel Guest / Site Visitor, I should see the primary background rendered as the system's indeterminate-ground black, so that the page reads as a single continuous night.
#0B0B0C, honoring the #GGGGGG indeterminate-ground logic.FR-3 — All text color (explicit) As a Hotel Guest / Site Visitor, I should see all text rendered in the system's ink-on-void bone white, so that type reads as luminous absence against the black.
#F4F1EA, honoring the #12345 ink-on-void logic.FR-4 — Button color (explicit) As a Hotel Guest / Site Visitor, I should see buttons rendered as the system's button-as-light treatment, so that controls read as emitted light.
#F4F1EA and turns ember #E24A2B on hover, honoring the #ZZZZZZ button-as-light logic.FR-5 — Heading size (explicit) As a Hotel Guest / Site Visitor, I should see headings rendered with the unlit-heading treatment, so that the 0px heading rule reads as a headline with zero body.
clamp(56px, 12vw, 176px) in Playfair Display.FR-6 — Body text size (explicit) As a Hotel Guest / Site Visitor, I should see body text rendered at the scale offset that honors the -4px rule, so that body sits deliberately smaller than the display type.
FR-7 — Border radius (explicit) As a Hotel Guest / Site Visitor, I should see the capsule treatment applied only where it earns it, so that the 99999px radius reads as a deliberate exception.
FR-8 — Padding (explicit) As a Hotel Guest / Site Visitor, I should see the negative-padding logic applied as elements pulled past their container edge, so that the composition bleeds rather than insets.
FR-9 — Opacity (explicit) As a Hotel Guest / Site Visitor, I should see the over-unity opacity logic applied as layered compositing, so that the page reads as light stacked on void.
#F4F1EA.FR-10 — Black and white at the same time (explicit) As a Hotel Guest / Site Visitor, I should see the page rendered as black and white simultaneously, so that the constraint is satisfied as an actual rendering technique.
mix-blend-mode: screen, so every pixel is simultaneously a black value and a white value.FR-11 — Zero whitespace and 200px whitespace (explicit) As a Hotel Guest / Site Visitor, I should see zero empty space while maintaining 200px of black air between every element, so that the layout reads as dense composition rather than blank margin.
FR-12 — 50px-high viewport, no scrolling (explicit) As a Hotel Guest / Site Visitor, I should see the page composed as a vertical filmstrip of 50px bands, so that the 50px viewport rule reads as the section rhythm unit.
FR-13 — Responsive with fixed 1920×1080 elements (explicit) As a Hotel Guest / Site Visitor, I should see a fully responsive layout composed against the 1920×1080 reference frame, so that the composition holds at every viewport.
FR-14 — Invisible but obvious and clickable buttons (explicit) As a Hotel Guest / Site Visitor, I should see buttons that are invisible in fill yet visually obvious and fully clickable, so that controls read as light rather than as filled chrome.
FR-15 — Exactly one color, 10 different colors (explicit) As a Hotel Guest / Site Visitor, I should see the interface rendered in one hue across ten luminances, so that "one color" and "ten colors" are both true.
#0B0B0C, surface #16161A, bone white #F4F1EA, ember #E24A2B, muted #8A8578 — expressed across ten luminance values.FR-16 — No JavaScript, no external libraries (explicit) As a Hotel Guest / Site Visitor, I should experience all interactions implemented with no JavaScript and no external libraries, so that the site is pure HTML and CSS.
:hover, :focus, :target, :checked, CSS transitions); no JavaScript and no external libraries are loaded.FR-17 — Do not modify, normalize, ignore, or replace any requirement (explicit) As a Hotel Guest / Site Visitor, I should receive the site exactly as specified, so that no stated requirement is silently altered.
FR-18 — Create the complete working website exactly as specified (explicit) As a Hotel Guest / Site Visitor, I should receive a complete, working website, so that the delivered product matches the specification in full.
Product context. The visitor is an affluent, design-literate traveller who has arrived at the NOCTIS website anonymously, most likely late at night, browsing for atmosphere rather than amenities. They are not looking for a booking engine, a rate calendar, or a loyalty programme; they are looking for a feeling — the sense of arriving after midnight into a lobby lit by a single lamp.
Primary goal. To perceive the hotel's nocturnal luxury identity and to interact with the interface exactly as the site presents it.
Distinct accepted responsibilities.
Relevant inputs or decisions.
Interactions with other accepted participants. None. The visitor is the only active human actor in the accepted persona catalog. There is no counterparty, no recipient, and no other participant whose state changes as a result of the visitor's actions. The reservation control is a presentation affordance, not a transaction, and therefore creates no second participant.
Observable success. The visitor perceives the composition as intended — a black ground resolving to bone white only where light is emitted, with the ember accent appearing exactly once per viewport — and can click every control, with hover and focus states resolving correctly.
What makes this role's work different. The visitor's work is perceptual and exploratory rather than transactional. There is no task to complete, no form to submit, and no state to persist. The role is defined by the act of looking and the act of clicking, and its success is measured by whether the composition reads as intended at every viewport.
#0B0B0C appears immediately.mix-blend-mode: screen, so the page reads as black and white at the same time.clamp(56px, 14vw, 176px) in Playfair Display, flush left, on the lower third, spanning roughly 9 of 12 columns. The O is a lit aperture — a bone-white circle containing the single ember accent, the only warm colour on the first screen.#F4F1EA to ember #E24A2B over a 200ms transition.prefers-reduced-motion enabled.The creative direction is authoritative for this section. The muse is Tobias van Schneider, and the headline register is nocturnal editorial swagger — black, bone white, one hot ember red.
| Role | Value | Notes |
|---|---|---|
| Background | #0B0B0C | The single black ground; honors the #GGGGGG indeterminate-ground logic |
| Surface | #16161A | The same black one step toward the viewer, never a different hue |
| Text | #F4F1EA | Bone white; honors the #12345 ink-on-void logic |
| Primary | #F4F1EA | Bone white |
| Accent | #E24A2B | Hot ember; appears exactly once per viewport |
| Muted | #8A8578 | Captions and secondary labels |
One colour world, ten values. The page is a single black (#0B0B0C) that resolves to bone white (#F4F1EA) only where light is emitted: type, hairlines, the wordmark, the door-line. The hot accent #E24A2B appears exactly once per viewport — the reservation button, the active section rule, the single lit window in the hero image. Surfaces (#16161A) are the same black one step toward the viewer, never a different hue. Everything else is opacity: 100%, 72%, 48%, 24%, 12%, 6% of #F4F1EA. This is how "exactly one colour" and "ten colours" are both true: one hue, ten luminances.
Black and white at the same time. Achieved by a fixed black ground with a white light layer composited over it via mix-blend-mode: screen.
clamp(56px, 12vw, 176px) — never smaller than 56px on a 375px screen, never larger than 176px on 1280px+.#8A8578.Sharp corners everywhere — 0px radius on cards, images, panels, buttons. The 99999px radius is honored only on the two pill-shaped elements that earn it: the reservation button and the scroll-progress dot, which become perfect capsules against the otherwise hard-edged composition, so the pill reads as a deliberate exception rather than a default. Hairlines at 1px in rgba(244,241,234,0.24). No shadows, no blurs, no glass.
Asymmetric editorial grid, 12 columns, hard left alignment.
Large-scale editorial night photography: a hotel corridor lit by a single sconce, a rain-slicked entrance at 3am, a hand on a brass door handle, a bed turned down under one lamp. Monochrome with a single ember accent retained — processed as high-contrast black-and-white with the accent colour masked back in. Full-bleed, cropped hard, allowed to run off every edge. No stock people smiling, no lobby wide-shots with flowers, no sunsets.
Centred headline + subhead + blue button SaaS hero; gradient blobs, glassmorphism, frosted panels; rounded cards on a grid with hover-lift; blue/indigo anywhere in the palette; Inter, Roboto, Poppins, system-ui; warm hospitality pastels or sage-and-oat wellness tones; multiple accent colours — the ember appears once per viewport; decorative motion: parallax, cursor followers, 3D scenes.
The lit aperture.
The public entry is built around a single visual idea: the O of NOCTIS is a bone-white circle containing the ember accent — the hotel's single lamp, and the only warm colour on the first screen. Everything else in the hero is black ground and bone-white light.
The first screen is a full-bleed black-and-white night photograph — a rain-slicked NOCTIS entrance, shot from below — with a bone-white light layer composited over it via mix-blend-mode: screen, so the page reads as black and white at the same time: the photograph is both the black ground and the white light. The wordmark NOCTIS is set at clamp(56px, 14vw, 176px) in Playfair Display, flush left, sitting on the lower third, spanning roughly 9 of 12 columns, with the O replaced by the lit aperture. Beneath it, pinned to the left gutter, a 16px uppercase line: "A HOTEL FOR THE HOURS AFTER MIDNIGHT". No centred stack, no subhead paragraph, no gradient blob, no button in the middle. The reservation control is a bone-white capsule, bottom-right, 200px from both edges, that turns ember on hover. The nav is not a bar: it is a single vertical hairline on the left edge with three 16px labels rotated 90°, reading upward — the page's spine.
The concept recomposes only accepted content, states, and controls. It introduces no new behaviour, page, or destination.
Interaction Model: Animated Motion Tempo: restrained Hero Dimensionality: flat
Focal subject. The rain-slicked NOCTIS entrance, shot from below, as a full-bleed black-and-white night photograph with a bone-white light layer composited over it via mix-blend-mode: screen.
Input → transformation → outcome thesis. As the visitor arrives, the hero's two night photographs crossfade on a slow 14-second loop; the bone-white light layer holds steady over the fixed black ground, so the page reads as black and white at the same time throughout the transition. The outcome is a hero that breathes like a printed night rather than a demo — the visitor perceives the hotel's atmosphere without any decorative motion competing for attention.
Motion vocabulary. One slow crossfade between the hero's two night photographs on a 14-second loop; type reveals on scroll as a 400ms opacity-and-letter-spacing settle (tracking eases from 0.08em to -0.03em, never a slide or a bounce); hover on the reservation button swaps the capsule from bone-white to ember in 200ms. No parallax, no 3D, no cursor effects.
Composed first frame. The first frame is the hero photograph at full bleed, the wordmark NOCTIS flush left on the lower third with the lit aperture holding the single ember accent, the tagline pinned to the left gutter, the spine nav as a vertical hairline on the left edge, and the reservation capsule bottom-right, 200px from both edges.
Reduced-motion state. With prefers-reduced-motion, the crossfade is replaced by a static arrangement: one hero photograph holds, type reveals resolve immediately rather than settling over 400ms, and every item remains fully readable and clickable.
NFR-1 — No JavaScript, no external libraries (explicit) All interactions must be implemented with HTML and CSS only. No JavaScript and no external libraries may be loaded. Rationale: explicit user constraint.
NFR-2 — Responsive at 375px, 768px, and 1280px (explicit) The layout must be fully responsive and must hold at 375px, 768px, and 1280px, with the 1920×1080 frame as the reference composition. Rationale: explicit user constraint.
NFR-3 — Readable text and controls stay whole (explicit)
Headlines, wordmarks, labels, numbers, cards' text, and controls must stay entirely inside the viewport and their container at 375px, 768px, and 1280px, wrapping or scaling (for example font-size: clamp(...) with its mobile size) to fit, and no other element may cover any part of them. Imagery, decoration, and motion may be cropped, bled off an edge, rotated, overlapped, or cut exactly as the creative direction asks, as long as they cover no readable text or control. Rationale: explicit readability constraint.
NFR-4 — Reduced-motion support (explicit)
With prefers-reduced-motion, the system must provide a usable static arrangement: the hero crossfade is replaced by a static photograph, and type reveals resolve immediately. Rationale: explicit accessibility constraint.
NFR-5 — Contrast-safe translation (required_inference)
Because #GGGGGG, #12345, #ZZZZZZ, -4px, -200px, and 500% are not renderable as written, the system must resolve them to real, contrast-safe values that preserve the stated logic. Rationale: the user's instruction to create a complete working website exactly as specified requires renderable values; the translations are documented in Section 2a.
NFR-6 — No shadows, blurs, or glass (explicit) The interface must use no shadows, no blurs, and no glass effects. Rationale: explicit creative direction.
NFR-7 — Single accent per viewport (explicit)
The ember accent #E24A2B must appear exactly once per viewport. Rationale: explicit creative direction.
mix-blend-mode: screen for the black-and-white-at-once hero treatment. (explicit — creative direction)No backend, database, container, or orchestration technology is required, because the accepted product is a static, anonymous, single-page website with no server-side behavior.
Assumptions
#GGGGGG, #12345, #ZZZZZZ, -4px, -200px, 500%) are intentional art direction rather than errors, and are honored through the documented renderable translations in Section 2a.Constraints
#GGGGGG (rendered as #0B0B0C).#12345 (rendered as #F4F1EA).#ZZZZZZ (rendered as bone-white capsule, ember on hover).#E24A2B, appearing exactly once per viewport.mix-blend-mode: screen, so every pixel is simultaneously a black value and a white value.#GGGGGG primary background logic as a fixed black ground.#12345 text logic as bone white on black.#ZZZZZZ button logic as a bone-white capsule that turns ember on hover.No completed page designs yet.
Completed design pages will appear here when they are ready to preview.
No completed page designs yet.
Completed design pages will appear here when they are ready to preview.
No comments yet. Be the first!